这不是重复的问题,这里有一个类似的问题,但它的答案对我没有帮助。
我在form1(windows窗体)上有一个按钮和3个textBox,显示的代码实现了以下功能:
通过单击按钮,它将其文本键入最后一次单击的文本框,并且它完美,因为所有3个框都是文本框类型。 现在我想在form1中添加一个richTextBox,我希望这个richTextBox的行为与3个文本框相同(我的意思是当我点击richTextBox时我仍然可以输入文本)。在这种情况下,我有一个混合控件(textBoxes和richTextBox),如果它只是richTextBoxes或只有textBoxes,那么它很容易解决。
我需要修改这个代码,以便其中一个控件(3个textBox和richTextBox)在被点击时被聚焦,然后button1知道点击了哪个框,这样它就可以在其中插入文本。可以请任何人帮我这个。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public TextBox Selected_TextBox = null ;
private void Form1_Load(object sender, EventArgs e)
{
this.ActiveControl = textBox1;
textBox1.Focus(); // set textbox1 foucsed when form1 loads
Selected_TextBox = textBox1; // idintify the SelectedTextBox.
}
private void textBox1_Click(object sender, EventArgs e)
{
Selected_TextBox = sender as TextBox; // bcomes the selected one in click event
}
private void textBox2_Click(object sender, EventArgs e)
{
Selected_TextBox = sender as TextBox;
}
private void textBox3_Click(object sender, EventArgs e)
{
Selected_TextBox = sender as TextBox;
}
private void button1_Click(object sender, EventArgs e)
{
Selected_TextBox.Focus();
Selected_TextBox.SelectedText = button1.Text;
Selected_TextBox.SelectionStart = Selected_TextBox.Text.Length;
}
}
答案 0 :(得分:6)
使用TextBoxBase
这是TextBox
和RichTextBox
之间的公共基类。