【发布时间】:2011-08-17 00:17:19
【问题描述】:
我的情况是这样的。
我有一个作为 frmPopup 的表单,它有一个作为 pnlCtrlHolder 的面板。我将使用此表单弹出窗口并在此面板中显示第三个表单作为控件。
在表格 X 上。
dim frm as frmPopup
''Set the properties for this frmPopup
frm.Opacity=60
Dim frmContent as frmContent
''Set the properties for this frmPopup
frm.Opacity=100
frm.SetForm(frmContent)
frm.ShowDialog(me.toplevelControl)
在 frmPopup 中:
Public Sub SetForm(frm as Windows.Forms.Form)
pnlCtrlHolder.Controls.Clear()
pnlCtrlHolder.Controls.add(frm)
End Sub
现在我的问题, 这使得整个表单具有不透明度 = 60 的 frmContent,但我只需要在 frmPopup 上而不是在 frmContent 上。
我正在开发 vb.net Winforms 应用程序。我知道我要在不透明度为 60 的表单上添加一个表单作为控件。但是有什么方法可以达到预期的结果。 .我错过了什么吗?
【问题讨论】:
-
此代码不能像发布的那样工作,必须将表单的 TopLevel 属性设置为 false,然后才能将其视为子窗口。在这一点上,它也不再可能修补不透明度,这仅适用于顶级窗口。
-
这不是最终代码,只是一个概念。这可能有几个语法错误。
-
你为什么使用“表单作为控件”你应该只创建一个用户控件
-
我想创建类似“灯箱”的东西。我必须使用它,因为这是一个实际的表单,其中包含一组不同的逻辑,具体取决于用户的响应。如果您有更好的想法,请建议我。