仅选择填充的控件并锁定它们

时间:2012-01-13 11:17:47

标签: vb.net locking

我需要你帮助部分锁定记录。这是换班时的情况,一个人开始一个记录,另一个人完成记录。一个人写的另一个不能改变,但必须完成一个记录。所以你必须只锁定填充的组合框和文本框。此代码通过单击NEZAVRSENE_INTERVENCIJE复选框锁定所有组合框和文本框以及2个复选框(NEZAVRSENE_INTERVENCIJE和IZMENA_RASKRSNICE)。假设我有组合框1 2和3以及文本框1 2和3,我只需要锁定已填充的组合框。我如何编码另一个复选框只锁定填充的控件?

由于

Private Sub NEZAVRSENE_INTERVENCIJE_AfterUpdate()
Dim ctrl As Control

If Me.NEZAVRSENE_INTERVENCIJE = -1 Then

For Each ctrl In Me.Controls

If (TypeOf ctrl Is TextBox) Or (ctrl Is NEZAVRSENE_INTERVENCIJE) Or  (ctrl Is IZMENA_RASKRSNICE) Or (TypeOf ctrl Is ComboBox) Then
 ctrl.Locked = True

End If
Next

Else

For Each ctrl In Me.Controls

If (TypeOf ctrl Is TextBox) Or (ctrl Is NEZAVRSENE_INTERVENCIJE) Or  (ctrl Is IZMENA_RASKRSNICE) Or (TypeOf ctrl Is ComboBox) Then
  ctrl.Locked = False

End If
Next

End If
End Sub

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。我正在使用Control.Tag属性对您要锁定的控件进行分组。

Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
    Dim ctrl As Control

    For Each ctrl In Me.Controls
        If Not IsNothing(ctrl.Tag) Then
            If CInt(ctrl.Tag) = 1 Then
                If ctrl.Text <> String.Empty Then
                    ctrl.Enabled = False
                End If
            End If
        End If
    Next

End Sub