Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将dialogbox置于所有打开窗体的顶部_C# - Fatal编程技术网

C# 如何将dialogbox置于所有打开窗体的顶部

C# 如何将dialogbox置于所有打开窗体的顶部,c#,C#,我有三个表单:主表单、销售表单和登录表单 在主窗体中我有一个计时器,示例5分钟后登录窗体将被激活 我可以在不关闭主窗体的情况下打开销售窗体主窗体,因此登录窗体将启动 问题是登录表单没有集中在销售表单的顶部,因此用户必须登录才能使用销售表单 主窗体上的一些代码: public void timer_Tick(object sender, EventArgs e) { timer.Stop(); LoginDialog loginForm = new

我有三个表单:主表单、销售表单和登录表单

在主窗体中我有一个计时器,示例5分钟后登录窗体将被激活

我可以在不关闭主窗体的情况下打开销售窗体主窗体,因此登录窗体将启动

问题是登录表单没有集中在销售表单的顶部,因此用户必须登录才能使用销售表单

主窗体上的一些代码:

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);
        }
编辑

尝试将两者结合起来,这可能对你有用

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;


摆弄
最上面的
BringToFront()

我认为问题在于您正在从
主窗体调用
ShowDialog
,并且您还打开了销售窗体

对话框的父对象恰好是
MainForm
,因此您可以尝试使用

loginForm.ShowDialog(saleform1)


salesform1是您从主窗体打开的销售窗体的实例名称。

我尝试了这两种方法。Top Most位于我正在打开的所有程序的顶部。如果TopMost不位于我正在打开的所有其他程序(如浏览器)的顶部,则它非常棒。谢谢,我已尝试不工作,我已更改了上面的代码。是的,这就是我的要求。在发布loginForm.ShowDialog(new Sales())之前,我尝试过这种方法;销售是表单。您如何
显示()
销售表单?从主表单Sales salesForm=new Sales();salesForm.ShowDialog(此);请参考上面编辑的代码。好的,那么您是否尝试过计时器
ShowDialog(salesForm)
,因为salesForm是显示/打开的表单实例,然后登录将放置在它的顶部,它可以工作,但现在我如何知道我正在打开哪个表单,因为主表单也可以启动登录表单。
yourform.BringToFront()