如何实现点击Button1仅向之前选中的TextBox输入数字1?
解决方案
要实现点击Button1时向最后选中/获得焦点的TextBox输入数字1,你需要跟踪哪个TextBox是当前的焦点控件,具体实现步骤如下:
1. 声明类级变量
在窗体类的顶部声明一个变量,用于保存最后获得焦点的TextBox:
Private lastFocusedTextBox As TextBox
2. 处理TextBox的焦点事件
给TextBox1和TextBox2的GotFocus事件添加处理程序,更新lastFocusedTextBox的值:
Private Sub TextBox1_GotFocus(sender As Object, e As EventArgs) Handles TextBox1.GotFocus lastFocusedTextBox = DirectCast(sender, TextBox) End Sub Private Sub TextBox2_GotFocus(sender As Object, e As EventArgs) Handles TextBox2.GotFocus lastFocusedTextBox = DirectCast(sender, TextBox) End Sub
3. 处理Button1的点击事件
在Button1的Click事件中,判断lastFocusedTextBox是否有效,然后向其中写入数字1:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If lastFocusedTextBox IsNot Nothing Then ' 覆盖TextBox原有内容,设置为"1" lastFocusedTextBox.Text = "1" ' 若需要在原有内容后追加"1",替换成下面这行 ' lastFocusedTextBox.Text &= "1" End If End Sub
原有代码无效的原因
你之前的代码逻辑完全偏离需求:
- 代码写在
TextBox1.TextChanged事件中,只有当TextBox1文本变化时才会触发,和Button1的点击操作没有直接关联 Button1.PerformClick()是主动触发Button的点击事件,并非判断用户是否点击了Button,逻辑逻辑完全错误
内容的提问来源于stack exchange,提问作者Ducko Uranus
相关产品推荐
相关产品推荐

