【问题标题】:Windows Forms border and form controlWindows 窗体边框和窗体控件
【发布时间】:2012-03-07 22:00:06
【问题描述】:

当我使用此代码隐藏窗口边框时:

this.FormBorderStyle = FormBorderStyle.None;

我无法控制移动它有没有办法添加一些代码,让您可以单击并拖动表单本身的任何位置?

【问题讨论】:

  • 除非您为鼠标事件编写一些代码,否则您无法通过单击/拖动其客户区来移动窗口。尝试通过单击此文本来移动浏览器。
  • 哈哈好点不知道为什么我忽略了这一点,我想它只是本能地点击表格的边界。我注意到我的大多数游戏应用程序在表单上的任何位置都有(单击拖动),我现在将更新我的问题。

标签: c# winforms


【解决方案1】:

简短的回答,不。 WinForms 没有内置这样的东西。您必须在客户区添加一个事件处理程序并自己处理窗口移动。为避免重复答案,我将您发送回此post

【讨论】:

  • GETah 是否有任何关于如何执行此操作的说明,您是否在旅行中遇到过它可能有链接?
  • 这是不正确的。 Win32 API 支持这一点,因此 WinForms 也支持。 See my answer here 获取说明。我不建议自己通过处理鼠标事件来完成。
  • @CodyGray 在 Windows 上运行本机的任何东西也是如此。问题是关于 WinForms,而不是低级 Win32 API。 Win32 API 不属于任何 WinForm 包,需要外部本机调用,因此 WinForms 不是。想想这个在 Mono 上运行的程序吗?您将如何在基于 Linux 的系统上使用 Win32 API 实现这一目标?
  • @GET:这就是 WinForms:Win32 的包装器。
  • @CodyGray 刚刚又看了一遍文档,你说的是对的。通过覆盖WndProc 可以实现很多事情
【解决方案2】:

相反,使用 Windows API 相对容易。
我们需要说服窗口管理器相信我们点击了窗口的标题。
看看这个project中的示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多