Teach Yourself Visual Studio® .NET 2003 in 21 Days [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Teach Yourself Visual Studio® .NET 2003 in 21 Days [Electronic resources] - نسخه متنی

Jason Beres

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید









Working with Controls Dynamically in Code


Each control in the Toolbox is a member of the Control class in the System.Windows.Forms namespace. Because each control in the Toolbox is a class, similar to a Window Forms class, you can dynamically create controls in code at runtime. Earlier you looked at the InitializeComponent method, which created the controls on the form. You can do the same type of dynamic code creation when writing applications. Doing so gives you flexibility in the user interface and enables you to create complete forms based on user settings that might be stored in a database or configuration file.

To find out how to create controls dynamically at runtime, add the code in Listing 3.4 to the Form_Load event of firstForm.

Listing 3.4 Creating Controls Dynamically at Runtime



Private Sub firstForm_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Declare new instances of the RadioButton control class
Dim Rd1 As RadioButton = New RadioButton()
Dim Rd2 As RadioButton = New RadioButton()
Dim Rd3 As RadioButton = New RadioButton()
' Position the controls
Rd1.Location = New System.Drawing.Point(15, 90)
Rd2.Location = New System.Drawing.Point(15, 120)
Rd3.Location = New System.Drawing.Point(15, 150)

' Assign a text value for these controls
Rd1.Text = "Red"
Rd2.Text = "White"
Rd3.Text = "Blue"
' Add to the forms controls collection
Me.Controls.AddRange(New Control() {Rd1, Rd2, Rd3})
' Add event handlers for the controls
AddHandler Rd1.Click, AddressOf GenericClick
AddHandler Rd2.Click, AddressOf GenericClick
AddHandler Rd3.Click, AddressOf GenericClick
End Sub
Public Sub GenericClick(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
Select Case sender.text
Case "Red"
Me.BackColor = Color.Red
Case "White"
Me.BackColor = Color.White
Case "Blue"
Me.BackColor = Color.Blue
End Select
End Sub



private void firstForm_Load(object sender, System.EventArgs e)
{
// Declare new instances of the RadioButton control class
RadioButton rd1 = new RadioButton();
RadioButton rd2 = new RadioButton();
RadioButton rd3 = new RadioButton();
// Position the controls
rd1.Location = new System.Drawing.Point(15, 90);
rd2.Location = new System.Drawing.Point(15, 120);
rd2.Location = new System.Drawing.Point(15, 150);
// Assign a text value for these controls
rd1.Text = "Red";
rd2.Text = "White";
rd3.Text = "Blue";
// Add to the forms controls collection
this.Controls.AddRange(new Control[] {rd1, rd2, rd3});
// Add the generic event handler
rd1.Click += new System.EventHandler(genericClick);
rd2.Click += new System.EventHandler(genericClick);
rd3.Click += new System.EventHandler(genericClick);
}
private void genericClick(object sender, System.EventArgs e)
{
RadioButton rdb;
rdb = (RadioButton)sender;
this.BackColor = Color.FromName(rdb.Text);
}

After the code is in, press F5 to run the application. You'll see that the three RadioButton controls appear on your form. Just like any other object, declaring a new instance of a control gives you the properties, methods, and events for that control. In Visual Basic 6, you could dynamically create controls with the New keyword, and then set the Right, Left, and Top properties to position them, but you needed to set the Visible property to True for them to show up on the form. In .NET, you set the X and Y screen coordinates of the newly created controls, and then add the controls to the form's Controls collection with the AddRange method.

The Day 8, "Core Language Concepts in Visual Basic .NET and C#," you learn about the language features of both Visual Basic .NET and C#, and you'll see the advantages of the Code Editor in more detail when you're using all the language features.


/ 270