请问一下,c#的form中,有多个textbox和几个数字输入按钮,我要如何实现光标在哪个text

请问一下,c#的form中,有多个textbox和几个数字输入按钮,我要如何实现光标在哪个textbox,按钮的数字就输出到这个textbox中呢?切换的依据是什么呀?菜鸟求解答,多谢

方法很多,比较常见的方法比如textbox有Enter事件,你可以在每个Enter事件中将textbox赋值给一个公用的变量(即用这个变量来存储当前活动的控件),输出的时候就直接对这个变量操作就行了(如果textbox不多可以逐个手写代码,如果较多可以在程序中用代码添加事件)
或者也可以用GetFocus这样的API来获取当前活动的控件,你可以搜索一下。追问

您好,能否就这个给出一段简单的源码?谢谢!

追答TextBox currentTB = null;
private void textBox1_Enter(object sender, EventArgs e)
{
    currentTB = (TextBox)sender;
}
private void textBox2_Enter(object sender, EventArgs e)
{
    currentTB = (TextBox)sender;
}
private void button1_Click(object sender, EventArgs e)
{
    if (currentTB != null) currentTB.Text += "1";
}

追问

十分感谢!

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-19
很简单,比如界面有2个textbox,2个button。分别设置textbox的Enter事件,Enter事件解释是“当该控件是窗体的活动控件时”发生;代码如下:
private void textBox1_Enter(object sender, EventArgs e)
{
textBox1.Text = button1.Text;//触发事件时,将button的值赋给textbox;
}

private void textBox2_Enter(object sender, EventArgs e)
{
textBox2.Text = button2.Text;
}追问

谢谢你的解释,确实很清楚,不过这个点击textbox后直接读取了,并没有实现按钮按下显示在textbox中这个功能

追答

那就给button添加Click事件,Click是单击组件是发生;
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = button1.Text;
}

private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = button2.Text;
}
看来你对“事件”还不太了解,C#相当重要的知识,要多看书学习

追问

确实还不太了解,我是电子专业的,现在刚工作做c#,所以遇到很多麻烦,多谢你的指点

我觉得可能是我没有描述清楚,请看这个form,我想要光标在第一个textbox时按下button,第一个textbox显示1,光标到了第二个的时候按下按钮,则第二个textbox显示

也谢谢你的回答,问题已经解决啦

第2个回答  2015-11-19
在加载的时候第一个textbox名.Focus();就应该行了
相似回答