[Mono-bugs] [Bug 79757][Nor] New - Incorrect behavour of MDI applications in 1.1.18

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Oct 27 13:01:30 EDT 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by trofimich at gmail.com.

http://bugzilla.ximian.com/show_bug.cgi?id=79757

--- shadow/79757	2006-10-27 13:01:30.000000000 -0400
+++ shadow/79757.tmp.10552	2006-10-27 13:01:30.000000000 -0400
@@ -0,0 +1,370 @@
+Bug#: 79757
+Product: Mono: Class Libraries
+Version: 1.1
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: Windows.Forms
+AssignedTo: toshok at ximian.com                            
+ReportedBy: trofimich at gmail.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Incorrect behavour of MDI applications in 1.1.18
+
+Same MDI application runned under .NET 1.1 and Mono 1.1.18 works diffirent.
+
+1) Menu bar not redraws well, for example if i make MDI container wider
+2) MDI child's content not drawn
+3) MDI contaner border is absent at all
+4) Childs menu not always added to container's main menu
+5) Minimizing and maximizing of child windows work very strange
+6) MDI-container scrollbars not driven at all in most cases
+...
+
+I didn't tried to run this application under Linux. 
+
+To see this problems please write simple MDI form as in example below and
+run it on windows using .NET and Mono and you will see all problems.
+
+Code of application generated using VS 2003:
+
+MDI.cs
+
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+using System.Data;
+
+namespace MDI
+{
+	/// <summary>
+	/// Summary description for Form1.
+	/// </summary>
+	public class MDI : System.Windows.Forms.Form
+	{
+		private System.Windows.Forms.MainMenu mainMenu1;
+		private System.Windows.Forms.MenuItem menuItem1;
+		private System.Windows.Forms.MenuItem menuItem2;
+		private System.Windows.Forms.MenuItem menuItem3;
+		private System.Windows.Forms.MenuItem menuItem4;
+		private System.Windows.Forms.Panel panel1;
+		private System.Windows.Forms.RichTextBox richTextBox1;
+		private System.Windows.Forms.Splitter splitter1;
+		/// <summary>
+		/// Required designer variable.
+		/// </summary>
+		private System.ComponentModel.Container components = null;
+
+		public MDI()
+		{
+			//
+			// Required for Windows Form Designer support
+			//
+			InitializeComponent();
+
+			//
+			// TODO: Add any constructor code after InitializeComponent call
+			//
+		}
+
+		/// <summary>
+		/// Clean up any resources being used.
+		/// </summary>
+		protected override void Dispose( bool disposing )
+		{
+			if( disposing )
+			{
+				if (components != null) 
+				{
+					components.Dispose();
+				}
+			}
+			base.Dispose( disposing );
+		}
+
+		#region Windows Form Designer generated code
+		/// <summary>
+		/// Required method for Designer support - do not modify
+		/// the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.mainMenu1 = new System.Windows.Forms.MainMenu();
+			this.menuItem1 = new System.Windows.Forms.MenuItem();
+			this.menuItem2 = new System.Windows.Forms.MenuItem();
+			this.menuItem3 = new System.Windows.Forms.MenuItem();
+			this.menuItem4 = new System.Windows.Forms.MenuItem();
+			this.panel1 = new System.Windows.Forms.Panel();
+			this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+			this.splitter1 = new System.Windows.Forms.Splitter();
+			this.panel1.SuspendLayout();
+			this.SuspendLayout();
+			// 
+			// mainMenu1
+			// 
+			this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+																					  this.menuItem1});
+			// 
+			// menuItem1
+			// 
+			this.menuItem1.Index = 0;
+			this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+																					  this.menuItem2,
+																					  this.menuItem3,
+																					  this.menuItem4});
+			this.menuItem1.Text = "Actions";
+			// 
+			// menuItem2
+			// 
+			this.menuItem2.Index = 0;
+			this.menuItem2.Text = "Create child";
+			this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
+			// 
+			// menuItem3
+			// 
+			this.menuItem3.Index = 1;
+			this.menuItem3.Text = "-";
+			// 
+			// menuItem4
+			// 
+			this.menuItem4.Index = 2;
+			this.menuItem4.Text = "Exit";
+			// 
+			// panel1
+			// 
+			this.panel1.Controls.Add(this.richTextBox1);
+			this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
+			this.panel1.Location = new System.Drawing.Point(0, 0);
+			this.panel1.Name = "panel1";
+			this.panel1.Size = new System.Drawing.Size(128, 381);
+			this.panel1.TabIndex = 1;
+			// 
+			// richTextBox1
+			// 
+			this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.richTextBox1.Location = new System.Drawing.Point(0, 0);
+			this.richTextBox1.Name = "richTextBox1";
+			this.richTextBox1.Size = new System.Drawing.Size(128, 381);
+			this.richTextBox1.TabIndex = 0;
+			this.richTextBox1.Text = "richTextBox1";
+			// 
+			// splitter1
+			// 
+			this.splitter1.Location = new System.Drawing.Point(128, 0);
+			this.splitter1.Name = "splitter1";
+			this.splitter1.Size = new System.Drawing.Size(3, 381);
+			this.splitter1.TabIndex = 2;
+			this.splitter1.TabStop = false;
+			// 
+			// MDI
+			// 
+			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+			this.ClientSize = new System.Drawing.Size(616, 381);
+			this.Controls.Add(this.splitter1);
+			this.Controls.Add(this.panel1);
+			this.IsMdiContainer = true;
+			this.Menu = this.mainMenu1;
+			this.Name = "MDI";
+			this.Text = "MDI";
+			this.panel1.ResumeLayout(false);
+			this.ResumeLayout(false);
+
+		}
+		#endregion
+
+		/// <summary>
+		/// The main entry point for the application.
+		/// </summary>
+		[STAThread]
+		static void Main() 
+		{
+			Application.Run(new MDI());
+		}
+
+		private void menuItem2_Click(object sender, System.EventArgs e)
+		{
+			Child child = new Child();
+			child.MdiParent = this;
+			child.Show();
+		}
+	}
+}
+
+
+
+2) Child.cs
+
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace MDI
+{
+	/// <summary>
+	/// Summary description for Child.
+	/// </summary>
+	public class Child : System.Windows.Forms.Form
+	{
+		private System.Windows.Forms.Button button1;
+		private System.Windows.Forms.TabControl tabControl1;
+		private System.Windows.Forms.TabPage tabPage1;
+		private System.Windows.Forms.TabPage tabPage2;
+		private System.Windows.Forms.MainMenu mainMenu1;
+		private System.Windows.Forms.MenuItem menuItem1;
+		private System.Windows.Forms.TreeView treeView1;
+		/// <summary>
+		/// Required designer variable.
+		/// </summary>
+		private System.ComponentModel.Container components = null;
+
+		public Child()
+		{
+			//
+			// Required for Windows Form Designer support
+			//
+			InitializeComponent();
+
+			//
+			// TODO: Add any constructor code after InitializeComponent call
+			//
+		}
+
+		/// <summary>
+		/// Clean up any resources being used.
+		/// </summary>
+		protected override void Dispose( bool disposing )
+		{
+			if( disposing )
+			{
+				if(components != null)
+				{
+					components.Dispose();
+				}
+			}
+			base.Dispose( disposing );
+		}
+
+		#region Windows Form Designer generated code
+		/// <summary>
+		/// Required method for Designer support - do not modify
+		/// the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+			this.button1 = new System.Windows.Forms.Button();
+			this.tabControl1 = new System.Windows.Forms.TabControl();
+			this.tabPage1 = new System.Windows.Forms.TabPage();
+			this.tabPage2 = new System.Windows.Forms.TabPage();
+			this.mainMenu1 = new System.Windows.Forms.MainMenu();
+			this.menuItem1 = new System.Windows.Forms.MenuItem();
+			this.treeView1 = new System.Windows.Forms.TreeView();
+			this.tabControl1.SuspendLayout();
+			this.tabPage1.SuspendLayout();
+			this.tabPage2.SuspendLayout();
+			this.SuspendLayout();
+			// 
+			// button1
+			// 
+			this.button1.Location = new System.Drawing.Point(152, 176);
+			this.button1.Name = "button1";
+			this.button1.TabIndex = 0;
+			this.button1.Text = "Close";
+			this.button1.Click += new System.EventHandler(this.menuItem1_Click);
+			// 
+			// tabControl1
+			// 
+			this.tabControl1.Controls.Add(this.tabPage1);
+			this.tabControl1.Controls.Add(this.tabPage2);
+			this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.tabControl1.Location = new System.Drawing.Point(0, 0);
+			this.tabControl1.Name = "tabControl1";
+			this.tabControl1.SelectedIndex = 0;
+			this.tabControl1.Size = new System.Drawing.Size(392, 325);
+			this.tabControl1.TabIndex = 1;
+			// 
+			// tabPage1
+			// 
+			this.tabPage1.Controls.Add(this.button1);
+			this.tabPage1.Location = new System.Drawing.Point(4, 22);
+			this.tabPage1.Name = "tabPage1";
+			this.tabPage1.Size = new System.Drawing.Size(384, 299);
+			this.tabPage1.TabIndex = 0;
+			this.tabPage1.Text = "tabPage1";
+			// 
+			// tabPage2
+			// 
+			this.tabPage2.Controls.Add(this.treeView1);
+			this.tabPage2.Location = new System.Drawing.Point(4, 22);
+			this.tabPage2.Name = "tabPage2";
+			this.tabPage2.Size = new System.Drawing.Size(384, 299);
+			this.tabPage2.TabIndex = 1;
+			this.tabPage2.Text = "tabPage2";
+			// 
+			// mainMenu1
+			// 
+			this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+																					  this.menuItem1});
+			// 
+			// menuItem1
+			// 
+			this.menuItem1.Index = 0;
+			this.menuItem1.Text = "Close";
+			this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
+			// 
+			// treeView1
+			// 
+			this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+			this.treeView1.ImageIndex = -1;
+			this.treeView1.Location = new System.Drawing.Point(0, 0);
+			this.treeView1.Name = "treeView1";
+			this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
+																				  new System.Windows.Forms.TreeNode("Node0"),
+																				  new System.Windows.Forms.TreeNode("Node1", new
+System.Windows.Forms.TreeNode[] {
+																																									 new
+System.Windows.Forms.TreeNode("Node2", new System.Windows.Forms.TreeNode[] {
+																																																														new
+System.Windows.Forms.TreeNode("Node3")}),
+																																									 new
+System.Windows.Forms.TreeNode("Node4", new System.Windows.Forms.TreeNode[] {
+																																																														new
+System.Windows.Forms.TreeNode("Node5")})}),
+																				  new System.Windows.Forms.TreeNode("Node6", new
+System.Windows.Forms.TreeNode[] {
+																																									 new
+System.Windows.Forms.TreeNode("Node7")})});
+			this.treeView1.SelectedImageIndex = -1;
+			this.treeView1.Size = new System.Drawing.Size(384, 299);
+			this.treeView1.TabIndex = 0;
+			// 
+			// Child
+			// 
+			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+			this.ClientSize = new System.Drawing.Size(392, 325);
+			this.Controls.Add(this.tabControl1);
+			this.Menu = this.mainMenu1;
+			this.Name = "Child";
+			this.Text = "Child";
+			this.tabControl1.ResumeLayout(false);
+			this.tabPage1.ResumeLayout(false);
+			this.tabPage2.ResumeLayout(false);
+			this.ResumeLayout(false);
+
+		}
+		#endregion
+
+		private void menuItem1_Click(object sender, System.EventArgs e)
+		{
+			this.Close();
+		}
+	}
+}


More information about the mono-bugs mailing list