【问题标题】:C# Windows forms Calculator - Selecting textbox per clickC# Windows 窗体计算器 - 每次点击选择文本框
【发布时间】:2018-01-16 15:52:03
【问题描述】:

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

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

我有 4 个文本框,第一个 (textBox1) 用于 1. Number, 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 将出现在我选择/单击的文本框中。

【问题讨论】:

  • 所以你是德国人,意味着你正在寻找德国特定的解决方案?
  • 不,我只是说我的英语有点特别

标签: c# windows forms textbox


【解决方案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";
}

【讨论】:

    【解决方案2】:

    您可以有一个全局变量TextBox textBoxSelected,然后在事件textBox1_ClicktextBox3_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";
    }
    

    【讨论】:

    • 如何设置全局变量TextBox textBoxSelected?
    • 我对这样的问题感到有点难过:c
    • 对不起我的英语,变量 textBoxSelected 设置在方法 txtBox1_Click 和 txtBox3_Click 见答案中的代码
    【解决方案3】:

    我不太明白你的问题,但我注意到你的逻辑有问题。

    C# 会将它们作为字符串添加,从而导致连接。

    先将值转换为整数,它会正确添加。

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

    至于您的实际问题,如果您想有一种“记住”您单击的文本框的方式,请在 Click 事件中添加一个事件,以将您选择的文本框控件存储在变量中,然后使用在你的逻辑中。

    【讨论】:

    • 我正在寻找可以在我选择的文本框中添加按钮文本的命令
    • 您是否要在点击Button 时设置TextBox 的文本?
    • 我对编程有点陌生,所以我不知道如何添加事件:D 只知道该死的基础
    • 想要连接...就像当您按下计算器上的“1”按钮时,显示的值会附加一个“1”。
    • @JamesCurran 我的错,正如我所说,我很难理解它。但是,对于“等于”按钮,需要进行一些转换。
    【解决方案4】:

    所以这里有一些记录: 1/ 命名约定:使用引用按钮功能或文本框内容的清晰名称。比如说:TextboxLeftOperand, ButtonN1, TextboxOperator, ... 2/ 使用一个名为 SelectedTextbox 的新变量 var SelectedTextbox = new Textbox(); 3/ 在两个文本框的点击事件中添加 SelectedTextbox 的赋值。 对于左侧文本框: SelectedTextbox = TextboxLeftOperand // 在您的情况下为 textbox1 对于正确的文本框 SelectedTextbox = TextboxRightOperand // 在您的情况下为 textbox1 4. 现在您所要做的就是使用您的新变量。

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 2012-01-23
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多