相关疑难解决方法(0)

如何使WinForms应用程序全屏显示

我有一个WinForms应用程序,我试图全屏(有点像VS在全屏模式下).

目前,我设置FormBorderStyleNoneWindowStateMaximized这给我多一点空间,但它并没有在任务栏覆盖,如果它是可见的.

我还需要做些什么才能使用这个空间?

对于奖励积分,我可以采取MenuStrip哪些措施让我的自动隐身也放弃这个空间吗?

.net c# winforms

104
推荐指数
4
解决办法
12万
查看次数

如何在任务栏顶部全屏显示Windows窗体?

我有一个需要全屏运行的.net Windows应用程序.当应用程序启动时,任务栏显示在主窗体的顶部,只有在通过单击或使用ALT-TAB激活窗体时它才会消失.表单的当前属性如下:

  • 的WindowState = FormWindowState.Normal
  • 最顶层=正常
  • 大小= 1024,768(这是它将要运行的机器的屏幕分辨率)
  • FormBorderStyle =无

我尝试在表单加载中添加以下内容,但没有一个对我有用:

  • this.Focus(); (在给焦点之后.Focus属性总是假的)
  • this.BringToFront();
  • this.TopMost = true; (但这在我的场景中并不理想)
  • this.Bounds = Screen.PrimaryScreen.Bounds;
  • this.Bounds = Screen.PrimaryScreen.Bounds;

有没有办法在.NET中执行它,或者我必须调用本机Windows方法,如果是这样,我们非常感谢代码片段.

非常感谢

.net c# taskbar fullscreen winforms

61
推荐指数
6
解决办法
27万
查看次数

隐藏另一个应用的任务栏按钮

我希望能够从任务栏隐藏另一个应用程序的窗口,而不隐藏窗口本身.具体来说,我希望在Alt + Tab列表中运行,可见,可用的几个不同的Web浏览器,但不占用任务栏上的空间.

(如果有人好奇为什么:我编写了一个仪表板应用程序,它使用Vista的DwmRegisterThumbnail API同时显示几个窗口的实时预览 - 如果你愿意的话,这是一种"画中画".此时,还有任务栏按钮对于那些窗口似乎是多余的.)

我知道将其他窗口的样式更改为include WS_EX_TOOLWINDOW会将其隐藏在任务栏中,我先尝试了.但是,正如预期的那样,它有一些我不想要的副作用:标题栏变得更短(不是很糟糕,我猜)并且最小化和最大化按钮消失了(不好).我还必须隐藏并重新显示窗口以使任务栏识别出更改,这会导致重新绘制工件,当我对IE窗口进行操作时.

我的下一个想法是,由于默认情况下窗口与所有者隐藏在任务栏中,也许我可以将其他窗口更改为我的所有权.但MSDN 非常清楚 "创建一个拥有的窗口,应用程序无法将窗口的所有权转移到另一个窗口."

我发现这个问题与我的问题类似,但它特别关注来自您自己的进程的窗口,您可以完全控制窗口所有权.

有没有人知道隐藏任务栏按钮的任何其他方法,这将适用于来自另一个进程的窗口?


更新: Tormod通过ITaskbarList让我走上正轨 - 它运行良好.pinvoke.net页面有一些错误(错误的GUID,按字母顺序而不是按接口顺序声明的方法),但我编辑了它,进行了更正,还添加了一个如何通过其coclass实例化ITaskbarList的示例.

更新2:如果您使用DeleteTab隐藏窗口的任务栏按钮,然后将其设置为活动窗口(例如,通过SetForegroundWindow或Alt + Tab),它的任务栏按钮将重新出现.为了保持任务栏按钮隐藏,我不得不添加一个计时器并继续调用DeleteTab.只要您不介意任务栏按钮在窗口聚焦时重新出现,这很有效.

.net c# pinvoke

14
推荐指数
1
解决办法
4039
查看次数

标签 统计

.net ×3

c# ×3

winforms ×2

fullscreen ×1

pinvoke ×1

taskbar ×1