Csharp/C Sharp by API/System.Windows.Forms/Splitter — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
Splitter.Dock
<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;
class SplitTwoProportional: Form {
Panel panel2; float fProportion = 0.5f; public static void Main() { Application.Run(new SplitTwoProportional()); } public SplitTwoProportional() { Text = ""; Panel panel1 = new Panel(); panel1.Parent = this; panel1.Dock = DockStyle.Fill; panel1.BackColor = Color.Red; panel1.Resize += new EventHandler(PanelOnResize); panel1.Paint += new PaintEventHandler(PanelOnPaint); Splitter split = new Splitter(); split.Parent = this; split.Dock = DockStyle.Left; split.SplitterMoving += new SplitterEventHandler(SplitterOnMoving); panel2 = new Panel(); panel2.Parent = this; panel2.Dock = DockStyle.Left; panel2.BackColor = Color.Lime; panel2.Resize += new EventHandler(PanelOnResize); panel2.Paint += new PaintEventHandler(PanelOnPaint); OnResize(EventArgs.Empty); } protected override void OnResize(EventArgs ea) { base.OnResize(ea); panel2.Width = (int) (fProportion * ClientSize.Width); } void SplitterOnMoving(object obj, SplitterEventArgs sea) { fProportion = (float) sea.SplitX / ClientSize.Width; } void PanelOnResize(object obj, EventArgs ea) { ((Panel) obj).Invalidate(); } void PanelOnPaint(object obj, PaintEventArgs pea) { Panel panel = (Panel) obj; Graphics grfx = pea.Graphics; grfx.DrawEllipse(Pens.Black, 0, 0, panel.Width - 1, panel.Height - 1); }
}
</source>
Splitter.SplitterMoving
<source lang="csharp">
using System; using System.Drawing; using System.Windows.Forms;
class SplitTwoProportional: Form {
Panel panel2; float fProportion = 0.5f; public static void Main() { Application.Run(new SplitTwoProportional()); } public SplitTwoProportional() { Text = ""; Panel panel1 = new Panel(); panel1.Parent = this; panel1.Dock = DockStyle.Fill; panel1.BackColor = Color.Red; panel1.Resize += new EventHandler(PanelOnResize); panel1.Paint += new PaintEventHandler(PanelOnPaint); Splitter split = new Splitter(); split.Parent = this; split.Dock = DockStyle.Left; split.SplitterMoving += new SplitterEventHandler(SplitterOnMoving); panel2 = new Panel(); panel2.Parent = this; panel2.Dock = DockStyle.Left; panel2.BackColor = Color.Lime; panel2.Resize += new EventHandler(PanelOnResize); panel2.Paint += new PaintEventHandler(PanelOnPaint); OnResize(EventArgs.Empty); } protected override void OnResize(EventArgs ea) { base.OnResize(ea); panel2.Width = (int) (fProportion * ClientSize.Width); } void SplitterOnMoving(object obj, SplitterEventArgs sea) { fProportion = (float) sea.SplitX / ClientSize.Width; } void PanelOnResize(object obj, EventArgs ea) { ((Panel) obj).Invalidate(); } void PanelOnPaint(object obj, PaintEventArgs pea) { Panel panel = (Panel) obj; Graphics grfx = pea.Graphics; grfx.DrawEllipse(Pens.Black, 0, 0, panel.Width - 1, panel.Height - 1); }
}
</source>