我有两种形式:MainForm和PanelForm。
我已将其设置为通过覆盖MainForm的OnMove将PanelForm附加到MainForm,以便PanelForm与MainForm一起移动。这是为了模拟PanelForm是MainForm的面板。
我可以从MainForm停靠和取消停靠和PanelForm,以及将其折叠。
问题是当我最小化MainForm或它失去了对其他应用程序的关注时,当我返回到MainForm时,我必须手动Alt-Tab PanelForm。
有没有办法将PanelForm附加到MainForm,而不会覆盖OnMove或其他东西来模拟它已连接?
答案 0 :(得分:1)
您不能同时拥有两个“活动”表单/窗口。但是,您可以通过激活主窗口将一个或多个窗口带到前台。为此,请使用Form.Show(ownerForm)
覆盖。
答案 1 :(得分:0)
听起来你正在体验形式的本质。它们本质上是独立的。也许你应该做些什么来确保两个表格在你以前被隐藏之后是可见的(最小化/在它前面的另一个窗口)是连续地将焦点设置到它们两个
修改强> 看起来你已经找到了答案,但这也可以。虽然不如接受的答案那么漂亮。只需在两种表格上都这样做。
Timer timer;
bool resetting = false;
Form2 frm2;
public Form1()
{
InitializeComponent();
frm2 = new Form2();
frm2.Show();
timer = new Timer();
timer.Interval = 50;
timer.Tick+=new EventHandler(timer_Tick);
}
private void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
resetting = false;
}
private void Form1_Activated(object sender, EventArgs e)
{
if (!resetting)
{
timer.Start();
frm2.Focus();
this.Focus();
resetting = true;
}
}