我有三种形式Main,Sales和Login。
在主表单中,我有一个计时器,例如5分钟后,登录表格将会启动。
我可以打开一个销售表单,关闭主表单的主表单whitout,这样登录表单就会启动。
问题是登录表单不会集中在销售表单的顶部,因此用户必须登录才能使用销售表单。
主表单上的一些代码:
public void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
LoginDialog loginForm = new LoginDialog();
loginForm.TopLevel = true;
loginForm.ShowDialog();
timer.Start()
}
private void pbSales_Click(object sender, EventArgs e)
{
Sales salesForm = new Sales();
salesForm .ShowDialog(this);
}
答案 0 :(得分:4)
修改强>
尝试两者的组合,这可能对你有用..
private void frmMain_Shown(object sender, EventArgs e)
{
// Make this form the active form and make it TopMost
this.ShowInTaskbar = false;
this.TopMost = true;
this.Focus();
this.BringToFront();
this.TopMost = false;
}
试试这个
yourForm.TopMost = true;
或
yourform.BringToFront()
答案 1 :(得分:1)
我认为问题是您从ShowDialog
调用了MainForm
并且您也打开了销售表单。
Dialog的父级恰好是MainForm
,所以也许您可以尝试使用
loginForm.ShowDialog(saleform1);
salesform1是您从主表单打开的销售表单的实例名称。
答案 2 :(得分:0)
使用TopMost
和BringToFront()