【问题标题】:Why does the GroupBox's Text display as expected, but not the Labels' Text?为什么 GroupBox 的文本按预期显示,而不是标签的文本?
【发布时间】:2015-09-17 04:39:01
【问题描述】:

我有一个包含 GroupBox 的表单,在这个 GroupBox 中有一些标签和一个 CheckBox。 CheckBox 在设计时设置为“Checked”,这意味着当它加载时默认为“Checked”。因此,当创建此表单的新实例时,该复选框的 CheckChanged 事件会在表单的 Load 事件之前触发。标签的文本值取决于复选框是否被选中。

这是在复选框的 CheckChanged 事件中,该事件在表单的 Load 事件之前触发:

If chkUseAsFull.Checked Then
    fraHalf.Text = "Full Spacing"
    lblLitHalfSpacing.Text = "Spacing"
    lblLitHalfSpeed.Text = "Speed"
    txtHalfSpacing.Text = txtSpacing.Text
    txtHalfSpacing.Enabled = False
    cmdAdjustHalf.Enabled = False
Else
    fraHalf.Text = "Half Spacing"
    lblLitHalfSpacing.Text = "1/2 Spacing"
    lblLitHalfSpeed.Text = "1/2 Speed"
    txtHalfSpacing.Text = Format(spc, "##0.00")
    txtHalfSpacing.Enabled = True
    cmdAdjustHalf.Enabled = True
End If
  • fraHalf 是分组框,lblLitHalfSpacinglblLitHalfSpeed 是其中的标签。

请注意,在设计时,组框和标签的文本值是未选中复选框时指定的值。

但是当我启动这个表单时,组框的文本是“全间距”,但标签的文本是“1/2 间距”和“1/2 速度”。

为什么组框的文本会根据复选框的选中值正确显示,而不是那些标签的文本?

【问题讨论】:

  • 不要依赖设计器为你运行代码。标签可能会发生变化,但随后设计人员可能会稍后在代码中将它们改回其原始属性。这意味着如果您知道默认已选中,则应在该默认模式下创建标签。或者在加载事件中,你可以自己调用它fraHalf_CheckChanged(fraHalf, EventArgs.Empty)
  • 控件按照您添加到表单的顺序进行初始化。您的标签可能正在更改,但在运行设计器代码时又更改回来。标签文本中的断点已更改(查看设计器代码)将确认
  • user3697824 - 我不知道控件添加到表单的顺序。我没有把这个表格放在一起,所以它一定是以标签出现在复选框之后的方式完成的。很高兴知道! @LarsTech - 是的,改变设计师的这些价值观就行了。如果您将此作为答案与 user3697824 提出的观点一起发布,我会接受。谢谢!

标签: vb.net text checkbox label groupbox


【解决方案1】:

不要依赖设计器为您运行代码。标签可能会发生变化,但随后设计人员可能会稍后在代码中将它们改回其原始属性。这意味着如果您知道默认已选中,则应在该默认模式下创建标签。或者在加载事件中,你可以自己调用它

fraHalf_CheckChanged(fraHalf, EventArgs.Empty)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多