【发布时间】:2011-03-07 12:32:02
【问题描述】:
是否可以在 .Net(或通过 pinvoke)中确定窗口窗体是否被遮挡(即其他窗口已移到其上方,因此无法看到)?我正在做的是检查表单是否最小化,如果是,则在任务栏上闪烁窗口。但是问题是如果它没有被最小化,而只是移动到后台,我还想通过在任务栏上闪烁窗口来通知用户。我不想自动将窗口移动到前台(即使没有激活)。我希望他们单击它以最大化和/或显示表单。想法?
这里有一些代码:
// 看看我们是否已经和这个人进行了对话 var frm = theApp.GetConversationByUID(fromuid); 如果(frm == null) { frm = theApp.NewConversation(fromuid, fromname); } 别的 { bool insideView = frm.WindowState != FormWindowState.Minimized; 如果(视图内) { // 判断窗口是否刚刚被遮挡 //去做 } // 如果会话窗口不在视图中,则将其闪烁 如果 (!withinView) { FlashWindow.Flash(frm); } }【问题讨论】:
标签: c# winforms activation topmost