Jump to content


Photo
- - - - -

Пытаюсь программировать


  • Please log in to reply
43 replies to this topic

#1 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 01:23

первый раз пытаюсь засунуть маленькую программу в графический интерфейс
методом тыка сделал кнопку и вывод результата в окно TextBox1

но есть вопрос
как мне вместо того что бы вписывать значение int z = 500; вводить его в окошко TextBox2
что нужно изменить в коде проги?

Размещенное изображение


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}	  

		private void button1_Click(object sender, EventArgs e)
			{			   

			int i = 0;
			int x = 0;
			[color=#FF0000]int z = 500;[/color]
			for (;; )
			{

				i++;
				Random T = new Random();
				int y = T.Next(0, 2);
				Console.WriteLine(y);
				
				if (y == 1)
				{
					x = x + 1;
					if (x > z)
					{

					   
						 
						 textBox1.Text = "ошибка на " + i + " цикле"; 
						
						x = 0;
						//z = int.Parse(Console.ReadLine());
						i = 0;
						
						
						break;
					}
				}
				else
				{
					x = 0;

				}
			}

		}

		private void textBox1_TextChanged(object sender, EventArgs e)
		{

		}

		[color=#FF0000]private void textBox2_TextChanged(object sender, EventArgs e)
		{[/color]
		

		}
	}
}

  • 0

#2 Amartel

Amartel

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 268 posts
32
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 03:14

Вместо int z = 500 пишем:
int z = Convert.ToInt32(textBox2.Text);
  • 0
Свеча не теряет не единой частицы света, если зажечь от неё другую свечу. © Gottfried Keller

#3 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 09:52

спс работает :)
  • 0

#4 GeX

GeX

    Super True Member

  • Moderators
  • PipPipPipPipPip
  • 11,350 posts
111
Очень хороший
  • Пол:Мужчина
  • Город:Ленинский 110/2

Posted 19 December 2009 - 13:32

GetWindowText(TextBox2.Handle)
  • 0
Я в контакте Ты должен быть сильным, иначе, зачем тебе быть
Размещенное изображениеРазмещенное изображение
Размещенное изображениеРазмещенное изображение

#5 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 14:03

а как сделать что бы при вводе в окно textbox2 не цифры выдавалась ошибка типа MessageBox.Show("ошибка ввода"); и прога останавлявалась до следующего нажатия кнопки пуск?

делаю так:

private void textbox2_KeyPress(object sender, KeyPressEventArgs e)
		{ 
			if (!Char.IsDigit(e.KeyChar))
			{			 
											 e.Handled = true;
					MessageBox.Show("ошибка ввода");				
			}
		}
так запускается но все равно выдается ошибка в строчки и сообщение MessageBox.Show("ошибка ввода"); не появляется

int z = Convert.ToInt32(textBox2.Text);
  • 0

#6 GeX

GeX

    Super True Member

  • Moderators
  • PipPipPipPipPip
  • 11,350 posts
111
Очень хороший
  • Пол:Мужчина
  • Город:Ленинский 110/2

Posted 19 December 2009 - 14:51

Отлавливай событие onKeyDown, делай проверку цифра ли нажата и если нет отправляй код 0.
Что то вроде этого :
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
		if ((e.KeyValue < '0' || e.KeyValue > '9')
				&& e.Modifiers != Keys.Control)
						e.SuppressKeyPress = true;
}

  • 0
Я в контакте Ты должен быть сильным, иначе, зачем тебе быть
Размещенное изображениеРазмещенное изображение
Размещенное изображениеРазмещенное изображение

#7 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 15:31

что то не получилось

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;




namespace WindowsApplication1
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}	  
	   
		///////////////////////////

		private void textBox2_KeyDown(object sender, KeyEventArgs e)
		{
			if ((e.KeyValue < '0' || e.KeyValue > '9')
					&& e.Modifiers != Keys.Control)
				e.SuppressKeyPress = true;
			
			   
			{
				MessageBox.Show("ошибка");
			}
			
			
		}

		//-----------------------------------------------------------------------
		private void button1_Click(object sender, EventArgs e)
			{

		   //////

			   
					int z = Convert.ToInt32(textBox2.Text);


					int i = 0;
					int x = 0;
					//int z = 500;
					for (;; )
					{
						
						i++;
						Random T = new Random();
						int y = T.Next(0, 2);
						Console.WriteLine(y);

						if (y == 1)
						{
							
							x = x + 1;
							if (x == z)
							{

								//MessageBox.Show("ошибка на " + i + " цыкле");

								textBox1.Text = "ошибка на " + i + " цикле";
								
								x = 0;
								//z = int.Parse(Console.ReadLine());
								i = 0;


								break;
							}
						}
						else
						{
							x = 0;
							
						}
					}
				
//-----------------------------------------------------------------------



		}

		private void textBox1_TextChanged(object sender, EventArgs e)
		{
			   
	   

		}

		private void textBox1_TextChanged_1(object sender, EventArgs e)
		{

		}
	}
}

  • 0

#8 GeX

GeX

    Super True Member

  • Moderators
  • PipPipPipPipPip
  • 11,350 posts
111
Очень хороший
  • Пол:Мужчина
  • Город:Ленинский 110/2

Posted 19 December 2009 - 15:38

Я C# абсолютно не знаю. =)
Но это 100% работоспособная реализация того что ты хочешь.
Разбирайся где ошибка
  • 0
Я в контакте Ты должен быть сильным, иначе, зачем тебе быть
Размещенное изображениеРазмещенное изображение
Размещенное изображениеРазмещенное изображение

#9 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 posts
23
Обычный

Posted 19 December 2009 - 17:40

[codebox] private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
int z=0;
try
{
z = Convert.ToInt32(textBox1.Text);
}
catch
{
MessageBox.Show("Ошибка ввода");
}
}[/codebox]
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#10 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 17:54

что то не работает ни фига :(
  • 0

#11 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 posts
23
Обычный

Posted 19 December 2009 - 17:56

в VS 2008 все работает на ура. Приведи еще раз полный код с моим исправлением
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#12 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 19 December 2009 - 17:59

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;









namespace WindowsApplication1

{

	public partial class Form1 : Form

	{

		public Form1()

		{

			InitializeComponent();

		}	  

	   

		///////////////////////////



		private void textBox2_KeyUp(object sender, KeyEventArgs e)

		{

			int z = 0;

			try

			{

				z = Convert.ToInt32(textBox2.Text);

			}

			catch

			{

				MessageBox.Show("Ошибка ввода");

			}

		}

	   

	   

		//-----------------------------------------------------------------------

		private void button1_Click(object sender, EventArgs e)

			{



		   //////

			   

			   

					int z = Convert.ToInt32(textBox2.Text);

					int ed = 0;

					int nol = 0;

					int i = 0;

					int x = 0;

					//int z = 500;

					for (;; )

					{

						

						

						i++;

					   

						Random T = new Random();

						int y = T.Next(0, 2);

						Console.WriteLine(y);

						

						if (y == 1)

						{

							

							

								ed++;

								

						  

							

							x = x + 1;

								 



							if (x == z)

							{



								//MessageBox.Show("ошибка на " + i + " цыкле");



								textBox1.Text = "циклов прошло " + i + "";

								

								x = 0;

								//z = int.Parse(Console.ReadLine());

								i = 0;



														

								break;

							}

						}

						else

						{

												

							x = 0;

							

						}

						}







						

						//textBox3.Text = "нулей прошло " + nol + "";







						textBox4.Text = "единиц прошло " + ed + " ";

//-----------------------------------------------------------------------

		}



		private void textBox1_TextChanged(object sender, EventArgs e)

		{

		}

		private void textBox1_TextChanged_1(object sender, EventArgs e)

		{

		}

		private void textBox2_TextChanged(object sender, EventArgs e)

		{	   

		}

		private void label1_Click(object sender, EventArgs e)

		{			

		}

		private void label2_Click(object sender, EventArgs e)

		{

		}

		private void label3_Click(object sender, EventArgs e)

		{

		}

		private void label4_Click(object sender, EventArgs e)

		{

		}

		private void textBox1_TextChanged_2(object sender, EventArgs e)

		{

		}

		private void textBox3_TextChanged(object sender, EventArgs e)

		{

		}

		private void textBox4_TextChanged(object sender, EventArgs e)

		{

		}

	}

}

  • 0

#13 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 posts
23
Обычный

Posted 19 December 2009 - 18:02

убери
[codebox]int z = Convert.ToInt32(textBox2.Text);[/codebox]
из button_click
вставь
[codebox] int z = 0;
try
{
z = Convert.ToInt32(textBox2.Text);
}
catch
{
MessageBox.Show("Ошибка ввода");
}[/codebox]

в начало button1_cliсk

А то что ты добавил от меня в прошлый раз удали
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#14 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2,489 posts
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Posted 19 December 2009 - 22:24

использование try/catch для логического ветвления программы плохая практика.

лучше как-нибудь так:

int z = 0;
				if ( !string.IsNullOrEmpty(textBox2.text) )
				{
					if ( Int32.TryParse(textBox2.text, out z) )
					{
						// some code
					}
					else
					{
						// error
					}
				}

  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#15 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 posts
23
Обычный

Posted 19 December 2009 - 23:27

да. через TryParse лучше. Я просто синтаксис его не помнил
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно


#16 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 20 December 2009 - 23:16

использование try/catch для логического ветвления программы плохая практика.

лучше как-нибудь так:

int z = 0;
				if ( !string.IsNullOrEmpty(textBox2.text) )
				{
					if ( Int32.TryParse(textBox2.text, out z) )
					{
						// some code
					}
					else
					{
						// error
					}
				}



попробую завтра
  • 0

#17 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 21 December 2009 - 11:22

работает

пс
у меня на работе VS 2005
дома поставил 2008 русскую, классная штука :)
вот только не понял как создать проект на 2008 с фреймворк 2.0, у меня сразу создается с фрейморком 3.5 и если потом выбираю 2.0 ошибки появляются
  • 0

#18 key

key

    -=SunKain=-

  • True Members
  • PipPipPipPipPip
  • 2,489 posts
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Posted 21 December 2009 - 14:58

при создании проекта в студии 2008, в правом верхнем углу есть выбор фреймворка.
  • 0
Mess with the best
Die like the rest

Размещенное изображение

Пуля производит удивительные изменеия в голове, даже если она попала в задницу.
(С) Лукьяненко "Черновик"

Conseal nohing.
And watch the fools searching forever.

#19 maxtor

maxtor

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,413 posts
-27
Обычный
  • Пол:Мужчина

Posted 21 December 2009 - 16:15

народ появилась идея написать прогу которая будет считать сколько часов было отработано в день в течение месяца
решил начать с интерфейса проги
кроме использования textbox пока идей нет, возможно есть какие нибудь готовые элементы для создания таблиц или что то типо того
  • 0

#20 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 posts
23
Обычный

Posted 21 December 2009 - 18:09

Есть dataGridView
  • 0

P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.

ты такой глупенький, что это уже даже не смешно



1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users