文本框在Visual Basic .net中失去焦点的麻烦

时间:2015-02-27 16:18:39

标签: winforms visual-studio-2013 textbox

最近我得到了一个在Visual Basic中制作一个非常基本的数独游戏的任务。 为此,我使用.NET Framework的Visual Studio Ultimate 2013 Update 4。

我已经到了可以检查许多文本框中哪一个有焦点的地步。这样也可以更改相应文本框的backgroundColor。 我使用这个方法完成了这个:

Private Sub TextBox_GotFocus() Handles TextBox1.GotFocus, TextBox2.GotFocus, TextBox3.GotFocus Me.ActiveControl.BackColor = Color.Aquamarine End Sub

当任何文本框失去焦点时,将它重新变为白色我使用了这个:

Private Sub TextBox_LostFocus() Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus Me.ActiveControl.BackColor = Color.White End Sub

现在我的问题是:

  1. 关闭应用程序时为什么会崩溃?我该如何解决这个问题?
  2. (关闭时会产生NullReferenceException)

    1. 这是否是实现我想要的正确方法?还是有更高效的东西?

1 个答案:

答案 0 :(得分:1)

添加对象,EventArgs作为参数。

该对象将是调用该事件的调用控件。

Private Sub TextBox_GotFocus(sender As Object, e As EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus, TextBox3.GotFocus
    CType(sender, TextBox).BackColor = Color.Aquamarine
End Sub

Private Sub TextBox_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus
    CType(sender, TextBox).BackColor = Color.White
End Sub