我正在开发一个WinForms应用程序。我的表单中有四个文本框和一个按钮。我在点击按钮时使用textBox1.SelectedText += "any string"
,因此它会写入第一个TextBox
。如果我添加textBox1.SelectedText += "any string."
,则会同时写入textbox1和textbox 2。
当我单击textbox1并按下按钮时,sting只会写入第一个文本框,然后我单击第二个文本框并按下按钮然后将其写入第二个文本框。是否有任何方法可以执行此操作?
我正在使用以下代码。
private void button1_Click(object sender, EventArgs e)
{
textBox1.SelectedText += "abc";
textBox2.SelectedText += "abc";
}
当我专注于控制时,当我们按下按钮时,焦点转到按钮。那么在按下按钮之后我们如何能够专注于我的表格中的一个文本框呢?
答案 0 :(得分:2)
你可以采取如下样本,希望这会给你缪斯。
public partial class Form7 : Form
{
private TextBox textBox = null;
public Form7()
{
InitializeComponent();
// Binding to custom event process function GetF.
this.textBox1.GotFocus += new EventHandler(GetF);
this.textBox2.GotFocus += new EventHandler(GetF);
}
private void GetF(object sender, EventArgs e)
{
// Keeps you selecting textbox object reference.
textBox = sender as TextBox;
}
private void button1_Click(object sender, EventArgs e)
{
// Changes you text box text.
if (textbox != null) textBox.SelectedText += "You text";
}
}
答案 1 :(得分:1)
你可以试试这个
TextBox selTB = null;
public Form1()
{
InitializeComponent();
textBox1.Enter += tb_Enter;
textBox2.Enter += tb_Enter;
textBox3.Enter += tb_Enter;
textBox4.Enter += tb_Enter;
}
~Form1()
{
textBox1.Enter -= tb_Enter;
textBox2.Enter -= tb_Enter;
textBox3.Enter -= tb_Enter;
textBox4.Enter -= tb_Enter;
}
private void tb_Enter(object sender, EventArgs e)
{
selTB = (TextBox)sender;
}
private void button1_Click(object sender, EventArgs e)
{
// Do what you need
selTB.SelectedText += "abc";
// Focus last selected textbox
if (selTB != null) selTB.Focus();
}
我们的想法是,当您输入文本框时,将其存储在selTB
中
所以,当您点击按钮时,您知道哪一个文本框是最后一个选中的文本框。