简体   繁体   中英

c# mainui drops behind other windows, issue with topmost

I have a problem with topmost level, found a solution that "works" but it don't look so nice. Is there another "cleaner" way to solve this? Here's my code: comments of event in code.

    OrderTemplateView template;
private void toolStripButton4_Click(object sender, EventArgs e)
    {
        if (template != null)
        {
            template.Close(); //must close to trigger close event.
            template.Dispose();
        }
        mainUi.TopMost = true; // must set my mainUi topMost here othervise it drops in the background of other windows open at the computer.
        template = new OrderTemplateView(this);
        template.TopMost = true;// must set my dialog topmost othervise it drops behind my mainUi
        template.StartPosition = FormStartPosition.CenterParent;
        mainUi.TopMost = false;//must release my topmost so other windows on the computer can be called to front.
        template.TopMost = false;
        template.ShowDialog();
    }

Updated code that does the same job:

 private void toolStripButton4_Click(object sender, EventArgs e)
    {
        if (template != null)
        {
            template.Close();
            template.Dispose();
        }
        template = new OrderTemplateView(mainUi);
        template.StartPosition = FormStartPosition.CenterParent;
        template.ShowDialog(mainUi);
    }

`

Rather than setting TopMost, try the following:

  1. Remove all your references to TopMost

  2. Call mainUi.BringToFront()

  3. Call template.ShowDialog(mainUi) , noting that the parent control is passed to the dialog.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM