将两种形式都放在顶部
Keep both forms on top
我有 2 个表格(Parent 和 child)。我想把两者都放在最前面(不是最上面)。下一个片段有效,但 parent 没有触发任何事件。我找到了这个“”,虽然它不起作用。
下一个片段适用于保留表单,但 parent 无效:
public FormMain()
{
InitializeComponent();
this.Activated += FormMain_Activated;
}
private void FormMain_Activated(object sender, EventArgs e)
{
ChildForm.Activate();
}
我尝试将 parent 表单集中在“GotFocus”和“Activated”上,但这是行不通的。
注意:对于child形式我有这个片段:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
// turn on WS_EX_TOOLWINDOW style bit
cp.ExStyle |= 0x80;
return cp;
}
}
您描述的行为是自有表单的行为;类似于绘图程序中的浮动工具面板,当它关联的主要 window 执行 minimize/restore 时应该 minimize/restore,但可以独立移动并被其他 windows 当主绘图程序也被覆盖时
为此,您可以使主窗体成为工具面板窗体的所有者。如果主窗体负责打开工具面板:
toolPanel.Show(this); //the code is in the main form so `this` refers to the current instance of the main form
如果其他表单负责显示这两个表单,则更像是 toolPanel.Show(mainForm)
- 我们传递给显示我们想要作为我们正在显示的表单的所有者的表单
我有 2 个表格(Parent 和 child)。我想把两者都放在最前面(不是最上面)。下一个片段有效,但 parent 没有触发任何事件。我找到了这个“
下一个片段适用于保留表单,但 parent 无效:
public FormMain()
{
InitializeComponent();
this.Activated += FormMain_Activated;
}
private void FormMain_Activated(object sender, EventArgs e)
{
ChildForm.Activate();
}
我尝试将 parent 表单集中在“GotFocus”和“Activated”上,但这是行不通的。
注意:对于child形式我有这个片段:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
// turn on WS_EX_TOOLWINDOW style bit
cp.ExStyle |= 0x80;
return cp;
}
}
您描述的行为是自有表单的行为;类似于绘图程序中的浮动工具面板,当它关联的主要 window 执行 minimize/restore 时应该 minimize/restore,但可以独立移动并被其他 windows 当主绘图程序也被覆盖时
为此,您可以使主窗体成为工具面板窗体的所有者。如果主窗体负责打开工具面板:
toolPanel.Show(this); //the code is in the main form so `this` refers to the current instance of the main form
如果其他表单负责显示这两个表单,则更像是 toolPanel.Show(mainForm)
- 我们传递给显示我们想要作为我们正在显示的表单的所有者的表单