如何在所有打开的表单上打开对话框

时间:2012-07-13 10:05:42

标签: c#

我有三种形式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);
        }

3 个答案:

答案 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;

Control.BringToFront Method

yourform.BringToFront()

答案 1 :(得分:1)

我认为问题是您从ShowDialog调用了MainForm并且您也打开了销售表单。

Dialog的父级恰好是MainForm,所以也许您可以尝试使用

loginForm.ShowDialog(saleform1);

salesform1是您从主表单打开的销售表单的实例名称。

答案 2 :(得分:0)

使用TopMostBringToFront()

来摆弄