【问题标题】:Check for empty text boxes when using lists使用列表时检查空文本框
【发布时间】:2016-09-07 15:55:33
【问题描述】:

我有以下代码:

Private Sub EditarToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EditarToolStripMenuItem.Click
        Dim ctlEditable = {txtCodigo, txtDeudor, txtOportunidad, drpBanca, txtEjecutivo, drpGarantia, txtCIIU, dteFecha, txtAnalista, drpEstatus, drpConcepto, dteUltAct, txtIngresos, drpCumplimiento, txtROA2, txtIE2, txtAnt, txtAct, txtCovenants, drpFaltas, txtOportunidades, txtCostos, txtPMAA}.ToList()
        Dim ctlText = {txtCodigo, txtDeudor, txtOportunidad, drpBanca, txtEjecutivo, drpGarantia, txtCIIU, dteFecha, txtAnalista, drpEstatus, drpConcepto, dteUltAct, txtIngresos, drpCumplimiento, txtROA2, txtIE2, txtAnt, txtAct, txtCovenants, drpFaltas, txtOportunidades, txtCostos, txtPMAA}.ToList()
        Dim ctlPerma = {txtRAS, txtActividad, txtTipo, txtMultaPot, txtPotencial}.ToList()
        Dim control As Control
        For Each control In Me.Controls
            If TypeOf (control) Is TextBox Then
                Dim txtBox As TextBox = control
                If txtBox.Text.Length = 0 Then
                    ctlEditable.ForEach(Sub(c) c.Enabled = False)
                Else
                    ctlEditable.ForEach(Sub(c) c.Enabled = True)
                    Return
                End If
            End If
        Next
    End Sub

我正在尝试在启用它们进行编辑之前检查文本框是否为空;所以基本上如果它们是空的,你就不能编辑,但如果有文字你可以。我尝试了答案:Check for empty TextBox controls in VB.NET,但没有奏效。

有什么想法吗?

【问题讨论】:

  • 您的文本框在面板内吗?不过,您的逻辑不太合理,因为循环找到的 last 文本框将确定 ctlEditable 列表中的 enabled 属性。
  • @LarsTech 文本框采用普通格式...谢谢您的提示,我会调查一下...

标签: vb.net list textbox


【解决方案1】:

你应该做的是确定是否启用它们,然后才执行foreach循环来启用/禁用。

    Dim enable = Me.Controls.OfType(Of TextBox).Any(Function(t) t.Text.Length > 0)
    ctlEditable.ForEach(Sub(c) c.Enabled = enable)

但是我怀疑你会想要使用ctlEditable 而不是Me.Controls,因为Me.Controls 只包含表单的顶级控件。

【讨论】:

  • 感谢@floatingkiwi!像魅力一样工作! (我用ctlEditable代替Me.Controls
猜你喜欢
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 2014-07-10
  • 1970-01-01
相关资源
最近更新 更多