我有一个文本框和3个复选框; checkbox1,checkbox2,checkbox3
在文本框中我们有1,2,3
如果我输入textbox1 = 1,2那么
复选框1和复选框2将被选中,复选框3将保持未选中状态.....
如何在vb.net中执行此操作
答案 0 :(得分:1)
使用String.Split功能。
答案 1 :(得分:1)
这样的事情应该适合你:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
For Each s As String In TextBox1.Text.Split(","c)
Dim i As Integer
If Int32.TryParse(s, i) Then
Dim result As Control = Page.FindControl("checkBox" + i.ToString())
If result IsNot Nothing Then
DirectCast(result, CheckBox).Checked = True
End If
End If
Next
End Sub
如果您的复选框位于不同的容器而不是主页面中,则需要调用FindControl on that control instead of
Page.FindControl`。
编辑:听起来你是从复选框选择来建立文本框值。根据你的评论,你看起来也有一个尾随的逗号,也许是因为你在一个循环中附加一个逗号。您应该向我们提供代码,以便更好地了解您正在做的事情。
要回答评论中的问题,要对“3,1”进行排序,您可以使用:
Dim input As String = "3,1,"
Dim split As String() = input.Split(New Char() {","c}, StringSplitOptions.RemoveEmptyEntries)
Dim result As String = String.Join(",", split.OrderBy(Function(i) i).ToArray())
实际上,您可能希望按整数类型排序,而不是按字符串排序,因为排序顺序最终会让您感到惊讶的是更大的数字。
答案 2 :(得分:0)
脱离我的头顶
dim v = Split(textbox.text, ",")
for each i in v
select case val(i)
case 1:checkbox1.checked =true
case 2:checkbox2.checked = true
case.....
end select
next