2011-12-28 2 views
0

Я изучаю C# сейчас, поэтому я делаю какие-то упражнения, чтобы привыкнуть к синтаксису C# и учиться лучше. Я решил сделать калькулятор, похожий на обычный калькулятор окон.C# Калькулятор ввода путем нажатия кнопок

Я создал только одну кнопку «1» и одно текстовое поле. enter image description here

Я хочу, чтобы эта кнопка записывала 1 в текстовое поле, когда я нажимаю на нее, а также присваиваю переменную int, равную числу в учебнике, чтобы произвести вычисление позже. Поэтому я не могу ни изменить значение «int a», ни изменить текст в текстовом поле, он всегда показывает 01, потому что всегда равен 0. Как я могу сделать программу, как показать правильные цифры, так и изменить значение правильно? Например, как я могу заставить программу показать одиннадцать в текстовом поле, когда я дважды нажимаю кнопку, а также меняю значение «int a» на 11?

public partial class Form1 : Form 
{ 
    int a; 
    string Sa; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Sa = a.ToString() + "1"; 

     textBox1.Text = Sa; 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 
} 
+3

Ваш вопрос не ясен. Вы знаете разницу между строкой и целым числом? Вы понимаете, что a.ToString() + "1" - это строка, а не целое число. Таким образом, он просто конкатцирует 1 с строкой. –

+0

Добавить текст перед предыдущим текстом: textBox1.Text = "1" + textBox1.Text; – adatapost

ответ

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

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    a = Int32.Parse(textBox1.Text);  
} 

просто это ... Измените текст в текстовом поле каждый щелчок на кнопке и измените переменную, которую изменил каждый текстовый блок.

2

значение может затем быть установлено с помощью

a = int.Parse(Sa); 
textBox1.Text = Sa.TrimStart('0'); 

Хотя, если вы хотите быть более эффективным, об этом,

a = a * 10 + 1; 

не Sa вообще,

textBox1.Text = a.ToString(); 

Если вы столкнулись с teger overflows, вы должны использовать BigInteger.

0

У вас есть несколько вариантов:

Make Int обнуляемого Int. Таким образом, вы можете проверить, если ИНТ уже установлен

int? a; 

if (a.HasValue) 
{ 
} 
else 
{ 
} 

Проверьте, соответствует ли текст свойство textBox1 пуст (что означает, что вы не должны добавлять а к нему)

if (textBox1.Text == string.Empty) 
{ 
} 
else 
{ 
} 
0
public void btnOne_Click(object sender, EventArgs e) 
     { 
      txtDisplay.Text = txtDisplay.Text + btnOne.Text; 

     } 

     private void btnTwo_Click(object sender, EventArgs e) 
     { 
      txtDisplay.Text = txtDisplay.Text + btnTwo.Text; 
     } 

// etc 
0

для любой кнопки вы хотите добавить текст в текстовом поле установить свойство Нажмите, чтобы btn_Click затем пт этого кода внутри метода

private void btn_Click(object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
    // This will assign btn with the properties of the button clicked 
    txt_display.Text = txt_display.Text + btn.Text; 
    // this will append to the textbox with whatever text value the button holds 
} 
Смежные вопросы