【问题标题】:Making a window (with no system controls) smaller than the system minimum?使窗口(没有系统控件)小于系统最小值?
【发布时间】:2012-03-21 01:42:27
【问题描述】:

我需要制作一个小于操作系统最小值的窗口,我决定删除操作系统控件但它不起作用(我仍然不会使用系统窗口控件),我想要一个与操作系统窗口兼容的解决方案控件,但我只需要一个没有操作系统窗口控件的控件。我对 .Net 有点陌生,所以请解释一下如何使用它。

【问题讨论】:

  • 我已经读了好几遍了……我真的不知道你在问什么。您似乎想创建一个非常小的窗口-您遇到的约束是什么?您指的兼容性是什么?
  • 你问了一些非常有趣的问题。我们需要你详细说明。让我们从 .Net winforms 开始,每个表单都有属性,MinimumSize 的默认值为 0,0。但是,当您将表单的大小调整为最小(在 Win7 上)时,它实际上是 130x 40。现在,当我将 FormsBorderStyle 设置为隐藏并在 InitializeComponent 中更改 clientsize = new System.Drawing.Size(0, 0); - 但是得到这个 - 它仍然是 130x40 - 我不能把它缩小得更小。这是你的问题吗?
  • 这个的用例是什么?也许有更好的方法来解决您遇到的问题?
  • 不,我仍然无法理解“小于操作系统最小值”。如果最小尺寸,那么根据定义,你不能创建比它更小的东西。
  • 如果真的有一个系统最小值...为什么不让表单透明(并且可点击),然后只做一个你想要的大(或小)的小矩形?

标签: c# .net winforms window


【解决方案1】:

您可以尝试使用 user32 函数 SetWindowPos 在 ctor 或加载时更改窗口的大小,并将表单的属性 FormBorderStyle 设置为 None。

我已将表单的大小调整为 10、10,它就像一个魅力。 唯一的问题是您必须实现最小化、最大化和退出按钮(这是有道理的,因为标准系统按钮不适合小窗口。

【讨论】:

  • 他为什么要实现它们?如果您可以退出应用程序会很好...但我认为这些功能不是必需的。
  • 当然,除非他想要该功能,否则他不必这样做。
  • 如何访问该功能?我对 C# 有点陌生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 2013-12-05
  • 2013-05-11
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多