File Form1.cs chứa mã cho form của bạn. Mã này thường được tham chiếu đến như mã bên dưới form của bạn, bởi vì bạn có thể hiểu nó như một thứ bên dưới sự thiết kế trực quan cho form. Bạn có thể xem mã form của bạn bởi chọn View Code, hay bởi nhấn khóa F7 trên bàn phím . Danh sách 6.1 cho thấy nội dung của file Form1.cs. Danh sách 6.1: Form1.cs using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace MyWindowsApplication { /// <summary>
/// Summary description for Form1. /// </summary>
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.Label myLabel; private System.Windows.Forms.Button myButton; /// <summary>
/// Required designer variable. /// </summary>
private System.ComponentModel.Container components = null; public Form1()
{ //
// Required for Windows Form Designer support //
InitializeComponent(); //
// TODO: Add any constructor code after InitializeComponent call //
}
/// <summary>
/// Clean up any resources being used. /// </summary>
protected override void Dispose(bool disposing) { if(disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); }
#region Windows Form Designer generated code /// <summary>
/// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary>
private void InitializeComponent() {
this.myLabel = new System.Windows.Forms.Label(); this.myButton = new System.Windows.Forms.Button(); this.SuspendLayout();
//
// myLabel //
this.myLabel.Location = new System.Drawing.Point(8, 8); this.myLabel.Name = "myLabel";
this.myLabel.Size = new System.Drawing.Size(288, 184); this.myLabel.TabIndex = 0;
this.myLabel.Text = "label1"; //
// myButton //
this.myButton.Name = "myButton";
this.myButton.Size = new System.Drawing.Size(72, 24); this.myButton.TabIndex = 1;
this.myButton.Text = "Press Me!";
this.myButton.Click += new System.EventHandler(this.myButton_Click); //
// Form1 //
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(304, 237);
this.Controls.AddRange(new System.Windows.Forms.Control[] { this.myButton,
this.myLabel}); this.Name = "Form1"; this.Text = "My Form"; this.ResumeLayout(false); }
#endregion /// <summary>
/// The main entry point for the application. /// </summary>
[STAThread] static void Main() {
Application.Run(new Form1()); }
private void myButton_Click(object sender, System.EventArgs e) {
myLabel.Text =
"Is this a dagger which I see before me,\n" +
"The handle toward my hand? Come, let me clutch thee.\n" + "I have thee not, and yet I see thee still.\n" +
"Art thou not, fatal vision, sensible\n" + "To feeling as to sight? or art thou but\n" + "A dagger of the mind, a false creation,\n" + "Proceeding from the heat-oppressed brain?"; }
} }
Như bạn có thể thấy, lớp Form1 được bắt nguồn từ lớp System.Windows.Forms.Form . Lớp Form đại diện cho một form Windows.
Ghi chú:
Không gian tên System.Windows.Forms chứa nhiều lớp khác nhau để tạo ra những ứng dụng Windows. Hầu hết những lớp trong namespace này được bắt nguồn từ lớp System.Windows.Forms.Control; lớp này cung cấp chức năng cơ bản cho những điều khiển bạn có thểđặt trên một form.
Lớp Form1 khai báo hai đối tượng riêng (Private) có tên myLabel và myButton, chúng là những điều khiển nhãn và nút bạn thêm vào form của bạn trước đó. Vì đối tượng myLabel và myButton là riêng (Private), Đây có nghĩa là chúng chỉ có thể tiếp cận trong lớp Form1.
Access modifiers (những từ bổ nghĩa truy cập) cho phép bạn chỉ rõ mức độ mà với mức đó một thành viên của lớp có thể truy cập từ bên ngoài lớp. Bạn cũng có thể sử dụng một Access modifiers để chỉ rõ mức độ mà với mức đó chính lớp này có thể dược truy cập.
Bảng 6.1 cho thấy rằng những từ bổ nghĩa truy cập trong trật tự giảm dần tính khả truy cập: Public có tính khả
truy cập nhất, và Private có tính khả truy cập kém nhất.
Bảng 6.1: những từ bổ nghĩa truy cập
ACCESS MODIFIER (từ bổ nghĩa truy cập) (từ bổ nghĩa truy cập)
ACCESSIBILITY (khả năng truy cập) (khả năng truy cập)
public Thành viên có thể truy cập lớp này không hạn chế.
protected internal Chỉ những thành viên bên trong lớp, thành viên một lớp dẫn xuất hay lớp trong cùng chương trình (hay assembly) có thể truy cập lớp này.
internal Chỉ những thành viên bên trong lớp hay thành viên của lớp trong cùng chương trình (hay assembly) có thể truy cập.
protected Chỉ những thành viên bên trong lớp hay thành viên trong những lớp được dẫn xuất có thể truy cập .
private Chỉ thành viên bên trong lớp có thể tiếp cận. Đây là mặc định.
Bộ khởi dựng của lớp Form1 gọi phương thức InitializeComponent() . Phương thức này thêm myLabel và myButton vào form và gán những thuộc tính cho những đối tượng này. Những thuộc tính này bao gồm sựđịnh vị (Vị trí trên form) Name, Size, TabIndex (thứ tựđiều khiển được truy cập khi nhấn phím Tab), và Text. Chẳng hạn, mã sau đây gán những thuộc tính cho myLabel:
this.myLabel.Location = new System.Drawing.Point(8, 8); this.myLabel.Name = "myLabel";
this.myLabel.Size = new System.Drawing.Size(288, 184); this.myLabel.TabIndex = 0;
this.myLabel.Text = "label1";
Bạn chú ý rằng phương thức InitializeComponent() được bao trong những từ chỉ thị bộ tiền xử lý #region và #endregion . Những chỉ thị này bao lấy một vùng mã và có thểẩn trong cửa sổ biên tập mã của VS .NET , chỉ để lại văn bản #region lập tức hiển thị . Hình 6.5 cho thấy mã được ẩn xuất hiện như thế nào trong VS .NET.
Để xem mã đang ẩn, bạn chỉ cần kích biểu tượng dấu cộng ở bên trái của mã. Hình 6.6 cho thấy mã bên trong những từ chỉ thị #region và #endregion .
Hình 6.6: việc xem mã được ẩn trong VS .NET
Phương thức Main() chạy form bởi gọi phương thức Application.Run() . Lớp Application là Static ( tĩnh) và cung cấp một số phương thức mà bạn có thể sử dụng trong chương trình Windows của bạn. Vì lớp này là Static, bạn không cần phải tạo ra một thể hiện (instance) của lớp này, và những thành viên của nó luôn luôn sẵn sàng bên trong form của bạn. Khi phương thức Run() được gọi , form của bạn đã sẵn sàng đợi những sự kiện từ con chuột và bàn phím. Một ví dụ về một sự kiện kích của nút trong form của bạn.
Phương thức myButton_Click() là phương thức mà bạn biên soạn trước nó gán thuộc tính Text của myLabel tới một chuỗi chứa lời trích dẫn từ vở kịch Macbeth. Khi myButton được kích, phương thức myButton_Click()
được gọi và văn bản trong myLabel được thay đổi; bạn đã thấy điều này khi bạn chạy form của bạn trước đó.
Trong mục kế tiếp, bạn sẽ học về VS .NET Solution Explorer (bộ duyệt giải pháp VS .NET).