Xem mẫu

  1. Tập bài giảng Lập trình cơ bản CHƢƠNG 4: LẬP TRÌNH TRÊN FORM Trong chƣơng này, giới thiệu cách xây dựng một ứng dụng Windows Forms cơ bản bằng cách sử dụng các điều khiển thông dụngtrong các ứng dụng GUI. Đồng thời hƣớng dẫn cách thiết lập các thuộc tính của Windows Forms và các điều khiển bằng cách sử dụng thiết kế trực quan hoặc cửa sổ Properties và thay đổi hoặc kiểm tra giá trị của các thuộc tính tự động bằng cách sử dụng mã lệnh trong C#. 4.1. Giới thiệu về lập trình trên Form Trƣớc .NET, các nhà phát triển có vài chọn lựa trong việc xây dựng một ứng dụng Windows. Họ có thể xây dựng một ứng dụng bằng C hay C++ sử dụng Win32 API. Việc này là công việc rất khó và chi phối thời gian. Tiếp đến là sử dụng Microsoft Foundation Classes (MFC) là một thƣ viện lớp sử dụng C++ đƣợc gói gọn trong Win32 API để xây dựng úng dụng Windows và Visual Basic là một công cụ phát triển mạnh cho phép tạo các ứng ụng Windows tƣơng đối nhanh chóng. Tuy nhiên, các giải pháp này đều không sử dụng .NET Framework hay CLR. .NET Framework chứa một tầng lớp tiện ích mới dựa trên Win32 API và giống nhƣ MFC và Visual Basic, nó cho phép phát triển các ứng dụng Windows hiệu suất cao hơn và dễ dàng hơn. Môi trƣờng này đƣợc gọi là Windows Forms, cho phép các lập trình viên tạo racác ứng dụng Windows tƣơng tác tốt hơn và lớn hơn sử dụng bất kỳ ngôn ngữ .NET nào. 4.2. Làm việc với Form 4.2.1. Một số khái niệm Windows Forms là một tập hợp các thƣ viện lớpđƣợc quản lý trong .NET Framework để phát triển các ứng dụng desktop trên máy tính. Trong Windows Forms, Form là một cửa sổ giao diện cho phép hiển thị thông tin và tƣơng tác với ngƣời dùng. 116
  2. Tập bài giảng Lập trình cơ bản Các ứng dụng Windows Forms thƣờng đƣợc xây dựng bằng cách thêm các điều khiển vào Form và xây dựng sự kiện tƣơng ứng với các hành động của ngƣời dùng, chẳng hạn nhƣ kích chuột hay bấm phím nào đó. Một điều khiển (control) là một thành phần có giao diện riêng (User Interface) và có thể hiển thị dữ liệu hoặc nhận dữ liệu vào. Để xây dựng một ứng dụng Windows Forms, có thể sử dụng rất nhiều đối tƣợng của lớp thuộc các không gian tên khác nhau (namespace), tuy nhiên có một không tên quan trọng không thể thiếu trong ứng dụng Windows Forms đó là System.Windows.Forms. System.Windows.Forms chứa các lớp dùng để tạo ứng dụng Windows với giao diện ngƣời sử dụng mang các đặc điểm ƣu việt có trên hệ điều hành Windows. Ví dụ 4.1 sau đây sẽ tạo ứng dụng Windows Form nhƣ mẫu sau: Hình 4.1: Giao diện ví dụ 4.1 Yêu cầu: - Đặt dòng tiêu đề Form là Ví dụ 4_1 - Hiển thị dòng chữ Xin chào trên Form -Khi kích chuột vào nút ―Thoát‖: Thực hiện đóng Form trên. Hướng dẫn thực hiện: Bƣớc 1: Tạo ứng dụng Windows Forms Application: Mở Visual Studio 2010 vào File|New|Project và thực hiện thiết lập theo hình 4.2. 117
  3. Tập bài giảng Lập trình cơ bản Hình 4.2: Các bước tạo ứng dụng Windows Forms Application Sau khi click ―Ok‖, Visual Stuidio 2010 sẽ có giao diện nhƣ hình 4.3: Hình 4.3: Giao diện ứng dụng Windows Forms Application sau khi tạo. Khi làm việc với ứng dụng Windows Form, một số cửa sổ thƣờng xuyên sử dụng, nhƣ hình 4.3, ở giữa sẽ là giao diện của Form1 vừa tạo ra (Form1.cs[Design]), nơi đƣợc dùng để thiết kế giao diện ứng dụng, sẽ chứa những điều khiển đƣợc thêm vào, bên trái sẽ là cửa số Toolbox nơi chứa các điều khiển cho phép kéo thả vào Form. 118
  4. Tập bài giảng Lập trình cơ bản Hình 4.4: Cửa sổ Toolbox. Bên phải là cửa sổ Cửa sổSolutionExplorer:Hiển thị các Project trong Solution, hiển thị tất cả các tệp trong Project và Project với tên đƣợc tô đậmsẽ đƣợc chạy đầu tiên Hình 4.5: Cửa sổ Solution Explorer. Chú ý: Nếu các cửa sổ này không xuất hiện thì vào View để mở lại các cửa sổ đó. Bƣớc 2: Thay đổi tiêu đề cho Form. Để thay đổi tiêu đề Form, chọn Form1 trong cửa sổ Form1.cs[Design] và mở cửa sổ Properties để thay đổi thuộc tính Text trên Form1. 119
  5. Tập bài giảng Lập trình cơ bản Hình 4.6: Cửa sổ Properties của Form1. Nếu cửa sổ Properties không xuất hiện thì chọn Form1 và nhấn phím F4. Bƣớc 3: Hiển thị dòng chữ ―Xin chào‖ trên Form1. - Mở cửa sổ Toolbox, tìm tới điều khiển Label , giữ chuột và kéo vào Form1 nhƣ hình 4.7: Hình 4.7: Thêm điều khiển Label vào Form1. - Chọn điều khiển label1 trên Form1, mở cửa sổ Properties của điều khiển label1 và sửa thuộc tính tính Text ban đầu là ―label1‖ thành ―Xin chào!‖ 120
  6. Tập bài giảng Lập trình cơ bản Hình 4.8: Thay đổi thuộc tính Text của điều khiển label1. Kết quả: Hình 4.9: Kết quả sau khi thay đổi thuộc tính Text của điều khiển label1 - Tiếp theo thay đổi Font chữ cho điều khiển label1. Mở cửa sổ Properties của điều khiển label1, chọn thuộc tính Font, kích chuột vào biểu tƣợng sẽ xuất hiện của sổ Font nhƣ hình 4.10. Hình 4.10: Cửa sổ Font. - Thực hiện các thay đổi sau: Font: Time New Roman 121
  7. Tập bài giảng Lập trình cơ bản Size: 16 Font style: True - Sau đó thay đổi màu chữ bằng cách thiết lập thuộc tính ForeColor: Blue Kết quả: Hình 4.11: Thay đổi Font và màu chữ của điều khiển label1. Bƣớc 4: Thêm nút ―Thoát‖ và viết mã lệnh cho sự kiệnKích chuộtcủa nút ―Thoát‖ - Thêm điều khiển Button từ Toolbox vào Form1, thực hiện các thiết lập thuộc tính chon button1 nhƣ sau: Name:btThoat Text: Thoát - Trên cửa sổ Properties của nút ―Thoát‖, chọn biểu tƣợng để mở danh sách các sự kiện (event) của đối tƣợng lớp Button nhƣ hình 4.12, chọn sự kiện Click và double click vào sự kiện này, sẽ xuất hiện trong file Forms.cs một phƣơng thức đƣợc sinh ra tƣơng ứng với sự kiện Click của nút thoát (btThoat_Click) nhƣ hình 4.13. 122
  8. Tập bài giảng Lập trình cơ bản Hình 4.12: Chọn sự kiện Click Hình 4.13: Phương thức btThoat_Click - Viết mã lệnh cho sự kiện Kích chuộtcủa nút ―Thoát‖ private void btThoat_Click(object sender, EventArgs e) { this.Close();//Phương thức dùng để đóng Form } Bƣớc 5: Ấn phím F5 để chạy thử chƣơng trình và đƣợc kết quả nhƣ hình 4.1. 4.2.2. Các loại Form Form có ba loại chính là Form dạnh Multiple Document Interface (MDI) còn đƣợc gọi là MDI Form (Form cha) cho phép trình bày các Form (Child Form hay Form con)khác bên trong. Những Form mở ra không nằm trong MDI Form gọi là Normal Form MDI Form Một Form đƣợc gọi là MDI Form khi thuộc tính IsMdiContainer có giá trị True. Khi chuyển thuộc tính IsMdiContainer của Form từ False sang True, lập tức màu nền của Form đổi thành màu xám nhƣ hình 4.14. Hình 4.14: Màu nền của MDI Form. Ví dụ 4.2: Thiết lập thuộc tính IsMdiContainer //Tạo Form frm và cho frm là MDI Form 123
  9. Tập bài giảng Lập trình cơ bản Form frm = newForm1(); frm.IsMdiContainer = true; frm.Show();//Hiển thị Form Child Form Child Form là Form khi nạp lên sẽ nằm trong một MDI Form. Để Form trở thành Child Form thì khai báo thuộc tính MdiParent tƣơng ứng với MDI Form. Ví dụ 4.3: Khai báo để mở Child Form có tên frm lớp Form3. Form frm = new Form3(); frm.MdiParent = this;//this thể hiện Form gọi đến Form Frm là MDI Form frm.Show();//Hiển thị Form Normal Form Normal Form là Form không phải MDI Form hoặc Child Form 4.2.3. Thuộc tính của Form Những thuộc tính chung của Windows Form đƣợc liệt kê trong bảng sau: Thuộc tính Mô tả Name Là thuộc tính để xác định tên của Form, mặc định, thuộc tính Name của Form đầu tiên trong ứng dụng là Form1 Backcolor Thuộc tính xác định màu nền của Form BackgroundImage Thuộc tính xác định hình nền cho Form Font Thuộc tính xác định kiểu, kích thƣớc và loại font đƣợc hiển thị trên Form và trong những điều khiển trong Form Size Kích thƣớc của Form bao gồm: Width và Height Start Position Thuộc tính xác định vị trị mặc định xuất hiện của Form trên màn hình máy tính ngƣời sử dụng, có các thuộc tính sau: - Manual - vị trí và kích thƣớc của Form phụ thuộc vào vị trí xuất hiện của nó - CenterScreen - xuất hiện ở chính giữa màn hình - WindowsDefaultLocation - Form xuất hiện tại vị trí mặc định của Windows theo kích thƣớc của Form. - Windows DefaultBounds - Form đƣợc hiển thị tại vị trí mặc định của Windows và các chiều của chúng phụ thuộc vào hệ điều hành Windows. - Center Parent - Form đƣợc mở nhƣ một cửa sổ con của một Form khác và xuất hiện tại vị trí chính giữa so với Form cha. Text Xác định tiêu đề của Form 124
  10. Tập bài giảng Lập trình cơ bản WindowState Xác định trạng thái xuất hiện của Form: Normal, Maximized, hay Minimized. Bảng 4.1: Một số thuộc tính của Form Ví dụ 4.4: Tạo Form và thực hiện thay đổi một số thuộc tính trên Form nhƣ sau: Name: frm4_4 Text: Ví dụ 4_4 Size: 500, 500 BackColor:Red WindowState: Maximized Kết quả Form hiển thị nhƣ hình 4.15. Hình 4.15: Form sau khi thay đổi một số thuộc tính theo ví dụ 4.4. 4.2.4. Sự kiện trên Form Những sự kiện trong Windows Form đƣợc liệt kê nhƣ bảng sau: Sự kiện Mô tả Click Sự kiện này xảy ra khi click vào bất kỳ nơi nào trên Form Closed Sự kiện này xảy ra khi một Form đƣợc đóng lại Deactivate Sự kiện xảy ra khi một Formbị mất trạng thái sử dụng Load Sự kiện xảy ra khi một Formđƣợc tải trong bộ nhớ cho lần đầu tiên. MouseMove Sự kiện này xuất hiện khi chuột đƣợc rê trên một Form MouseDown Sự kiện xảy ra khi chuột đƣợc nhấn trên Form MouseUp Sự kiện xảy ra khi chuột đƣợc thả trên Form Resize Sự kiện xảy ra khi thay đổi kích thƣớc Form Closing Sự kiện xảy ra khi đang đóng Form Bảng 4.2: Một số sự kiện của Form 4.2.5. Phƣơng thức của Form Phƣơng thức Mô tả 125
  11. Tập bài giảng Lập trình cơ bản Show Đƣợc sử dụng để xuất hiện một Form bằng cách thiết lập thuộc tính Visible của Form ấy là true ShowDialog Hiển thị Form dạng modal (không cho phép dùng Form khác khi trừ khi nó đƣợc đóng lại) Close Dùng để đóng một Form Hide Dùng để ẩn một Form Bảng 4.3: Một số phương thức của Form Ví dụ 4.5: Các sự kiện và phƣơng thức của Form Yêu cầu: - Tạo Form nhƣ mẫu sau: Hình 4.16: Giao diện Form ví dụ 4.5 - Viết các thông báo cho các sự kiện Load(), Closing(), Resize(), Closed() - Khi kích chuột vào nút ―Hiện Form‖: Hiển thị 1 Form mới - Khi kích chuột vào nút ―Ẩn Form‖: Ẩn Form vừa mở - Khi kích chuột vào nút ―Hiện Form dạng modal‖: Mở Form dƣới dạng modal - Khi kích chuột vào nút ―Đóng Form‖: Đóng Form. Bƣớc 1: Tạo Form đặt tên là frmVidu4_5 STT Đối tƣợng Thuộc tính Giá trị Name frmVidu4_5 1 Form Text Ví dụ 4_5 Text Một số phƣơng thức của 2 Label Form Name btHien 3 Button Text Hiện Form 126
  12. Tập bài giảng Lập trình cơ bản STT Đối tƣợng Thuộc tính Giá trị Name btAn 4 Button Text Ẩn Form Name btHienModal 5 Button Text Hiện Form dạng modal Name btDong 6 Button Text Đóng Form Bƣớc 2: Viết mã lệnh cho các sự kiện của Form private void frmVidu4_5_Load(object sender, EventArgs e) { MessageBox.Show("Form được load"); } private void frmVidu4_5_MouseClick(object sender, MouseEventArgs e) { MessageBox.Show("Form vừa được kích chuột"); } private void frmVidu4_5_FormClosed(object sender, FormClosedEventArgs e) { MessageBox.Show("Form đã đóng"); } private void frmVidu4_5_FormClosing(object sender,FormClosingEventArgs e) { MessageBox.Show("Form đang đóng"); } Bƣớc 3: Viết mã lệnh cho sự kiện Click của các nút trên Form: Form frm = new Form();//Khai báo đối tượng Form frm sử dụng trong các sự kiện click của các nút private void btHien_Click(object sender, EventArgs e) { frm.Show(); } private void btAn_Click(object sender, EventArgs e) { frm.Hide(); } private void btDong_Click(object sender, EventArgs e) { frm.Close(); } private void btHienModal_Click(object sender, EventArgs e) { 127
  13. Tập bài giảng Lập trình cơ bản frm.ShowDialog(); } Trong ví dụ trên có sử dụng lớp MessageBox và phƣơng thức tĩnh Show() của lớp này để hiển thị một hộp thoại thông báo, chi tiết về lớp MessageBox sẽ đƣợc giới thiệu trong phần 4.4.3. Điều khiển Dialog. 4.3. Một số điều khiển thông dụng 4.3.1. Các thuộc tính và sự kiện chung Hầu hết các điều khiển trên Form đều có một số thuộc tính chung nhƣ trong bảng 4.4: Thuộc tính Mô tả BackColor Màu nền của điều khiển. Enabled Điều khiển đƣợc phép tƣơng tác (true) hay không đƣợc phép tƣơng tác (false) với ngƣời dùng. ForeColor Màu chữ của điều khiển. Name Tên của điều khiển. Text Nội dung chuỗi hiển thị trên điều khiển. Visible Cho phép điều khiển hiện (True) / không hiện (False) khi chạy ứng dụng. Width Là chiều rộng của điều khiển tính từ cạnh trái của điều khiển đến cạnh phải của điều khiển. Height Là chiều cao của điều khiển tính từ cạnh trên của điều khiển đến cạnh dƣới của điều khiển. Bảng 4.4: Một số thuộc tính chung của các điều khiển Các sự kiện chung thƣờng sử dụng của các điều khiển đƣợc trình bày trong bảng 4.5. Sự kiện Mô tả Click Xảy ra khi điều khiển bị kích chuột. Trong một vài điều khiển, event này cũng xảy ra khi nhấn phím Enter. MouseDown Xảy ra khi kích chuột trái nhƣng chƣa thả ra. MouseMove Xảy ra đến khi con trỏ chuột đi qua 1 điều khiển. MouseUp Xảy ra khi kích chuột trái và thả ra. KeyDown Xảy ra khi vừa bấm một phím bất kỳ từ 1 điều khiển đang đƣợc chọn.Sự kiện này luôn đƣợc gọi trƣớc sự kiện KeyUp. KeyPress Xảy ra khi vừa bấm một phím bất kỳ từ 1 điều khiển đang đƣợc chọn. Sự kiện này đƣợc gọi sau sự kiện KeyUp. KeyUp Xảy ra khi vừa bấm một phím bất kỳ rồi thả ra từ 1 điều khiển 128
  14. Tập bài giảng Lập trình cơ bản đang đƣợc chọn. Sự kiện này luôn đƣợc gọi sau sự kiện KeyDown. Bảng 4.5: Một số sự kiện chung của các điều khiển 4.3.2. Nhóm điều khiển Label 1. Label - Công dụng: Hiển thị chuỗi ký tự. - Thuộc tính: Thuộc tính Mô tả AutoSize Điều chỉnh kích thƣớc đối tƣợng cho vừa với chiều dài chuỗi ký tự Font Kiểu và kích thƣớc của chữ trình bày trên điều khiển TextAlign Canh lề (Left / Center / Right) Bảng 4.6: Một số thuộc tính của Label Chẳng hạn, thiết kế Form dạng đăng nhập, bên cạnh các điều khiển yêu cầu nhập họ tên sinh viên, mã sinh viên, lớp, Form chứa các điều khiển Label:―Họ tên SV‖, ―Mã SV‖, ―ĐĂNG NHẬP‖, ―Lớp‖ nhƣ hình 4.17. Hình 4.17: Sử dụng điều khiển Label. 2. LinkLabel - Công dụng: ngoài chức năng hiển thị chuỗi thì điều khiển LinkLabel cho phép liên kết đến địa chỉ Internet hoặc Email. - Thuộc tính: Thuộc tính Mô tả LinkArea Vùng liên kết theo chiều dài và ký tự bắt đầu LinkBehavior Trạng thái của liên kết, mặc định là SystemDefault, có thể chọn: AllwasUnderline, HoverUnderline hay NeverUnderline. 129
  15. Tập bài giảng Lập trình cơ bản LinkColor Màu của liên kết VisitedLinkColor Màu của liên kết sau khi đã chọn Bảng 4.7: Các thuộc tính của LinkLabel - Sự kiện: Sự kiện Mô tả LinkClicked Xảy ra khi kích chuộttrên điều khiển LinkLabel DoubleClick Xảy ra khi kích chuột hai lần trên điều khiển LinkLabel Bảng 4.8: Các sự kiện của LinkLabel Ví dụ 4.6: Điều khiển LinkLabel Yêu cầu: - Tạo Form theo mẫu: Hình 4.18: Ví dụ về điều khiển LinkLabel. - Khi kích chuột vào điều khiển LinkLabel sẽ chuyển tới địa chỉ trang https://www.google.com.vn/ trên trình duyệt nhƣ hình sau: Hình 4.19: Hiển thị trang https://www.google.com.vn/ trên trình duyệt web Hướng dẫn thực hiện 130
  16. Tập bài giảng Lập trình cơ bản Bƣớc 1: Tạo Form và đặt tên là frmVidu4_6, them điều khiển LinkLabel vào trong Form. STT Đối tƣợng Thuộc tính Giá trị Name frmVidu4_6 1 Form Text Điều khiển LinkLabel Text https://www.google.com.vn 2 LinkLabel Name linkLabel1 Bƣớc 2: Viêt khai báo liên kết cho điều khiển LinkLabel trong sự kiện frmVidu4_6_Load. private void frmVidu4_6_Load(object sender, EventArgs e) { this.linkLabel1.Links.Add(0,100,‛https://www.google.com.vn"); } //Thêm một liên kết mới vào đối tương linkLabel1. Bƣớc 3: Kích chuột hai lần vào điều khiển linkLabel1 để sinh sự kiện LinkClicked và thực hiện thêm đoạn mã lệnh sau vào sự kiện này. private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string strURL = Convert.ToString(e.Link.LinkData); if (strURL.StartsWith(@"https://www")) Process.Start(strURL);//thực thi một ứng dụng ngoài, cho phép xem một tài liệu hay một trang web } // Sử dụng thêm không gian tên System.Diagnostics; Bƣớc 4: Nhấn F5 để chạy chƣơng trình. 4.3.3. Nhóm điều khiển TextBox 1. Textbox - Công dụng: Dùng để nhập và hiển thị văn bản. - Thuộc tính: Thuộc tính Mô tả Text Xác định chuỗi hiển thị của TextBox Multiline Cho phéphiển thị văn bản trên nhiều dòng. PasswordChar Thuộc tính này cho phép lấy một ký tự làm đại diện cho tất cả các ký tự khác đƣợc nhập vào Bảng 4.9: Một số thuộc tính của TextBox - Sự kiện: Sự kiện Mô tả TextChanged Xảy ra khi chuỗi trên điều khiển thay đổi 131
  17. Tập bài giảng Lập trình cơ bản MouseClick Xảy ra khi kích chuột trên điều khiển TextBox MultilineChanged Xảy ra khi thuộc tính Multiline thay đổi giá trị từ True sang False hay ngƣợc lại. Bảng 4.10: Một số sự kiện của TextBox Ví dụ 4.7: Điều khiển TextBox Yêu cầu: - Tạo Form theo mẫu sau: Hình 4.20: Ví dụ về điều khiển TextBox - Các nhãn: ―Tên đăng nhập‖, ―Mật khẩu‖, ―Mô tả‖ - Các điều khiển để nhập tên đăng nhập, mật khẩu và mô tả là các Textbox Lập trình cho các sự kiện: - Kích chuộtvào nút ―Đăng nhập‖: Kiểm tra xem tên đăng nhập có phải là ―abcde‖ và mật khẩu là ―12345‖ hay không và sẽ đƣa ra thông báo là đăng nhập thành công hay thất bại - Kích chuột vào nút ―Xóa‖: Thực hiện xóa nội dung của các điều khiển TextBox - Kích chuột vào nút ―Thoát‖: Thực hiện đóng Form. - Nếu TextBox tên đăng nhập là rỗng thì nút ―Đăng nhập‖ bị vô hiệu hóa, ngƣợc lại cho phépkiểm tra khi kích chuột vào nút ―Đăng nhập‖. Hướng dẫn thực hiện Bƣớc 1: Tạo Form và đặt tên là frmVidu4_7, thêm các điều khiển TextBox và Button vào trong Form. STT Đối tƣợng Thuộc tính Giá trị Name frmVidu4_7 1 Form Text Điều khiển TextBox Multiline True 2 TextBox Name txtMota 3 TextBox PasswordChar * 132
  18. Tập bài giảng Lập trình cơ bản STT Đối tƣợng Thuộc tính Giá trị Name txtMatkhau 4 TextBox Name txtTendangnhap Text Đăng nhập 5 Button Name btDangnhap Text Xóa 6 Button Name btXoa Text Thoát 7 Button Name btThoat 8 Label Text Tên đăng nhập 9 Label Text Mật khẩu 10 Label Text Mô tả Bƣớc 2: Viết mã lệnh cho sự kiện Vidu4_7_Load private void Vidu4_7_Load(object sender, EventArgs e) { btDangnhap.Enabled = false; } Bƣớc 3: Viết mã lệnh cho các sự kiện Click của các nút Đăng nhập, nút Thoát và nút Xóa private void btThoat_Click(object sender, EventArgs e) { this.Close(); } private void btXoa_Click(object sender, EventArgs e) { txtMatkhau.Clear();//Xóa nội dung của TextBox txtTendangnhap.ResetText();//Gán giá trị thuộc tính Text bằng giá trị mặc định } private void btDangnhap_Click(object sender, EventArgs e) { if (txtTendangnhap.Text == "abcde" && txtMatkhau.Text == "12345") MessageBox.Show("Đăng nhập thành công"); else MessageBox.Show("Đăng nhập thất bại"); } Bƣớc 4: Viết mã lệnh cho sự kiện TextChanged của txtTendangnhap, nếu có ký tự đƣợc nhập vào thì nút ―Đăng nhập‖ có thuộc tính Enabled là True, ngƣợc lại sẽ là False private void txtTendangnhap_TextChanged(object sender, EventArgs e) { if (txtTendangnhap.Text != "") btDangnhap.Enabled = true; 133
  19. Tập bài giảng Lập trình cơ bản else btDangnhap.Enabled = false; } Ví dụ 4.8: Chƣơng trình tìm ƣớc chung lớn nhất, bội chung nhỏ nhất: Yêu cầu: - Tạo Form theo mẫu sau: Hình 4.21: Giao diện ví dụ 4.8. - Các điều khiển để nhập số thứ nhất, số thứ 2, UCLN và BCNN là các TextBox - Các nhãn: ―UCLN, BCNN‖, ―Nhập số 1‖, ―Nhập số 2‖. - Khi kích chuột vào nút ―UCLN‖: Thực hiện tính và hiển thị ƣớc chung lớn nhất của 2 số nguyên dƣơng đƣợc nhập vào. - Khi kích chuột vào nút ―BCNN‖: Thực hiện tính bội chung nhỏ nhất của 2 số nguyên dƣơng đƣợc nhập vào. - Trong sự kiệnkích chuột của hai nút có kiểm tra dữ liệu của 2 số nhập vào có phải là 2 số nguyên dƣơng không, nếu không phải đƣa ra thông báo dữ liệu không hợp lệ. Hướng dẫn thực hiện: Bƣớc 1: Tạo Form và đặt tên là frmVidu4_8, thêm các điều khiển vào trong Form. STT Đối tƣợng Thuộc tính Giá trị Name frmVidu4_8 1 Form Text Tìm ƢCLN, BCNN 2 TextBox Name txtSo1 3 TextBox Name txtSo2 4 TextBox Name txtUCLN 5 TextBox Name txtBCNN Text UCLN 6 Button Name btUCLN 7 Button Text BCNN 134
  20. Tập bài giảng Lập trình cơ bản STT Đối tƣợng Thuộc tính Giá trị Name btBCNN 8 Label Text Nhập số 1 9 Label Text Nhập số 2 Text UCLN, BCNN Font Times New Roman 10 Label Font style Bold Size 22 Bƣớc 2: Xây dựng các hàm kiểm tra dữ liệu và hàm tìm ƢCLN. private bool Kiemtra() { int so1, so2; bool kt1, kt2; kt1 = int.TryParse(txtSo1.Text, out so1); kt2 = int.TryParse(txtSo2.Text, out so2); return kt1 && kt2 && so1 >0 && so2 >0; } private int UCLN(int n, int m) { int du; do { du = n % m; n = m; m = du; } while (du != 0); return n; } Bƣớc 3: Viết mã lệnh cho sự kiện kích chuột của các nút ―UCLN‖ và nút ―BCNN‖ private void btUCLN_Click(object sender, EventArgs e) { if (Kiemtra()) { int so1, so2; so1 = int.Parse(txtSo1.Text); so2 = int.Parse(txtSo2.Text); txtUCLN.Text = UCLN(so1, so2).ToString(); } else MessageBox.Show("Dữ liệu không hợp lệ","Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); } 135
nguon tai.lieu . vn