【发布时间】:2018-07-10 17:06:33
【问题描述】:
基本上,只要选中其中一个 CheckBox,TextBox.Visible 属性就会更改为 true,并且应该出现在复选框下方。如果您愿意,可以选中所有三个(或选中任何组合),只要当您取消选中它时,TextBox 消失并且 CheckBox 显示为空/未选中。
我已经到了可以让文本框出现和消失的地步,但文本框永远不会为空。那里总是有一个看起来像这样的黑色方块
那些黑色方块并没有消失,我不确定到底是什么问题。 TextBox 也仅在 CheckBox 具有该正方形而不是所需的实际检查时出现。我使用了 If...ElseIf 语句和 Select Cases 的组合,但没有这样做。我尝试了一些不同的事件,例如 CheckChanged 和 Click。
这是我目前使用的代码,允许我切换框。
Private Sub chkBox_Click(sender As Object, e As EventArgs) Handles chkBox.Click
If chkBox.Checked = False Then
txtBox.Visible = False
txtBox.Text = ""
Else
txtBox.Visible = True
End If
chkBox.Checked = True
End Sub
Private Sub chkLawn_Click(sender As Object, e As EventArgs) Handles chkLawn.Click
If chkLawn.Checked = False Then
txtLawn.Visible = False
txtLawn.Text = ""
Else
txtLawn.Visible = True
End If
chkLawn.Checked = True
End Sub
Private Sub chkPav_Click(sender As Object, e As EventArgs) Handles chkPav.Click
If chkPav.Checked = False Then
txtPav.Visible = False
txtPav.Text = ""
Else
txtPav.Visible = True
End If
chkPav.Checked = True
End Sub
如果你们能想出一个解决方案或能指出我正确的方向,我将不胜感激。
【问题讨论】:
-
请花点时间阅读help center 中关于如何在 Stack Overflow 上提问的网站指南。所有 relevant 代码(并且只有相关代码)都应该是 in 问题 - 没有外部链接。使用问题下方的edit 链接进行任何更改。此外,VBA 与 Visual Studio 无关。我认为 VB.NET 是有意义的,并且会相应地改变标签。
-
发布代码图片通常会使人们对问题投反对票。始终将代码作为文本发布,并带有四个空格缩进。为什么你总是将复选框 Checked 值设置为 true?
-
你知道你可以做像
txtPav.Visible = chkPav.Checked这样的事情。在复选框的 CheckChangedEvent 内执行此操作将在每次复选框状态更改时触发代码。少了很多代码。您甚至可以组合句柄,以便将所有代码放在同一个事件中。 -
您写道“TextBoxes 永远不会为空。那里总是有一个黑色方块......”您指的是 checkboxes 中的黑色方块,它表示它们在一个不确定的状态,或者您指的是例如“总票数”的框,它有一条可见的线?
-
复选框的
ThreeState属性值是多少?确保它是false。