Disable resize on titlebar double click

G

Guest

I need to know how to intercept and neutralize the doubleclick event that
happens when someone double clicks the titlebar of a window.

I borrowed some encapsulation code that keeps the user from moving the form,
and have set the form's min height and width value to its fullscreen values.
But when I double click the title bar it flashes the window to a smaller size
then restores it to the fullscreen size, but moved a few pixels the the
bottom right. I want to stop this from happening at all.


FYI here is the code for an object that encapsulates a Form object and adds
a Movable property for anyone interested. Add this as a new class then
change what the form inherits to MovableForm

from http://dotnet.mvps.org/dotnet/faqs/?id=nonmoveableform&lang=en

///////////////code below

Imports System.ComponentModel
Imports System.Windows.Forms

Public Class MoveableForm
Inherits Form

Private Const WM_NCLBUTTONDOWN As Int32 = &HA1
Private Const WM_SYSCOMMAND As Int32 = &H112

Private Const HTCAPTION As Int32 = &H2

Private Const SC_MOVE As Int32 = &HF010

Private m_Moveable As Boolean

Public Sub New()
MyBase.New()
Me.Moveable = True
End Sub

< _
Category("Behavior"), _
Description("Allows the form to be moved.") _
Public Property Moveable() As Boolean
Get
Return m_Moveable
End Get
Set(ByVal Value As Boolean)
m_Moveable = Value
End Set
End Property

Protected Overrides Sub WndProc(ByRef m As Message)
If Not m_Moveable Then
If _
m.Msg = WM_SYSCOMMAND And _
m.WParam.ToInt32() = SC_MOVE _
OrElse _
m.Msg = WM_NCLBUTTONDOWN And _
m.WParam.ToInt32() = HTCAPTION _
Then
Return
End If
End If
MyBase.WndProc(m)
End Sub

Private Sub MoveableForm_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub InitializeComponent()
'
'MoveableForm
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Name = "MoveableForm"

End Sub
End Class
 
C

Chris, Master of All Things Insignificant

Form.MaximizeBox = False

This will stop the double click from doing anything.

Also Form.ControlBox = False has the same effect

Chris
 
G

Guest

That keeps the form from resizing, but if I double click the title bar the
window still flashes to a smaller size then restores slightly out of place.
My border style is fixed single, the form has no minimize or maximize
buttons, and i used the code above to keep the user from moving the form at
all. I still would like to keep the window from flashing, restoring, then
moving off center when i double click the title bar,.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top