Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c语言中检测双击窗口标题#_C#_.net_Winforms - Fatal编程技术网

C# 如何在c语言中检测双击窗口标题#

C# 如何在c语言中检测双击窗口标题#,c#,.net,winforms,C#,.net,Winforms,当然,这也是发生窗口移动事件的一种方式。有什么想法吗?你的标题要求一件事,你的问题是另一件事。对于你的问题,我想你是在寻找这个-- 编辑: 您的标题问题-- 您可以通过以下方式处理双击 #定义WM\u ncmbuttondblck 0x00A9 希望这些能够回答您的问题。双击窗口的标题栏时,窗口的大小会发生变化:它要么最大化,要么返回到正常的窗口状态。在这两种情况下,以及窗口最小化时,都会触发Resize事件。这意味着您可以通过以下方式处理窗口最大化、最小化和其他窗口大小调整事件: pr

当然,这也是发生窗口移动事件的一种方式。有什么想法吗?

你的标题要求一件事,你的问题是另一件事。对于你的问题,我想你是在寻找这个--

编辑:

您的标题问题--

您可以通过以下方式处理双击

#定义WM\u ncmbuttondblck 0x00A9


希望这些能够回答您的问题。

双击窗口的标题栏时,窗口的大小会发生变化:它要么最大化,要么返回到正常的窗口状态。在这两种情况下,以及窗口最小化时,都会触发Resize事件。这意味着您可以通过以下方式处理窗口最大化、最小化和其他窗口大小调整事件:

    private void Form1_Resize(object sender, EventArgs e)
    {
        switch (this.WindowState)
        {
            case FormWindowState.Maximized:
                //handle maximizing
                break;
            case FormWindowState.Minimized:
                //handle minimizing
                break;
            case FormWindowState.Normal:
                //if you want, handling resizing the window in Normal state.
                break;
            default:
                break;
        }
    }
您还可以处理窗体/窗口的移动事件,以便在其移动时执行以下操作:

    private void Form1_Move(object sender, EventArgs e)
    {
        this.Text = this.Location.ToString();
    }

我希望这能有所帮助。

解决方案不适合我(VS2015,Win7)。 但有一种稍微不同的方式在起作用

    protected override void WndProc(ref Message m)
    {
        base.WndProc(ref m);
        const int WM_NCLBUTTONDBLCLK = 0x00A3;    // this constant int is different

        if (m.Msg == WM_NCLBUTTONDBLCLK)
            this.OnResizeEnd(EventArgs.Empty);
    }

因为这是两个问题。一个是标题,一个是动作。无论如何,谢谢你。对标题双击有什么想法吗?我想看看不安全的方法是否能帮助你。看起来这对你来说很容易。按照链接中的说明处理winform消息应该对您有用。很简单。左键:#定义WM#NCLU按钮和BLCLK 0x00A3,右键:#定义WM#NCLU按钮和BLCLK 0x00A6谢谢回复。我的表单处于SizableTool状态。无法更改其状态。您的意思是FormBorderStyle已设置为SizableToolWindow。具有此边框样式的窗体仍然可以最大化、最小化、调整大小和移动。WindowsState仍然可以更改。你试过我写的吗?如果没有,请自己试一试。:)真正地我以为自从我将它设置为SizableToolWindow后就再也没有更改过。我现在就试试。这不是一个好的解决方案,因为它会捕获所有调整大小的事件,不管它们是否源于双击标题栏。它不会改变。当然,我将最大和最小按钮设置为false:(应用程序对双击窗口标题作出反应是很少见的。通常这是由窗口管理器处理的。为什么要这样做?我的mdi容器中有几个子窗口。我想将它们用作可停靠窗口,以使我的工作更轻松,因为我不想让用户控件像窗体一样。因此,我我需要知道标题什么时候被点击,我执行停靠操作。目前我只是将其设置为双击,但它只是在内部窗口区域而不是边框中进行操作。