WinForm 的属性值未设置

问题描述 投票:0回答:1

场景如下:

我有一个复选框,当初始化表单时,该复选框的

Visible
属性设置为 false。

然后,在程序执行过程中,

Visible
属性设置为 true,程序继续正常运行。

但是,即使在显示表单时复选框可见,立即设置属性后,其值也不会更改。

我在here发布了一个视频来在调试过程中进行演示。

有人看过这个吗?

这是我第一次看到如此近距离的事情发生。

这是执行的代码:

1 | Using frm As New FormLicenseInput(Me, code, product)
2 |    frm.Message = msg
3 |    frm.CheckDontShow.Visible = _IsInitializing
4 |    If frm.OpenDialog(ownerWindow) = DialogResult.Cancel Then
5 |        Return Nothing
6 |    End If
7 | End Using

属性在第 3 行更改,但在第 4 行,在调试期间检查时,其值未更改。

.net vb.net
1个回答
0
投票

感谢 Olivier Jacot-DecombesJimi 指出解决方案。

只要表单的句柄(和控件的句柄)尚未创建,该属性(在本例中为

Visible
属性)仅存储在内部,外部无法使用。

(如果你问我的话,这是相当奇怪的设计解决方案。)

© www.soinside.com 2019 - 2024. All rights reserved.