Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Windows窗体计算器-每次单击选择文本框_C#_Windows_Forms_Textbox - Fatal编程技术网

C#Windows窗体计算器-每次单击选择文本框

C#Windows窗体计算器-每次单击选择文本框,c#,windows,forms,textbox,C#,Windows,Forms,Textbox,首先,我是德国人。这是我的计算器的屏幕截图。。有点奇怪但我知道xD 所以,我在寻找一个命令: 我得到了4个文本框,第一个(文本框1)用于1。数字, 二,。一个(文本框2)用于运算符(+-*/), 三。二人一人。数 和4。结果如何 如果我这样做: private void button3_Click(object sender, EventArgs e) { textBox1.SelectedText += "1"; textBox3.SelectedText += "1"; }

首先,我是德国人。这是我的计算器的屏幕截图。。有点奇怪但我知道xD

所以,我在寻找一个命令:

我得到了4个文本框,第一个(文本框1)用于1。数字, 二,。一个(文本框2)用于运算符(+-*/), 三。二人一人。数 和4。结果如何

如果我这样做:

private void button3_Click(object sender, EventArgs e)
 {
  textBox1.SelectedText += "1";
  textBox3.SelectedText += "1";

 }

我点击的按钮的数字现在显示在两个文本框中(1.1和3.1)。 但我希望我点击的按钮的编号将出现在我首先选择的文本框中。
因此,我首先选择textbox1或textbox3,只需单击它,然后单击一个按钮(例如1),然后数字1将出现在我选择/单击的文本框中。

我无法理解您的问题,但我注意到您的逻辑中存在一个问题

C#将它们作为字符串添加,这将导致连接

首先将值转换为整数,它将正确相加

textBox1.Text = int.Parse(textBox1.Text) + 1;

至于你的实际问题,如果你想“记住”你点击的文本框,在点击事件中添加一个事件来存储你在变量中选择的文本框控件,然后在逻辑中使用它。

在两个文本框的激活事件中,存储哪个框被激活。然后在_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 TextBox,然后在事件中textBox1\u单击textBox3\u单击设置变量。稍后在按钮3中单击选择文本框Selected并添加您的逻辑。 试试这个:

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";
}
下面是一些记录: 1/命名约定:使用指向按钮功能或文本框内容的清晰名称。比如说:TextBoxLeftOperator,ButtonN1,TextboxOperator。。。 2/使用名为SelectedTextbox的新变量 var SelectedTextbox=newtextbox(); 3/在两个文本框的单击事件中添加所选文本框的分配。 对于左侧文本框: 在您的案例中,SelectedTextbox=TextBoxLeftOperator//textbox1 对于正确的文本框 在您的案例中,SelectedTextbox=TextBoxRightOperator//textbox1
4.现在,您只需使用新变量。

我正在寻找一个命令,可以在我选择的文本框中添加按钮文本。您是否希望在单击按钮时设置
文本框的文本,所以我不知道如何添加一个事件:D只知道基本的Damn他想要连接。。。就像你按下计算器上的“1”按钮一样,显示的值后面会加上一个“1”。@JamesCurran我的错,正如我说的,我正在努力理解它。但是,对于“equals”按钮,需要进行一些转换。我如何设置全局变量TextBox textBoxSelected?我有点为这样的问题感到难过:对不起,对于我的英语,变量textBoxSelected是在方法txtBox1\u Click和txtBox3\u 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";
}