我在C#中使用MDI表单来显示多窗口。当我使用MdiLayout.TileVertical来改变我的子窗口的布局时,我无法得到正确的结果。子窗口没有垂直显示。
我想要结果:
1
2
3
4
我得到了什么:
3 1
4 2
我的代码来源:
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void menuItemNew_Click(object sender, System.EventArgs e)
{
oFileDlg.CheckFileExists=true;
oFileDlg.CheckPathExists=true;
oFileDlg.Title="Open File - MDI Sample";
oFileDlg.ValidateNames=true;
oFileDlg.Filter = "jpg files (*.jpg)|*.jpg";
if (oFileDlg.ShowDialog() == DialogResult.OK)
{
try
{
//Create a new instance of the MDI child template form
Form2 chForm = new Form2();
//set parent form for the child window
chForm.MdiParent=this;
//increment the child form count
count ++;
//set the title of the child window.
chForm.Text= "Child - " + count.ToString();
chForm.fileloc=oFileDlg.FileName;
chForm.FormBorderStyle = FormBorderStyle.Sizable;
//display the child window
chForm.Show();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString(), "MDI Sample", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void menuItemClose_Click(object sender, System.EventArgs e)
{
//Gets the currently active MDI child window.
//Form a = this.ActiveMdiChild;
//Close the MDI child window
//a.Close();
this.Close();
}
private void menuItemAI_Click(object sender, System.EventArgs e)
{
//Arrange MDI child icons within the client region of the MDI parent form.
this.LayoutMdi(System.Windows.Forms.MdiLayout.ArrangeIcons);
}
private void menuItemCas_Click(object sender, System.EventArgs e)
{
//Cascade all child forms.
this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade);
}
private void menuItemHoriz_Click(object sender, System.EventArgs e)
{
//Tile all child forms horizontally.
this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal);
}
private void menuItemVert_Click(object sender, System.EventArgs e)
{
//Tile all child forms vertically.
//CheckWindows();
this.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical);
}
private void menuItemMax_Click(object sender, System.EventArgs e)
{
//Gets forms that represent the MDI child forms
//that are parented to this form in an array
Form [] charr= this.MdiChildren;
//for each child form set the window state to Maximized
foreach (Form chform in charr)
chform.WindowState=FormWindowState.Maximized;
}
private void menuItemMin_Click(object sender, System.EventArgs e)
{
//Gets forms that represent the MDI child forms
//that are parented to this form in an array
Form [] charr= this.MdiChildren;
//for each child form set the window state to Minimized
foreach (Form chform in charr)
chform.WindowState=FormWindowState.Minimized;
}
private void menuItem1_Click(object sender, System.EventArgs e)
{
//Gets forms that represent the MDI child forms
//that are parented to this form in an array
Form [] charr= this.MdiChildren;
//for each child form set the window state to Minimized
foreach (Form chform in charr)
chform.Close();
}
对这个问题有什么想法吗?
答案 0 :(得分:1)
您可以尝试在子窗体上停靠,然后选择所需的输出。
例如:chForm.Dock = DockStyle.Left;