C#窗体置于所有窗口之上

4
我正在Excel工作簿中的VBA代码中启动一个由C#构建的表单。
我希望这个表单出现在所有其他窗口/应用程序的顶部,包括Excel工作簿。
我尝试了各种组合方式。
        Form1 f = new Form1();
        f.Focus();
        f.ShowDialog();
        f.Activate();
        f.Show();

但是它们都好像没有起作用。有什么提示吗?
非常感谢。
JB
2个回答

9

TopMost属性设置为true

f.TopMost = true;

1
你好 John,谢谢你的回答。但是我也尝试了那个方法,仍然没有窗体在最上层。 - Juan Chô

3
我找到了一个巧妙的方法来实现它:我将窗口最大化,然后再恢复正常大小:
        Form1 f = new Form1();
        f.WindowState = FormWindowState.Maximized;
        f.Focus();
        f.Show();
        f.WindowState = FormWindowState.Normal;
        Application.Run(f);

这对我来说可行,但为什么在一个简单的任务中显示和放置一个表单应该如此复杂?是正确的答案,但它是“最好的方式”吗?我遇到了这个问题,真的很想看到更有效的方法来解决它... - IamSierraCharlie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接