[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