如何在vb.net中设置所有DevXPress文本编辑控件的背景色
我有10个如何在vb.net中设置所有DevXPress文本编辑控件的背景色,vb.net,devexpress,Vb.net,Devexpress,我有10个Textbox,然后我尝试将背景色设置为红色,将所有Textbox设置为空白,这是可行的,但它没有按顺序从第一个Textbox设置到第十个Textbox,我也尝试设置TabIndex。但它仍然不起作用 #Region "Method" Private Function pf_validate_ok() For Each tb In Panel1.Controls If TypeOf tb Is DevExpress.XtraEditor
Textbox
,然后我尝试将背景色设置为红色,将所有Textbox
设置为空白,这是可行的,但它没有按顺序从第一个Textbox
设置到第十个Textbox
,我也尝试设置TabIndex
。但它仍然不起作用
#Region "Method"
Private Function pf_validate_ok()
For Each tb In Panel1.Controls
If TypeOf tb Is DevExpress.XtraEditors.TextEdit Then
If tb.Text = String.Empty Then
tb.BackColor = Color.Red
tb.ForeColor = Color.White
Return False
Else
tb.BackColor = Color.White
tb.ForeColor = Color.Black
End If
End If
Next tb
Return True
End Function
#End Region
如果重命名它们,或者在表单周围剪切/粘贴它们,它们可能会变得“无序”
要保证顺序,请创建一个显式数组并迭代:
Private Function pf_validate_ok()
Dim TBs() As TextBox = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
For Each tb In TBs
If TypeOf tb Is DevExpress.XtraEditors.TextEdit Then
If tb.Text = String.Empty Then
tb.BackColor = Color.Red
tb.ForeColor = Color.White
Return False
Else
tb.BackColor = Color.White
tb.ForeColor = Color.Black
End If
End If
Next tb
Return True
End Function
或使用循环按名称搜索它们:
Private Function pf_validate_ok()
For i As Integer = 1 To 5
Dim matches() As Control = Me.Controls.Find("TextBox" & i, True)
If matches.Length > 0 AndAlso TypeOf matches(0) Is DevExpress.XtraEditors.TextEdit Then
Dim tb As DevExpress.XtraEditors.TextEdit = DirectCast(matches(0), DevExpress.XtraEditors.TextEdit)
If tb.Text = String.Empty Then
tb.BackColor = Color.Red
tb.ForeColor = Color.White
Return False
Else
tb.BackColor = Color.White
tb.ForeColor = Color.Black
End If
End If
Next
Return True
End Function
您需要更改数组或控件中的名称。Find()调用以匹配特定场景。您可以按
TextBox.Top
和TextBox.Left
属性对TextBox的
进行排序,以获得正确的顺序。下面是使用
LINQ
的示例:
Dim textBoxs = From textBox In Panel1.Controls
Where TypeOf textBox Is DevExpress.XtraEditors.TextEdit
Order By textBox.Top, textBox.Left
Select DirectCast(textBox, DevExpress.XtraEditors.TextEdit)
For Each textBox In textBoxs
If textBox.Text = String.Empty Then
textBox.BackColor = Color.Red
textBox.ForeColor = Color.White
Return False
Else
textBox.BackColor = Color.White
textBox.ForeColor = Color.Black
End If
Next textBox