Mã lệnh bắt đầu ở đâu

Một phần của tài liệu Lập trình với Microsoft Visual Studio pptx (Trang 36 - 44)

Cửa sổ thuộc tính dễ sử dụng, nhưng không linh hoạt. Làm thế nào nếu người dùng muốn thay đổi màu nền của form khi họ đang sử dụng chương trình? Làm thế nào nếu họ cần thay đổi cỡ và kiểu của phông chữ? Làm thế nào mà chương trình của bạn biết nếu người dùng đánh dấu vào hộp đánh dấu hoặc nhấn vào một nút lựa chọn? Vì người dùng sẽ không thể truy cập cửa sổ thuộc tính khi chương trình chạy được, thế thì họ có thể làm như thế nào?

Câu trả lời là: sử dụng mã lệnh Visual Basic.NET! Bạn có thể làm tất cả những việc này, và nhiều hơn thế nữa bằng cách sử dụng mã lệnh. Bạn viết mã lệnh để đọc thuộc tính của điều khiển. Bạn viết mã lệnh để thiết lập giá trị cho các thuộc tính của chúng. Điều này rất đơn giản và rất hiệu quả.

Mã lệnh được đặt ở đâu? Bạn có thể viết mã lệnh trong trang mã lệnh của form. Trong hầu hết các trường hợp bạn sẽ đặt các mã lệnh vào trong các thủ tục xử lý sự kiện (event handlers) của điều khiển. Ví dụ sự kiện nhấn nút: Khi người dùng thực hiện một hành động, chẳng hạn như nhấn vào nút, mã lệnh mà bạn viết cho thủ tục xử lý sự kiện được

thực hiện và thuộc tính của điều khiển được đọc hoặc đặt lại giá trị. Khi bạn thêm mã lệnh vào sự kiện của điều khiển là bạn đang biến form thành một chương trình làm việc thực sự.

2. Đọc thuc tính bng mã lnh

Tạo một ứng dụng Window và đặt tên là DocThuoctinh. Mở hộp công cụ và thêm một nút lệnh vào Form1. Mở cửa sổ thuộc tính và thay đổi thuộc tính Text (văn bản) của Button1 thành "Đọc văn bản". Nhấp đúp vào nút Button1 để viết mã lệnh cho sự kiện nhấn nút Button1. Gõ vào dòng lệnh sau:

MessageBox.Show(Button1.Text)

Dịch và chạy chương trình. Nhấn nút "Đọc văn bản". Một hộp thông báo được mở và hiển thị nội dung “Đọc văn bản” đó là thuộc tính Text của nút lệnh Button1. Kiểm tra: mã lệnh đọc thuộc tính Text của nút lệnh Button1 và sau đó hiển thị giá trị của nó bằng cách sử dụng một thông báo.

Đây là một ví dụ khác. Thêm nút khác vào Form1. Sử dụng cửa sổ thuộc tính để thay đổi thuộc tính Text của nút lệnh Button2 thành "Kích thước Form". Nhấp đúp vào nút Button2 để mở cửa sổ soạn thảo mã lệnh cho sự kiện nhấn nút. Gõ dòng mã lệnh sau đây vào thủ tục xử lý sự kiện nhấn nút lệnh Button2.

MessageBox.Show(Form1.ActiveForm.Height & "," & Form1.ActiveForm.Width)

Dịch và chạy chương trình. Nhấn vào nút lệnh "Kích thước Form". Một hộp thông báo hiển thị: 300,300 (đó là kích thước của form, giả sử bạn cứ giữ nguyên kích thước form như kích thước ban đầu của nó). Mã lệnh của bạn chỉ mới hiển thị thông báo chiều cao và chiều rộng của Form1 được phân biệt bởi dấu phẩy.

Mã lệnh Visual Basic.NET có thể đọc tất cả các thuộc tính của form hoặc điều khiển form - những thuộc tính được liệt kê trong cửa sổ thuộc tính. Mã lệnh của bạn có thể đọc các thuộc tính như Height (chiều cao) và Width (chiều rộng), BackColor (màu nền), ForeColor (màu chữ), và tọa độ X, tọa độ Y. Tuy nhiên, rất nhiều thuộc tính trong cửa sổ thuộc tính được cài đặt khi thiết kế form và chúng không thay đổi được khi chương trình chạy.

Việc đọc các thuộc tính của form và điều khiển (như thuộc tính văn bản của hộp văn bản, thuộc tính kiểm tra của Ô đánh dấu…) mà người dùng thay đổi khi họ sử dụng chương trình thực sự mang lại lợi ích gì. Đây chính là cách chương trình thu thập thông tin từ người dùng. Biển số xe mà Jen đã nhập vào là gì? Lốp nào là lốp hết hơi? Cliff đã chọn cỡ lốp nào?

Đây là ví dụ có tính thực hành hơn. Hãy viết mã lệnh chỉ ra rằng Ô đánh dấu đã được đánh dấu hay chưa. Mở cửa sổ hộp công cụ và thêm Ô đánh dấu vào Form1. Thêm Nút lệnh vào Form1. Mở cửa sổ thuộc tính và thay đổi thuộc tính Text của Nút lệnh thành “Check Me” (đánh dấu tôi). Nhấp đúp vào Nút lệnh để soạn thảo sự kiện nhấn chuột. Gõ dòng lệnh sau đây vào sự kiện nhấn chuột:

MessageBox.Show(CheckBox1.Checked)

Dịch và chạy chương trình. Nhấn vào nút “Check Me”. Hộp thông báo hiển thị cái gì? đánh dấu vào Ô kiểm tra và lại nhấn nút “Click Me” . Bây giờ thì hộp thông báo hiển thị cái gì? mỗi lần bạn nhấn vào nút lệnh hộp thông báo hiển thị trạng thái hiện tại của thuộc tính Check (đánh dấu) của Ô kiểm tra. Nó sẽ thông báo True (Ô đánh dấu đã được đánh dấu).

Một ví dụ khác: Đọc và hiển thị các từ mà người dùng nhập vào hộp văn bản.

Thêm hộp văn bản vào Form1. Mở cửa sổ thuộc tính và chắc chắn rằng thuộc tính ReadOnly của nó được đặt là False. Đặt thuộc tính Text của hộp văn bản là “Gõ vào đây” . Thêm một nút lệnh vào Form1. Thay đổi thuộc tính Text của nó thành “Đọc văn bản”. Nhấn Nút lệnh để soạn thảo mã lệnh cho sự kiện nhấn chuột. Gõ dòng mã lệnh sau vào sự kiện nhấn chuột:

MessageBox.Show(TextBox1.Text)

Dịch và chạy chương trình. Nhấp đúp vào TextBox1 và nhấn phím Backspace để xoá văn bản. Nhập văn bản vào TextBox1. Nhấn vào nút "Đọc văn bản”. Hộp thông báo hiển thị cái gì? thay đổi văn bản trong TextBox1 và lại nhấn Nút "Đọc văn bản". Điều gì xảy ra?

3. Gán thuc tính bng mã lnh

Một câu hỏi đặt ra là: Làm thế nào, nếu tôi muốn đặt thuộc tính của điều khiển khi người dùng đang chạy chương trình?

Ví dụ, Tôi muốn ô đánh dấu "Rush Job" (công việc gấp) luôn luôn được đánh dấu tại thời điểm ban đầu khi người dùng chạy chương trình. Tôi muốn chương trình hiển thị tất cả các cỡ lốp hiện có, ở trong hộp văn bản khi người dùng nhấn chuột vào nút "Get Tires" (Lấy lốp). Tôi muốn danh sách cỡ lốp hiện có được tự động nạp vào hộp danh sách đổ xuống ngay sau khi người dùng nhập vào biển số xe ô tô.

Để đặt thuộc tính của điều khiển bằng Visual Basic .NET chúng ta sử dụng lệnh gán. Lệnh gán đã được bàn đến ở bài Giả mã lệnh. Lệnh gán thực hiện việc gán cái này cho cái khác. Mã lệnh của lệnh gán trông như một biểu thức đơn giản cùng với một dấu bằng đi cùng nó.

TextBox1.Text = "Các Quy tắc Viết mã lệnh"

Biểu thức ở phía bên phải của dấu bằng được tính trước. Sau đó gán kết quả này cho biểu thức ở bên trái của dấu bằng.

Dưới đây là một số ví dụ về cách sử dụng mã lệnh Visual Basic.NET để gán giá trị cho thuộc tính. Ví dụ đầu tiên gán giá trị cho thuộc tính văn bản của hộp văn bản. Đây là một cách tuyệt vời để hiển thị thông tin tới người dùng – nó được sử dụng thay vì luôn luôn xổ ra một hộp thông báo.

Bắt đầu một ứng dụng Window mới và đặt tên nó là SetProperties (đặt thuộc tính). Thêm hai hộp văn bản và một nút lệnh vào Form1. Sử dụng cửa sổ thuộc tính để đặt thuộc tính Text (văn bản) của Button1 thành "Set Text" (cài đặt thuộc tính văn bản). Xoá nội dung văn bản của thuộc tính Text của cả TextBox1 và TextBox2 bằng cách nhấp đúp vào thuộc tính Text của chúng và nhấn phím backspace. Nhấp đúp vào Button1 để soạn thảo mã lệnh cho sự kiện nhấn chuột, và thêm dòng mã lệnh sau vào thủ tục xử lý sự kiện:

TextBox2.Text = TextBox1.Text

Dịch và chạy chương trình. Nhập văn bản vào TextBox1 và nhấn nút "Set Text". Điều gì xảy ra? Như bạn có thể thấy văn bản ở trong TextBox1 được “chép” sang TextBox2. Thuộc tính Text của TextBox2 được gán giá trị của thuộc tính Text của TextBox1. Mã lệnh Visual Basic.NET đọc thuộc tính Text của TextBox1 và sau đó dùng giá trị này gán cho thuộc tính Text của TextBox2.

Hãy thêm mã lệnh sao cho ở thời điểm đầu tiên khi chạy chương trình Ô đánh dấu tự động thứ nhất được đánh dấu và Ô đánh dấu thứ hai thì không bị đánh dấu. Thêm điều khiển Ô đánh dấu vào Form1 và sử dụng cửa sổ thuộc tính để đặt thuộc tính Text của nó là "Rush Job" (công việc gấp). Thêm một Ô đánh dấu vào Form1 và sử dụng cửa sổ thuộc tính để đặt thuộc tính Text của nó là "Whenever" (bất cứ khi nào). Nhấp đúp vào Form1 (không nhấp đúp phải là vào CheckBox1hoặc CheckBox2). Điều này sẽ mở cửa sổ soạn thảo mã lệnh cho sự kiện Form1_Load (sự kiện nạp form) của Form1. Mã lệnh được viết trong thủ tục xử lý sự

kiện nạp Form được thi hành tại lần đầu tiên khi form được tạo ra và hiển thị, trước bất cứ mã lệnh chương trình nào khác được thực hiện. Thêm vào hai dòng lệnh sau:

CheckBox1.Checked = True CheckBox2.Checked = False

Dịch và chạy chương trình. Ô đánh dấu nào được đánh dấu? mã lệnh của bạn tự động cài đặt thuộc tính Checked (đánh dấu) cho hai ô đánh dấu khi nạp form.

Hãy sử dụng mã lệnh để tự động chọn 14 trong danh sách cỡ lốp của hộp danh sách đổ xuống. Trước tiên, thêm một hộp danh sách đổ xuống vào Form1. Sử dụng cửa sổ thuộc tính để cài đặt các mục trong danh sách của nó là 12,13,14,15, 16. Nhấn phím Enter để tạo dòng mới cho từng mục trong danh sách. Nhấp đúp vào Form1 (không phải là vào ComboBox1) để soạn thảo mã lệnh cho sự kiện nạp Form. Thêm dòng mã lệnh sau:

ComboBox1.SelectedItem = "14"

4. IntelliSense và du chm

IntelliSense hay còn gọi là cơ chế nhận biết thông minh. Nó là một bộ phận của Visual Studio. Nó giúp bạn tiết kiệm rất nhiều thời gian trong việc viết mã lệnh. Nó biết bạn đang làm việc với điều khiển nào và các thuộc tính của điều khiển đó. Nó hiển thị danh sách thuộc tính và cho phép bạn chọn thuộc tính mà bạn muốn sử dụng. Thuộc tính được sử dụng phổ biến nhất sẽ được làm sáng lên khi được hiển thị trong danh sách.

Ví dụ, thuộc tính Text của hộp văn bản được sáng lên đầu tiên. Sử dụng mũi tên lên và xuống để tìm thuộc tính mà bạn cần. Khi bạn nhấn phím Tab, nó thêm thuộc tính vào mã lệnh của bạn. Với IntelliSense bạn không cần phải nhớ tất cả các thuộc tính của tất cả các điều khiển. Nó giúp bạn tránh được việc phải gõ rất nhiều mã lệnh.

Tạo một ứng dụng Window đặt tên là IntelliSense. Thêm một hộp văn bản và một nút lệnh vào Form1. Nhấp đúp vào nút lệnh để soạn thảo mã lệnh cho sự kiện nhấp chuột của nút lệnh Button1.

1. Gõ TextBox1 và nhấn phím có dấu chấm (.) (đừng quên dấu chấm). Ngay khi bạn gõ dấu chấm, IntelliSense sẽ hiển thị danh sách thuộc tính của TextBox1. Vì TextBox1 là hộp văn bản, danh sách

này giống như danh sách của hộp văn bản bất kỳ mà bạn thêm vào form. Mặc định thuộc tính được chọn trong danh sách của IntelliSense là thuộc tính được sử dụng phổ biến nhất. Trong trường hợp này thuộc tính Text được lựa chọn mặc định.

2. Bây giờ gõ vào chữ "R". IntelliSense chuyển đến thuộc tính đầu tiên trong nhóm thuộc tính bắt đầu bởi chữ “R” của danh sách. Khi bạn gõ chữ, IntelliSense tìm thuộc tính đối sánh sát nhất với những chữ bạn

đã gõ vào.

3. Sử dụng mũi tên xuống di chuyển dọc theo danh sách và định vị lại thuộc tính Text. Chọn thuộc tính Text.

4. Nhấn phím Tab . Nhìn xem điều gì xảy ra! từ Text được thêm vào mã lệnh ngay sau TextBox1. bây giờ gõ ="Ví dụ". Bây giờ mã lệnh là:

TextBox1.Text = "Ví dụ"

Bạn để ý rằng có một biểu tượng ngay bên cạnh mỗi phần tử trong danh sách. Biểu tượng của thuộc tính là một bàn tay chỉ vào một phần tử trong danh sách. Biểu tượng của phương thức là một hộp màu tía hoặc hình thoi màu tía (tôi sẽ giải thích về phương thức trong ít phút sau). Phụ thuộc vào điều khiển, bạn cũng có thể nhìn thấy các biểu tượng khác được bổ sung cho các thuộc tính của điều khiển.

Bạn có để ý rằng bạn phải gõ dấu chấm trước khi danh sách

IntelliSense xuất hiện? Bạn phải làm điều này vì Visual Basic.NET sử dụng cú pháp gọi là kí pháp chấm (dot notation). Sau khi bạn gõ tên của điều khiển, ví dụ như TextBox1, bạn phải gõ dấu chấm. Sau đó bạn gõ tên của thuộc tính. Dấu chấm là cái liên kết điều khiển với các thuộc tính của nó. Đây là cú pháp cơ bản dùng để tham chiếu thuộc tính của form hoặc điều khiển bằng cách sử dụng dấu chấm: TênForm.thuộctínhForm TênĐiềukhiển.ThuộcTínhĐiềukhiển Đây là những ví dụ: TextBox1.Text CheckBox1.Checked Form1.ActiveForm.Height

Chú ý rằng dấu chấm nối điều khiển với thuộc tính của nó. Trong ví dụ cuối, ActiveForm (form tích cực) là thuộc tính của Form1 và Height là thuộc tính của ActiveForm. Cho nên, cần hai dấu chấm để xâu chuỗi các thuộc tính lại với nhau. IntelliSense biết khi nào thì thuộc tính hiện tại có thuộc tính con. Nếu IntelliSense không hiển thị danh sách thì tức là không có các thuộc tính bổ sung và bạn phải bỏ đi dấu chấm cuối cùng. Hoặc bạn gõ tên của điều khiển sai.

5. Phương thc

Chắc là bạn để ý là bên cạnh một số phần tử trong danh sách của IntelliSense có một biểu tượng hình thoi màu tía ở bên cạnh. Chúng không phải là thuộc tính mà chúng là phương thức. Thuộc tính là đặc điểm của điều khiển, ví dụ như màu sắc, số ghế, động cơ là các đặc tính của ô tô. Phương thức là hành động của điều khiển, giống như hành động rẽ sang trái, dừng lại là hành động của ô tô. Phương thức không thể truy cập được bằng cửa sổ thuộc tính mà phải bằng mã lệnh.

Ví dụ, hầu hết các điều khiển đều có phương thức Hide và phương thức Show. Khi bạn gọi phương thức Hide, bạn không thể nhìn thấy điều khiển mặc dù nó vẫn ở trên form. Khi bạn gọi phương thức Show, điều khiển xuất hiện. Một vài phương thức cho phép bạn kích hoạt một hành động. Thông thường thì hành động này được người dùng thực hiện. Ví dụ, Nút lệnh có phương thức PerformClick, phương thức này cho phép mã lệnh của bạn nhấn nút lệnh, bắt chước hành động nhấn nút lệnh của người dùng.

Một vài phương thức yêu cầu bạn phải gửi kèm một vài thông tin nào đó khi gọi nó. Thông tin này ảnh hưởng đến cách thực thi của phương thức cũng như kết quả của việc thực thi phương thức. Những thông tin này được gọi là tham số của phương thức. Một phương thức có thể yêu cầu một hoặc nhiều tham số. Một số tham số có thể là tuỳ chọn (không bắt buộc).

Ví dụ, phương thức Show của hộp thông báo kèm theo một tham số là một chuỗi văn bản. Tham số này quyết định nội dung cần thông báo. Bạn đã sử dụng phương thức Show của hộp thông báo nhưng chắc chắn bạn chưa hiểu rõ bạn đã gọi phương thức với một đối số.

MessageBox.Show("Hello World")

Trong mã lệnh ở trên chuỗi văn bản "Hello World" là một đối số của phương thức Show. Đối số quyết định việc hộp thông báo hiển thị nội dung gì. Sự khác nhau chủ yếu giữa thuộc tính và phương thức là phương thức thực hiện một hành động. Phương thức phải được gọi bằng mã lệnh và không truy cập được bằng cửa sổ thuộc tính. Một vài phương thức có thể yêu cầu một hoặc một vài tham số khi chúng được gọi. Một vài tham số trả về giá trị mà bạn có thể sử dụng chúng trong mã lệnh.

6. Gi phương thc bng mã lnh

Cú pháp gọi một phương thức hầu như là giống với việc đọc hoặc gán thuộc tính. Bạn sử dụng dấu chấm để liên kết điều khiển với phương thức của nó. Một số phương thức, ví dụ như Button.Hide và Button.Show không cần đối số. Một số khác, ví dụ như MessageBox.Show, cần một đối số để biết nó hiển thị nội dung gì. Cú pháp gọi phương thức như sau:

TênĐiềukhiển.TênPhươngThức (tham số 1, tham số 2,... tham số n)

Bạn còn nhớ khi sử dụng phương thức Show của hộp thông báo bạn đã cung cấp cho nó một đối số:

MessageBox.Show(“Hello, World”)

Như bạn có thể thấy, một sự khác nhau lớn giữa việc gọi một phương thức và việc đọc hoặc gán giá trị của một thuộc tính là không sử dấu bằng trong mã lệnh gọi phương thức.

Bây giờ bạn sẽ tìm hiểu cách ẩn và hiển thị điều khiển, xoá văn bản trong hộp văn bản và đặt vị trí con trỏ vào trong hộp văn bản bằng mã lệnh thông qua ví dụ. Để bắt đầu, tạo một ứng dụng Window tên là PhuongThuc. Thêm hai nút lệnh và một hộp văn bản vào Form1. Thay đổi tiêu đề của Button1 thành "Hiển thị". Thay đổi tiêu đề của Button2 thành "Ẩn". Trong sự kiện nhấn chuột của Button1 gõ vào dòng lệnh sau.

TextBox1.Show()

Trong sự kiện nhấn chuột của Button2 gõ vào dòng lệnh sau.

Một phần của tài liệu Lập trình với Microsoft Visual Studio pptx (Trang 36 - 44)

Tải bản đầy đủ (PDF)

(107 trang)