日期:2014-05-17  浏览次数:20749 次

求教:关于新建子窗口的问题
我自己编写的一个练习程序。因为练习,所以很多主窗口的很多属性以及语句都是改来改去的,现在遇到一个问题:
新建的子窗口总在主窗口的控件之下。原来创建FormAbout子窗口的时候,没有出现问题;后来我想在运行的时候动态创建FormAbout窗口,就会出现这个问题。程序没有报告任何错误。
我把有关这部分的语句都拷贝过来了:
 private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form FormAbout = new Form();
            //FormAbout.Parent = this;
            //this.Container.Add(FormAbout)//wrong
            FormAbout.MdiParent = this ;
           // this.MdiChildren = FormAbout;//read-only
            FormAbout.TopMost = true;
            //FormAbout.AutoSize = true;
            FormAbout.Size = new Size(350,120);
            
            //FormAbout.Size.Height = 120//wrong
            FormAbout.Text = "ColorDraw Infomation";
            FormAbout.Location = new Point(this.Location.X + 20, this.Location.Y + 20);
           
            FormAbout.Show();
            
        }
运行后的图片:

不知该如何设置,才能让FormAbout窗口正常出现,而不是躲在主窗口的背景上。
如果需要知道主窗口的属性,请留言,我再截图。
谢谢
Form 窗口

------解决方案--------------------
新建的子窗口总在主窗口的控件之下

没明白你的意思   你想要不在主窗口控件之下

你又FormAbout.MdiParent = this ;
让它是他的子窗体   是子窗体当然是在他的里面咯
------解决方案--------------------
使用FormAbout.Parent = this;才能让其处于外面而不是里面,MdiParent 是限制必须是躲在主窗口的背景上,因此TopMost = true;无效。