Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > TextBox


Автор: JoE 19.6.2009, 20:47
Вот, познаю азы  программирования на C#, пытаюсь создать калькулятор, такой как в виндусе. Проблема вот в чем: Имеется textBox и кнопки с цифрами.  Тыкаем например кнопку с цифрой 1, в textBox записывается цифра 1, тыкаем еще раз по кнопке с цифрой 2 , и в textbox, вместо "12" ставиться "2". Какие свойства textbox'a нада использовать, или что писать в обработчике кнопки, что бы исправить это?

Автор: DVariuS 19.6.2009, 20:53
JoE, использовать надо свойство Text:
Код

textBox1.Text = "1"; //текст в текстбоксе теперь "1"
//далее в коде
textBox1.Text += "2"; //теперь текст "12"

В этом примере используется понятие "конкатенация строк", т.е. объединение.

Автор: JoE 19.6.2009, 21:00
Работает, спасибо : D
Еще один Вопрос: у Textbox меняем свойство MaxLength на 5, как я понял это максимальное число символов textBox,
Если вводить цифры с клавиатуры, то ограничение работает, но если опять же тыкаем кнопку с цифрой, то это ограничение не работает, можно ввести более 5 символов. Как это исправить? 

А все сам допер)
Код

if (textBox1.Text.Length < 5)
            {
                textBox1.Text += "1";
            }
            else
            {
                textBox1.Text += "";
            }


Автор: KDAlex 19.6.2009, 21:10
Еще 2 способа  smile 
К примеру, вот так:
Код

        private void button1_Click(object sender, EventArgs e)
        {
            int temp = textBox1.SelectionStart;
            textBox1.Text=textBox1.Text.Insert(temp, "1");
            textBox1.SelectionStart = temp + 1;
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int temp = textBox1.SelectionStart;
            textBox1.Text = textBox1.Text.Insert(textBox1.SelectionStart, "2");
            textBox1.SelectionStart = temp + 1;
        }

Это если хотите, чтобы писалось в то место, где сейчас курсор, если просто в конец, то, кроме использования textBox.Text можно еще и так - 
Код

        private void button1_Click(object sender, EventArgs e)
        {
           textBox1.AppendText("1");
        }

        private void button2_Click(object sender, EventArgs e)
        {
           textBox1.AppendText("2");
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)