Перейти к содержимому


Фотография
- - - - -

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


  • Пожалуйста, авторизуйтесь, чтобы ответить
43 ответов в этой теме

#1 maxtor

maxtor

    Super True Member

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

Опубликовано 19 Декабрь 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 сообщений
32
Обычный
  • Пол:Мужчина

Опубликовано 19 Декабрь 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 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 19 Декабрь 2009 - 09:52

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

#4 GeX

GeX

    Super True Member

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

Опубликовано 19 Декабрь 2009 - 13:32

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

#5 maxtor

maxtor

    Super True Member

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

Опубликовано 19 Декабрь 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 сообщений
111
Очень хороший
  • Пол:Мужчина
  • Город:Ленинский 110/2

Опубликовано 19 Декабрь 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 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 19 Декабрь 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 сообщений
111
Очень хороший
  • Пол:Мужчина
  • Город:Ленинский 110/2

Опубликовано 19 Декабрь 2009 - 15:38

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

#9 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 19 Декабрь 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 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 19 Декабрь 2009 - 17:54

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

#11 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 19 Декабрь 2009 - 17:56

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

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

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


#12 maxtor

maxtor

    Super True Member

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

Опубликовано 19 Декабрь 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 сообщений
23
Обычный

Опубликовано 19 Декабрь 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 сообщений
12
Обычный
  • Пол:Мужчина
  • Город:Аден

Опубликовано 19 Декабрь 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 сообщений
23
Обычный

Опубликовано 19 Декабрь 2009 - 23:27

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

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

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


#16 maxtor

maxtor

    Super True Member

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

Опубликовано 20 Декабрь 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 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 21 Декабрь 2009 - 11:22

работает

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

#18 key

key

    -=SunKain=-

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

Опубликовано 21 Декабрь 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 сообщений
-27
Обычный
  • Пол:Мужчина

Опубликовано 21 Декабрь 2009 - 16:15

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

#20 Float

Float

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 918 сообщений
23
Обычный

Опубликовано 21 Декабрь 2009 - 18:09

Есть dataGridView
  • 0

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

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



Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей