[英]C# Windows forms Calculator - Selecting textbox per click
首先,我是德国人,2。这是我的计算器的屏幕截图..有点奇怪,但我知道xD
因此,我正在寻找一个命令:
我有4个文本框,第一个是1.数字(textBox1),数字是1. 2.(one-textBox2)是运算符(+-* /),3.是2.数字,而4.是。结果
如果我做:
private void button3_Click(object sender, EventArgs e)
{
textBox1.SelectedText += "1";
textBox3.SelectedText += "1";
}
要么
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "1";
textBox3.Text = textBox3.Text + "1";
}
现在,两个文本框中都显示了我单击的按钮中的数字(1.和3.一个)。 但我希望我单击的按钮的编号将在我首先选择的文本框中。 因此,我首先只需单击一下即可选择textbox1或textbox3,然后单击一个按钮(例如1),然后数字1将出现在我选择/单击的文本框中。
在两个文本框的_Activate事件上,存储激活了哪个框。 然后在_Clicked事件中使用它:
private TextBox currentTextBox;
// Both textboxes can use this function
private void textbox_Activate(object sender, EventArgs e)
{
this.currentTextBox = (TextBox) sender;
}
private void button3_Click(object sender, EventArgs e)
{
currentTextBox.Text = textBox1.Text + "1";
}
您可以具有一个全局变量TextBox textBoxSelected,然后在事件textBox1_Click和textBox3_Click中设置该变量。 稍后在button3_Click中,选择选中的文本框并添加逻辑。 尝试这个:
TextBox textBoxSelected;
private void txtBox1_Click(object sender, EventArgs e)
{
textBoxSelected = textBox1;
}
private void txtBox3_Click(object sender, EventArgs e)
{
textBoxSelected = textBox3;
}
private void button3_Click(object sender, EventArgs e)
{
textBoxSelected.Text += "1";
}
我不太理解您的问题,但是我注意到您的逻辑上有一个问题。
C#将它们添加为字符串,从而导致串联。
首先将值转换为整数,它将正确添加。
textBox1.Text = int.Parse(textBox1.Text) + 1;
至于您的实际问题,如果您想“记住”您单击了哪个文本框,请将一个事件添加到Click事件中,以存储您在变量中选择的文本框控件,然后在您的变量中使用它逻辑。
因此,这里是一些解决方案:1 /命名约定:使用明确的名称来引用按钮功能或文本框内容。 例如说:TextboxLeftOperand,ButtonN1,TextboxOperator,... 2 /使用一个名为SelectedTextbox的新变量var SelectedTextbox = new Textbox();。 3 /将两个选定文本框的分配添加到两个文本框的click事件中。 对于左边的文本框:SelectedTextbox = TextboxLeftOperand //文本框1对于右边的文本框SelectedTextbox = TextboxRightOperand //文本框1。现在,您所拥有的就是使用新变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.