如何只检查在文本框中输入的复选框?

时间:2010-11-13 19:48:27

标签: asp.net vb.net

如何仅选中在文本框中输入的复选框?

如果我有4个复选框,则带有文本checkbox1,checkbox2,checkbox3和checkbox4以及1个文本框

如果我输入文本框1,2那么只有checkbox1和checkbox2会在我在文本框中输入3,4之后再次直接检查,然后只会检查3,4并且1,2将被取消选中..

记住我想做这个编码无限的没有。复选框..所以dnt只提供4个复选框的编码.....为我提供无限复选框的编码......

2 个答案:

答案 0 :(得分:1)

只需循环浏览所有复选框,然后在检查新复选框之前取消选中它们。

答案 1 :(得分:0)

尝试使用TextBoxes和CheckBoxes的命名约定。因此,如果对所有这些事件使用一个TextChanged事件处理程序,则可以使用Sender参数来标识正在更改的文本框。然后取消选中上一个复选框并选中新复选框:

Public Class Form1
    Public oldCheckBox As CheckBox

    Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged, TextBox3.TextChanged, TextBox2.TextChanged, TextBox1.TextChanged
        Dim x As TextBox = sender
        Dim i As Integer = x.Text.Substring(7) // 7 = length of "TextBox" 
        Dim relatedCheckBox As CheckBox = Me.Controls("CheckBox" + i.ToString())
        relatedCheckBox.Checked = True

        If (oldCheckBox IsNot Nothing) And (oldCheckBox IsNot relatedCheckBox) Then
            oldCheckBox.Checked = False
        End If

        oldCheckBox = relatedCheckBox
    End Sub
End Class