https://bugzilla.novell.com/show_bug.cgi?id=661893
https://bugzilla.novell.com/show_bug.cgi?id=661893#c0 Summary: TabControl draws previously focused ComboBox on wrong TabPage Classification: Mono Product: Mono: Class Libraries Version: 2.8.x Platform: Macintosh OS/Version: Mac OS X 10.5 Status: NEW Severity: Normal Priority: P5 - None Component: Windows.Forms AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=406612) --> (http://bugzilla.novell.com/attachment.cgi?id=406612) full VB.NET Project (use bin\Release\Test002TabControl.exe to test on Mac) User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; .NET4.0C) On a Windows Form, I created a TabControl with two TabPages. On TabPage1, I put a ComboBox with .DrowDownStyle = DropDownList and a few Items ("a", "b", "c"). TabPage2 remains empty. Now I started the programme on Mac, and perform the following mouse clicks: - Select any Item from the ComboBox on TabPage1 - Now immediately click on TabPage2 The ControlBox is now visible on TabPage2 (but cannot be used there). Reproducible: Always Steps to Reproduce: 1. In VB.NET, created a Form with the following designer code: <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub Private components As System.ComponentModel.IContainer <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.TabControl1 = New System.Windows.Forms.TabControl Me.TabPage1 = New System.Windows.Forms.TabPage Me.ComboBox1 = New System.Windows.Forms.ComboBox Me.TabPage2 = New System.Windows.Forms.TabPage Me.TabControl1.SuspendLayout() Me.TabPage1.SuspendLayout() Me.SuspendLayout() ' 'TabControl1 ' Me.TabControl1.Controls.Add(Me.TabPage1) Me.TabControl1.Controls.Add(Me.TabPage2) Me.TabControl1.Location = New System.Drawing.Point(23, 21) Me.TabControl1.Name = "TabControl1" Me.TabControl1.SelectedIndex = 0 Me.TabControl1.Size = New System.Drawing.Size(243, 222) Me.TabControl1.TabIndex = 0 ' 'TabPage1 ' Me.TabPage1.Controls.Add(Me.ComboBox1) Me.TabPage1.Location = New System.Drawing.Point(4, 22) Me.TabPage1.Name = "TabPage1" Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Size = New System.Drawing.Size(235, 196) Me.TabPage1.TabIndex = 0 Me.TabPage1.Text = "TabPage1" Me.TabPage1.UseVisualStyleBackColor = True ' 'ComboBox1 ' Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.ComboBox1.FormattingEnabled = True Me.ComboBox1.Items.AddRange(New Object() {"a", "b", "c"}) Me.ComboBox1.Location = New System.Drawing.Point(17, 33) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(195, 21) Me.ComboBox1.TabIndex = 0 ' 'TabPage2 ' Me.TabPage2.Location = New System.Drawing.Point(4, 22) Me.TabPage2.Name = "TabPage2" Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) Me.TabPage2.Size = New System.Drawing.Size(235, 196) Me.TabPage2.TabIndex = 1 Me.TabPage2.Text = "TabPage2" Me.TabPage2.UseVisualStyleBackColor = True ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(284, 262) Me.Controls.Add(Me.TabControl1) Me.Name = "Form1" Me.Text = "Form1" Me.TabControl1.ResumeLayout(False) Me.TabPage1.ResumeLayout(False) Me.ResumeLayout(False) End Sub Friend WithEvents TabControl1 As System.Windows.Forms.TabControl Friend WithEvents TabPage1 As System.Windows.Forms.TabPage Friend WithEvents TabPage2 As System.Windows.Forms.TabPage Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox End Class 2. Compile the program and run it on Mac OS X using Mono. 3. Use the mouse to select an Item from the ComboBox on TabPage1, then immediately click on TabPage2 Actual Results: The ComboBox from TabPage1 is visible on TabPage2. Expected Results: TabPage2 should, of course, be empty. I made the following additional observations: * This problem happens on Mac, but not on Windows (sorry, I could not test it on Linux). * It does NOT happen if I click on TabPage1 -> ComboBox -> TabPage1 -> TabPage2. So, TabPage2 must be clicked immediately after selecting an Item from ComboBox, for the problem to arise. * Similar effects can be observed if, instead of a ComboBox, you focus a CheckBox on TabPage1, or if you *select* text in TextBox on TabPage1 (but not if you put the cursor in the TextBox without selecting text) * I checked the order of events fired, and that was fine (i.e. Windows and Mac showed the same order (but Mac had three events more than Windows): - TabPage1.Leave [only on Mac] - TabPage1.Validating - TabPage1.Validated - TabControl.Deselecting - TabControl.Deselected - TabPage1.Leave - TabControl.Selecting - TabPage2.Enter - TabControl.SelectedIndexChanged - TabControl.MouseDown - TabControl.LostFocus [only on Mac] - TabControl.LostFocus [only on Mac] - TabControl.Click - TabControl.MouseClick - TabControl.MouseUp. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
