1

我试图让一个按钮将特定字符输入到两个不同的文本框中,我使用的代码只能让我输入一个文本框。

private void btn9_Click(object sender, EventArgs e)
{
    txtBox1.Text = txtBox1.Text + btn9.Text;
}

我也希望能够为btn9_Click被认为是:

private void btn9_Click(object sender, EventArgs e)
{
    txtBox2.Text = txtBox2.Text + btn9.Text;
}
4

3 回答 3

1

只需将两行代码放入同一个 Button Click Handler 函数中

private void btn9_Click(object sender, EventArgs e)
{
    txtBox1.Text = txtBox1.Text + btn9.Text;
    txtBox2.Text = txtBox2.Text + btn9.Text;
}

事实上,一个函数中可以有数百行代码。通常最好将其保持在 100 以下以提高可读性。

更新 2

让按钮将文本分配给最近获得焦点的任何功能

此解决方案使用 jquery 来更新隐藏输入的值,只要文本框被聚焦(引起用户注意)。该解决方案使用 ClientIDMode="Static" 以便 jquery 能够引用正确的元素。

在您的 ASPX 页面标题中,添加一个脚本标记以应用我们的 Jquery

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>

<script>
  $("#TextBox1").focus(function () {
    $('#MyHiddenInput').val('TextBox1');
  });

  $("#TextBox2").focus(function () {
    $('#MyHiddenInput').val('TextBox2');
  });
</script>

在表单内的 ASPX 页面中,使用 clientidmode=static 添加隐藏输入

<asp:HiddenField id="MyHiddenInput" runat="server" ClientIdMode="Static" Value="TextBox1" />

现在,将您的文本框更改为 clientIdMode="Static"

<asp:TextBox id="TextBox1" runat="server" clientIdMode="Static" />
<asp:TextBox id="TextBox2" runat="server" clientIdMode="Static" />

**最后,在您的代码隐藏中,您可以使用这样的代码来确定哪个文本框最近具有焦点

if ( MyHiddenInput.Value == "TextBox1" ){
  // Write to TextBox1
}else{
  // Write to TextBox2
}

或者,如果您在 VB 窗体中执行此操作,您可以处理TextBox.GotFocus事件并设置一个名为 LastTextboxFocus = "..." 的字符串变量来代替上面的隐藏字段方法。

于 2013-03-01T04:43:18.033 回答
1

您的事件处理程序中可以包含多行:

private void btn9_Click(object sender, EventArgs e)
{
    txtBox1.Text = txtBox1.Text + btn9.Text;
    txtBox2.Text = txtBox2.Text + btn9.Text;
}
于 2013-03-01T04:43:24.613 回答
0
private void btn9_Click(object sender, EventArgs e)
{
  txtBox1.Text = txtBox1.Text + btn9.Text;
  txtBox2.Text = txtBox2.Text + btn9.Text;
  txtBox3.Text = txtBox3.Text + btn9.Text;
  //for Any number textboxes, u can add text .......... 
}
于 2013-03-01T04:44:25.680 回答