473,511 Members | 15,818 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Weird MDI problem - sample code attached - WindowsApplication1.zip (0/1)

Hi,

This is a problem I noticed in one of my applications the other day
and can't figure out how to fix.

In the attached code I have 2 forms. The form named form1 is the MDI
container, form2 is an MDIChild. I show the child form with the
following code in the Form_Load event of the MDI container...

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim f As New Form2
f.MdiParent = Me
f.Show()
End Sub

....on the child form I have placed 2 controls, a button and a
checkbox. I've set both the controls to FlatStyle.Flat so the
appearance changes on mouse events.

The following code is on the button click event...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Static bln As Boolean
If (bln) Then
Dim f As Form = Me.Owner
Me.Owner = Nothing
Me.MdiParent = f
bln = False
Else
Dim f As Form = Me.MdiParent
Me.MdiParent = Nothing
Me.Owner = f
bln = True
End If
End Sub

....this sets form2 to non-MDIChild and back to MDIChild.

The problem is when I do this with the code shown above the 2 controls
on the form stop responding to the mouse events enter and leave. This
can be seen quite easily because they no longer change appearance.

Is the code on the button click incorrect, or is this a known bug?

Any help would be much appreciated...

Regards
Andrew K
Nov 20 '05 #1
1 1351
Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form
Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(320, 213)
Me.IsMdiContainer = True
Me.Name = "Form1"
Me.Text = "Form1"

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim f As New Form2
f.MdiParent = Me
f.Show()
End Sub
End Class

Public Class Form2
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form
Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.CheckBox1 = New System.Windows.Forms.CheckBox
Me.Button1 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'CheckBox1
'
Me.CheckBox1.Cursor = System.Windows.Forms.Cursors.Hand
Me.CheckBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.CheckBox1.Location = New System.Drawing.Point(48, 32)
Me.CheckBox1.Name = "CheckBox1"
Me.CheckBox1.TabIndex = 0
Me.CheckBox1.Text = "CheckBox1"
'
'Button1
'
Me.Button1.Cursor = System.Windows.Forms.Cursors.Hand
Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button1.Location = New System.Drawing.Point(48, 80)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 1
Me.Button1.Text = "Button1"
'
'Form2
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(240, 133)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.CheckBox1)
Me.Name = "Form2"
Me.Text = "Form2"
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Static bln As Boolean
If (bln) Then
Dim f As Form = Me.Owner
Me.Owner = Nothing
Me.MdiParent = f
bln = False
Else
Dim f As Form = Me.MdiParent
Me.MdiParent = Nothing
Me.Owner = f
bln = True
End If
End Sub

Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.MouseEnter
Console.WriteLine("Button1_MouseEnter")
End Sub

Private Sub Button1_MouseLeave(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.MouseLeave
Console.WriteLine("Button1_MouseLeave")
Me.Button1.FlatStyle = FlatStyle.Flat
End Sub

Private Sub CheckBox1_MouseEnter(ByVal sender As Object, ByVal e
As System.EventArgs) Handles CheckBox1.MouseEnter
Console.WriteLine("CheckBox1_MouseEnter")
End Sub

Private Sub CheckBox1_MouseLeave(ByVal sender As Object, ByVal e
As System.EventArgs) Handles CheckBox1.MouseLeave
Console.WriteLine("CheckBox1_MouseLeave")
End Sub
End Class
Nov 20 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
22697
by: Ryan Park | last post by:
Hi, //SITUATION I got a panel control that hold a certain position on a form. Every controls or UIs are on this panel. At certain situation, I called dispose() method of this panel control...
0
1277
by: Shaul Feldman | last post by:
Hello, I have a couple of things: 1) a page contains a button that has some JS code attached to it programmatically. Also the page loads a web user control with LoadControl method. In UC I...
3
1392
by: ItsMe | last post by:
Hi Guyz, I'm developing some application using third party api. They have given me sample project which is in VB6.0. I'm a newbie in vb.net. and the classic vb works perfectly alright. My job is...
10
3984
by: Charles Law | last post by:
For some reason, when I click the X to close my MDI parent form, the action appears to be re-directed to one of the MDI child forms, and the parent remains open. I am then unable to close the...
0
1072
by: M.Selvakumar | last post by:
Hi, I have a weird problem in checkbox.In my page, When i move mouse from one textbox to other suddenly the chechbox's text is selected and the typed chracters are attached to the checkbox...
2
1229
by: M.Selvakumar | last post by:
Hi, I have a weird problem in checkbox.In my page, When i move mouse from one textbox to other suddenly the chechbox's text is selected and the typed chracters are attached to the checkbox...
11
1747
by: ChrisM | last post by:
Hi, Don't know if anyone can cast any light on this... I have a fairly complex C# WinForm with (amongst other) a text box and a button. The TextBox has events declared for KeyUp and KeyDown,...
2
2733
by: Stephan Zaubzer | last post by:
Hi all, I encountered a problem with NumericUpDown yesterday and managed to reproduce the error with a very easy examle. I have a Windows Application with only one Form, which contains only one...
1
4952
by: Jamey McElveen | last post by:
Sorry I keep posting around tha subject but I cannot get seem what I need out of clickonce. another thing that would hele me would be the ability to change the codebase tag on the server in code...
0
7252
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7432
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7093
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7517
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5676
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5077
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
3230
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3218
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
1583
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.