在 MDI 上排列最小化 child windows
Arranging minimised child windows on MDI
我有一个包含多个 child windows 的 MDI 程序。有什么方法可以影响或修改 LayoutMdi( MdiLayout.ArrangeIcons)
在表格中排列最小化 child windows 的方式,或者有什么方法可以改变 and/or 的位置大小最小化 child windows(例如,我可以使用 SetBounds
更改未最小化 child windows 的位置和大小的相同方式)
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
public FormA() {
Button btn = new Button { Text = "asdf" };
Controls.Add(btn);
IsMdiContainer = true;
var f1 = new Form { Text = "Form1", TopLevel = false, MdiParent = this};
var f2 = new Form { Text = "Form2", TopLevel = false, MdiParent = this};
var f3 = new Form { Text = "Form3", TopLevel = false, MdiParent = this};
f1.Show();
f2.Show();
f3.Show();
btn.Click += delegate {
//this.LayoutMdi(MdiLayout.ArrangeIcons);
//f1.Bounds = new Rectangle(50, 50, 100, 30);
int top = 100;
SetWindowPos(f1.Handle, IntPtr.Zero, f1.Left, top, f1.Width, f1.Height, 0);
};
}
我有一个包含多个 child windows 的 MDI 程序。有什么方法可以影响或修改 LayoutMdi( MdiLayout.ArrangeIcons)
在表格中排列最小化 child windows 的方式,或者有什么方法可以改变 and/or 的位置大小最小化 child windows(例如,我可以使用 SetBounds
更改未最小化 child windows 的位置和大小的相同方式)
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
public FormA() {
Button btn = new Button { Text = "asdf" };
Controls.Add(btn);
IsMdiContainer = true;
var f1 = new Form { Text = "Form1", TopLevel = false, MdiParent = this};
var f2 = new Form { Text = "Form2", TopLevel = false, MdiParent = this};
var f3 = new Form { Text = "Form3", TopLevel = false, MdiParent = this};
f1.Show();
f2.Show();
f3.Show();
btn.Click += delegate {
//this.LayoutMdi(MdiLayout.ArrangeIcons);
//f1.Bounds = new Rectangle(50, 50, 100, 30);
int top = 100;
SetWindowPos(f1.Handle, IntPtr.Zero, f1.Left, top, f1.Width, f1.Height, 0);
};
}