Csharp/C Sharp by API/System.Windows.Forms/Control
Содержание
Control.GetType
<source lang="csharp">
using System; using System.Drawing; using System.Windows.Forms;
class CustomCheckBox: Form {
public static void Main() { Application.Run(new CustomCheckBox()); } public CustomCheckBox() { int cyText = Font.Height; int cxText = cyText / 2; FontStyle[] afs = { FontStyle.Bold, FontStyle.Italic, FontStyle.Underline, FontStyle.Strikeout }; Label label = new Label(); label.Parent = this; label.Text = "Sample Text"; for (int i = 0; i < 4; i++) { FontStyleCheckBox chkbox = new FontStyleCheckBox(); chkbox.Parent = this; chkbox.Text = afs[i].ToString(); chkbox.fontstyle = afs[i]; chkbox.Location = new Point(2 * cxText, (4 + 3 * i) * cyText / 2); chkbox.Size = new Size(12 * cxText, cyText); chkbox.CheckedChanged += new EventHandler(CheckBoxOnCheckedChanged); } } void CheckBoxOnCheckedChanged(object obj, EventArgs ea) { FontStyle fs = 0; Label label = null; for (int i = 0; i < Controls.Count; i++) { Control ctrl = Controls[i]; if (ctrl.GetType() == typeof(Label)) label = (Label) ctrl; else if (ctrl.GetType() == typeof(FontStyleCheckBox)) if (((FontStyleCheckBox) ctrl).Checked) fs |= ((FontStyleCheckBox) ctrl).fontstyle; } label.Font = new Font(label.Font, fs); }
} class FontStyleCheckBox: CheckBox {
public FontStyle fontstyle;
}
</source>
Control.HasChildren
<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; public class ControlParent : Form {
private Button btn; public ControlParent() { btn = new Button(); btn.Location = new Point(50,50); btn.Size = new Size(100,23); btn.Text = "Relationships"; //Controls.Add(btn); btn.Parent = this; MessageBox.Show("Button Parent: " + btn.Parent.ToString() + "\n" + "Button HasChildren: " + btn.HasChildren.ToString() + "\n" + "TopLevelControl: " + btn.TopLevelControl.ToString() + "\n" + "Form HasChildren: " + this.HasChildren.ToString() + "\n" + "Form Controls Count: " + this.Controls.Count.ToString(), "Button Relationships"); } static void Main() { Application.Run(new ControlParent()); }
}
</source>
Control.Name
<source lang="csharp">
using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {
Label Label1; TextBox TextBox1; Button Button1; public Form1() { InitializeComponent(); } private void ctrlClick(System.Object sender, EventArgs e) { Control ctrl = (Control)sender; MessageBox.Show("You clicked: " + ctrl.Name); } private void InitializeComponent() { this.Label1 = new System.Windows.Forms.Label(); this.TextBox1 = new System.Windows.Forms.TextBox(); this.Button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // Label1 // this.Label1.FlatStyle = System.Windows.Forms.FlatStyle.System; this.Label1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Label1.Location = new System.Drawing.Point(14, 97); this.Label1.Name = "Label1"; this.Label1.Size = new System.Drawing.Size(112, 24); this.Label1.TabIndex = 8; this.Label1.Text = "Label1"; this.Label1.Click += new System.EventHandler(this.ctrlClick); // // TextBox1 // this.TextBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.TextBox1.Location = new System.Drawing.Point(12, 61); this.TextBox1.Name = "TextBox1"; this.TextBox1.Size = new System.Drawing.Size(156, 21); this.TextBox1.TabIndex = 7; this.TextBox1.Text = "TextBox1"; this.TextBox1.Click += new System.EventHandler(this.ctrlClick); // // Button1 // this.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System; this.Button1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Button1.Location = new System.Drawing.Point(12, 21); this.Button1.Name = "Button1"; this.Button1.Size = new System.Drawing.Size(96, 28); this.Button1.TabIndex = 6; this.Button1.Text = "Button1"; this.Button1.Click += new System.EventHandler(this.ctrlClick); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(367, 281); this.Controls.Add(this.Label1); this.Controls.Add(this.TextBox1); this.Controls.Add(this.Button1); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "Form1"; this.Text = "Control Medley"; this.ResumeLayout(false); this.PerformLayout(); }
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
}
</source>
Control.Parent
<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; public class ControlParent : Form {
private Button btn; public ControlParent() { btn = new Button(); btn.Location = new Point(50,50); btn.Size = new Size(100,23); btn.Text = "Relationships"; //Controls.Add(btn); btn.Parent = this; MessageBox.Show("Button Parent: " + btn.Parent.ToString() + "\n" + "Button HasChildren: " + btn.HasChildren.ToString() + "\n" + "TopLevelControl: " + btn.TopLevelControl.ToString() + "\n" + "Form HasChildren: " + this.HasChildren.ToString() + "\n" + "Form Controls Count: " + this.Controls.Count.ToString(), "Button Relationships"); } static void Main() { Application.Run(new ControlParent()); }
}
</source>
Control.TopLevelControl
<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; public class ControlParent : Form {
private Button btn; public ControlParent() { btn = new Button(); btn.Location = new Point(50,50); btn.Size = new Size(100,23); btn.Text = "Relationships"; //Controls.Add(btn); btn.Parent = this; MessageBox.Show("Button Parent: " + btn.Parent.ToString() + "\n" + "Button HasChildren: " + btn.HasChildren.ToString() + "\n" + "TopLevelControl: " + btn.TopLevelControl.ToString() + "\n" + "Form HasChildren: " + this.HasChildren.ToString() + "\n" + "Form Controls Count: " + this.Controls.Count.ToString(), "Button Relationships"); } static void Main() { Application.Run(new ControlParent()); }
}
</source>