带TabControl的脏表格

时间:2012-11-02 16:44:04

标签: vb.net

您好我在每个tabPage中都有一个带TabControl,3个标签页和控件(文本框和组合框)的表单。
我有一个事件用于tabPages(controlValueChanged)中控件的所有变换,以及tabControl.SelectedIndexChanged的一个事件。
所以如果表单是Dirty,我想启用我的按钮(btnOK)。

Private Sub controlValueChanged(sender As System.Object, e As System.EventArgs)
     If bLoading=False 'bLoading is a boolean that is true after I create and populate the controls
        Dirty = True 'Dirty is a boolean property
     End If
End Sub

因此,当我在其中一个控件中更改某些内容时,事件将被触发并且btnOK已启用 问题是我第一次更改(访问)tabPage控件是TabPage触发controlValueChanged事件导致我的按钮启用,即使我没有更改控件中的任何内容。
如果我第二次访问TabPage,则不会触发该事件 我知道这是正常的,但我怎么能克服这个问题并让我的Dirty = true只有控件因为某些东西正在改变而被激活而不是当tabPage正在改变时?

1 个答案:

答案 0 :(得分:0)

如果创建一个新的布尔变量 - DoNotMakeDirty ,那么你可以在TabControl1_SelectedIndexChanged子集中设置DoNotMakeDirty = True,然后在你的{controlValueChanged中添加一个if语句{1}} sub。