我在WinForms中实现了一个对话框,在屏幕右下角显示为通知对话框。问题是无论什么时候显示它都需要关注,这只有在TopMost = true时才会发生。我该如何解决这个问题?
答案 0 :(得分:4)
您需要从Form继承并覆盖几个属性:
[Flags]
enum WS_EX
{
TOPMOST = 0x00000008,
}
class TopMostForm : Form
{
protected override CreateParams CreateParams
{
get
{
var baseParams = base.CreateParams;
baseParams.ExStyle |= (int)WS_EX.TOPMOST;
return baseParams;
}
}
protected override bool ShowWithoutActivation
{
get { return true; }
}
}
然后只需在此表单上显示Show(),它将显示为最顶层且无效。
答案 1 :(得分:1)
使用Show而不是ShowDialog显示对话框。 ShowDialog将是最顶级的,用户必须在做其他事情之前点击它(模态) Show会显示正常。
答案 2 :(得分:0)
这个策略怎么样: