(NB) Microsoft NET gồm 2 phần chính: Framework và Integrated Development Environment (IDE); Framework cung cấp những gì cần thiết và căn bản, chữ Framework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ƣớc nhất định để công việc đƣợc trôi chảy. IDE thì cung cấp một môi trƣờng giúp chúng ta triển khai dễ dàng, và nhanh chóng các ứng dụng dựa trên nền tảng NET.
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN KHOA CƠNG NGHỆ THƠNG TIN ĐỀ CƢƠNG HỌC PHẦN: LẬP TRÌNH WINFORM VÀ ADO.NET Hƣng Yên (Tài liệu lƣu hành nội bộ) MỤC LỤC BÀI 1: TỔNG QUAN 1.1 Giới thiệu Net Framework 1.2 Giới thiệu Windows Form BÀI 2: MỘT SỐ ĐIỀU KHIỂN WINFORM (1) 15 2.1 Label ( ) 15 2.2 TextBox( ) 16 2.3 Button ( ) 17 2.4 CheckBox ( ) 18 2.7 RadioButton ( ) 26 BÀI THỰC HÀNH – CÁC ĐIỀU KHIỂN WINFORM (1) 28 BÀI MỘT SỐ ĐIỀU KHIỂN WINFORM (2) 28 4.1 Timer ( ) 28 4.2 RichTextBox ( 4.3 4.4 PictureBox ( ImageList ( 4.5 Image ( 4.6 Điều khiển ListView ( ) 29 ) 30 ) 30 ) .30 ) 31 4.7 Treeview ( ) 45 4.8 DataGridView 47 BÀI 5: THỰC HÀNH – CÁC ĐIỀU KHIỂN WINFORM (2) 52 BÀI 6: MỘT SỐ ĐIỀU KHIỂN WINFORM (3) 52 6.1 MenuStrip 52 6.2 Các điều khiển hộp thoại .55 BÀI THỰC HÀNH – CÁC ĐIỀU KHIỂN WINFORM (3) 60 BÀI GIỚI THIỆU VỀ ADO.NET 60 8.1 Giới thiệu ADO.NET 60 8.2 Các mơ hình thao tác với CSDL 61 8.3 Đối tƣợng Connection .62 BÀI THỰC HÀNH 4- KẾT NỐI CSDL VỚI ĐỐI TƢỢNG CONNECTION 64 BÀI 10: ĐỐI TƢỢNG COMMAND, DATAREADER, PARAMETER 64 10.1 10.2 10.3 10.4 Đối tƣợng Command .64 Đối tƣợng DataReader 65 Đối tƣợng Parameter 66 Các thao tác thêm, sửa, xóa liệu theo mơ hình hƣớng kết nối 68 BÀI 11 THỰC HÀNH – THAO TÁC CSDL THEO MÔ HÌNH HƢỚNG KẾT NỐI 75 BÀI 12 ĐỐI TƢỢNG DATA ADAPER VÀ DATASET 75 12.1 Đối tƣợng DataAdaper 75 12.2 Đối tƣợng DataSet 75 12.3 Nạp liệu vào DataSet 79 12.4 Cập nhật CSDL DataAdapter 81 12.5 Các thao tác với CSDL theo mơ hình phi kết 82 BÀI 13: THỰC HÀNH – THAO TÁC CSDL THEO MƠ HÌNH PHI KẾT NỐI88 BÀI 14 SẮP XẾP VÀ TÌM KIẾM DỮ LIỆU VỚI DATAVIEW 88 14.1 14.2 Đối tƣợng DataView 88 Tìm kiếm, xếp, trích lọc thơng tin với DataView 89 BÀI 15 THỰC HÀNH – THỰC HIỆN THAO TÁC VỚI CƠ SỞ DỮ LIỆU SỬ DỤNG DATAVIEW 92 BÀI 16 LẬP BÁO CÁO VỚI CYSTALREPORT 92 16.1 Giới thiệu 92 16.2 Thiết kế báo cáo sử dụng Report Design Environment 92 16.3 Preview báo cáo 108 16.4 Nạp hiển thị Report chƣơng trình .109 BÀI 1: TỔNG QUAN Giới thiệu Net Framework 1.1 Microsoft NET gồm phần : Framework Integrated Development Environment (IDE) Framework cung cấp cần thiết bản, chữ Framework có nghĩa khung hay khung cảnh ta dùng hạ tầng sở theo qui ƣớc định để công việc đƣợc trơi chảy IDE cung cấp mơi trƣờng giúp triển khai dễ dàng, nhanh chóng ứng dụng dựa tảng NET Nếu IDE dùng trình soạn thảo ví nhƣ Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework quan trọng NET cốt lõi tinh hoa môi trƣờng, cịn IDE cơng cụ để phát triển dựa tảng thơi Trong NET tồn ngôn ngữ C#, Visual C++ hay Visual Basic.NET dùng IDE Tóm lại Microsoft NET tảng cho việc xây dựng thực thi ứng dụng phân tán hệ Bao gồm ứng dụng từ client đến server dịch vụ khác Một số tính Microsoft NET cho phép nhà phát triển sử dụng nhƣ sau: - Một mô hình lập trình cho phép nhà phát triển xây dựng ứng dụng dịch vụ web ứng dụng client với Extensible Markup Language (XML) - Tập hợp dịch vụ XML Web, nhƣ Microsoft NET My Services cho phép nhà phát triển đơn giản tích hợp ngƣời dùng kinh nghiệm - Cung cấp server phục vụ bao gồm: Windows 2000, SQL Server, BizTalk Server, tất điều tích hợp, hoạt động, quản lý dịch vụ XML Web ứng dụng - Các phần mềm client nhƣ Windows XP Windows CE giúp ngƣời phát triển phân phối sâu thuyết phục ngƣời dùng kinh nghiệm thơng qua dịng thiết bị - Nhiều cơng cụ hỗ trợ nhƣ Visual Studio NET, để phát triển dịch vụ Web XML, ứng dụng Windows hay web cách dể dàng hiệu Kiến trúc NET Framework NET Framework platform làm đơn giản việc phát triển ứng dụng môi trƣờng phân tán Internet .NET Framework đƣợc thiết kế đầy đủ để đáp ứng theo quan điểm sau: - Để cung cấp mơi trƣờng lập trình hƣớng đối tƣợng vững chắc, mã nguồn đối tƣợng đƣợc lƣu trữ thực thi cách cục Thực thi cục nhƣng đƣợc phân tán Internet, thực thi từ xa - Để cung cấp môi trƣờng thực thi mã nguồn mà tối thiểu đƣợc việc đóng gói phần mềm tranh chấp phiên - Để cung cấp môi trƣờng thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm việc mã nguồn đƣợc tạo hãng thứ ba hay hãng mà tuân thủ theo kiến trúc NET - Để cung cấp môi trƣờng thực thi mã nguồn mà loại bỏ đƣợc lỗi thực script hay môi trƣờng thông dịch - Để làm cho ngƣời phát triển có kinh nghiệm vững nắm vững nhiều kiểu ứng dụng khác Nhƣ từ ứng dụng Windows đến ứng dụng dựa web - Để xây dựng tất thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo mã nguồn NET tích hợp với mã nguồn khác Các thành phần NET FrameWork NET Framework có hai thành phần chính: Common Language Runtime (CLR) thƣ viện lớp NET Framework CLR tảng NET Framework Chúng ta hiểu runtime nhƣ agent quản lý mã nguồn đƣợc thực thi, cung cấp dịch vụ cốt lõi nhƣ: quản lý nhớ, quản lý tiểu trình, quản lý từ xa Ngồi cịn thúc đẩy việc sử dụng kiểu an tồn hình thức khác việc xác mã nguồn, đảm bảo cho việc thực đƣợc bảo mật mạnh mẽ Thƣ viện lớp, thành phần khác NET Framework tập hợp hƣớng đối tƣợng kiểu liệu đƣợc dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng đƣợc cung cấp ASP.NET, nhƣ Web Form dịch vụ XML Web 1.2 Giới thiệu Windows Form Windows Form ứng dụng có giao diện đồ họa chạy hệ điều hành Window (GUI - Graphical User Interface), Windows Forms ứng dụng chạy máy tính ngƣời dùng (DeskTop) Khác với Web Forms ứng dụng chạy Web Forms Khi ứng dụng chạy hiển thị kết lên trình duyệt Windows Forms phần kiến trúc NET Ví dụ nhƣ: GUI đƣợc thiết kế việc thêm vào Form điều khiển phù hợp cho yêu cầu toán đặt 1.2.1 Các thao tác với Project / Solution a Tạo Project C1 Vào menu File | New | Project C2 Ctrl + Shift + N C3 Chọn công cụ New Project Standart Bƣớc 1: Khởi động VS2008 chọn Fille New Project … Bƣớc 2: Chọn Ứng dụng dạng Windows Forms Application, chọn nơi lữu trữ Project (xem hình) nhấn OK 1.2.2 Thêm điều chỉnh điều khiển Sau tạo dự án, Form đƣợc tạo nhƣ hình bên dƣới: Để thêm điều khiển vào Form, kéo điều khiển bên cơng cụ Toolbox vào Form Để chỉnh sửa điều khiển (thêm, thay đổi kích thƣớc, xóa…) chọn điều khiển nhấn nút Delete muốn xóa, muốn thay đổi kích thƣớc việc chọn vào điều khiển kéo điều khiển có kích thƣớc nhƣ mong muốn: 1.2.3 Tải tập tin Visual Studio hỗ trợ làm việc với nhiều tập tin (xml, Excel, Word…) với tập tin đơn giản chỉnh sửa trực tiếp công cụ Các file hiển thị công vụ Solution Explorer: Để chỉnh sửa nội dung file click trực tiếp vào file sửa hộp thoại ra: 1.2.4 Thay đổi kích thước Form Form (hay gọi điều khiển Form) dùng để chứa điều khiển khác (Buttons, Label…) Trong dự án có nhiều Form: Tùy theo ứng dụng khác mà có yêu cầu kích thƣớc Form khác cho phù hợp với chƣơng trình Để thay đổi kích thƣớc Form cần chọn Form kéo ô vuông bên mép Form: Hoặc thay đổi trực tiếp kích thƣớc Form thơng qua thuộc tính Size: b Mở Project / Solution: C1 Vào menu File | Open | Project / Solution C2 Ctrl + Shift + O c Lưu Project / Solution C1 Vào menu File | Save All C2 Chọn công cụ Save All Standart d Đóng Solution: Vào menu File | Close Solution 1.2.5 Màn hình giao diện Windows Forms a Cửa sổ thiết kế Form (Designer): 10 Database Files Favorites History More Data Sources cáo từ bảng liệu, view stored procedure , … Crystal Reports.NET cho phép bạn nhập vào lệnh SQL dùng làm sở cho báo cáo bạn Mục cho phép bạn chọn số dạng thức CSDL kiểu tập tin bao gồm Access, Excel, XML, TTS(loại tập tin định nghĩa Crystal Field Definition) Mục cho phép bạn chọn liệu nguồn thƣờng xuyên đƣợc dùng đến mà bạn đƣa vào danh sách Favorites Các item hữu đƣợc thêm vào cách right-click lên chúng chọn mục Add to Favorites Bạn gỡ bỏ item khỏi Favorites cách click lên item ấn Mục cho phép bạn chọn liệu nguồn đƣợc dùng báo cáo khác dự án Mục bao gồm : ADO.NET(XML), access/Excel(DAO) Field Definition Only ADO.NET(XML) cho phép tìm đọc mẫu tin cách khai báo lối tìm tập tin XML Bạn chọn ADO.NET datasets hữu Cịn Access/Excel (ADO) cho phép tìm đọc mẫu tin dùng ADO recordset truy cập CSDL MS Access Excel spreadsheet Còn Field Definition Only dùng Crystal Field Definition (TTX) mang tính tƣơng thích lùi không đƣợc triển khai Thiết lập mối quan hệ bảng Nếu bƣớc trƣớc bạn chọn lúc nhiều liệu hộp thoại Standard Report Export hiển thị Tab Link cho phép bạn khai báo bảng liệu có mối quan hệ nào, hình 6-06 Lƣu ý: Trong ví dụ sử dụng bảng customer nên bỏ qua bƣớc 99 Hộp thoại Standard Report Expert – Tab Link Chọn Field cho báo cáo Bƣớc hộp thoại Standard Report Export chọn field xuất lên báo cáo Trên Tab Field (Hình 6-07), muốn sử dụng field bạn chọn field khung Available Fieds nhấn nút Add g để chuyển field chọn qua danh sách Field to Display bên phải Để tiện dụng hơn, hộp thoại Standard Report Export cung cấp cho bạn hai chức Browse Data Find Field Tab Field Browse Data giúp bạn xem trƣớc nội dung Field mà bạn chọn bạn có danh sách Field dài Find Field giúp bạn tìm Field danh sách 100 Tab Field dùng để chọn Field sử dụng Các Field mà bạn chọn xuất theo thứ tự từ trái qua phải mẫu tin DataSet đƣợc in hàng báo cáo Bạn thay đổi thứ tự Field cách sử dụng hai nút mũi tên lên xuống hộp thoại Trong ví dụ này, chọn Field theo thứ tự: Customer Name, Contact Last Name, Contact Title, E-mail Last Year’s Sales Với Field có tiêu đề cột tƣơng ứng báo cáo (mặc định lấy trùng tên với Field), bạn thay đổi tiêu đề cột bƣớc thông qua ô textbox Column Heading Hình 6-07 thay đổi trực tiếp Report Designer sau Sau chọn Field liệu, bạn nhấn Finish để làm việc với báo cáo Report Designer Tuy nhiên, qua bƣớc việc nhấn Next Gộp nhóm Sắp xếp (Grouping - Sorting) Tại bƣớc này, hộp thoại Standard Report Export chuyển sang Tab Group (Hình 6-08), bạn chọn Field làm sở xếp tổng kết theo nhóm cách click lên Field muốn chọn từ khung Available Fields sau nhấn nút Add g để chuyển Field chọn qua khung Group By Trong ví dụ này, bạn chọn Group theo Customer.Contry 101 Hộp thoại Standard Report Expert – Tab Group Trên hộp thoại có hai ô mũi tên lên xuống cho phép bạn thay đổi thứ tự Group báo cáo bạn có nhiều Group Ngồi combobox Sort Oder nằm bên dƣới khung Group By có bốn lựa chọn cho việc xếp đƣợc giải thích theo bảng dƣới Sort Oder Ascending Decending Original Specified Các lựa chọn xếp Mô tả Sắp xếp theo thứ tự tăng dần từ A-Z, 1-9, Sắp xếp theo thứ tự giảm dần từ Z-A, 9-1, Dữ liệu có thứ tự theo thứ tự dataset Dùng để tạo custom group cho riêng bạn [1] Sau chọn xong Field dùng để Group bạn nhấn Next để tiếp tục Bổ sung thông tin tổng kết Bạn click lên Tab Total hộp thoại Standard Report Export (Hình 6-09) để thêm thơng tin tổng kết (summary) vào báo cáo Các field tổng kết (summary field) chứa kết phép tính tốn phổ biến nhƣ sum, average Muốn thêm summary field, bạn cần chọn field khung Available Fields đƣa vào khung Summaried Fields ( ví dụ Customer.Last Year’s Sales ), sau chọn kiểu summary từ hộp combo box Summary Type nhƣ Hình 6-09.Trong trƣờng hợp chọn sum check vào ô check box Add Grand Totals[2] 102 Có tất 20 tác tử summary phổ biến mà bạn sử dụng[3] Tùy theo kiểu liệu Field bạn chọn mà có khơng vài tác tử summary, ví dụ nhƣ bạn khơng thể tính trung bình (Average) Field kiểu string Với ví dụ đến nhấn nút Finish để chuyển sang Report Designer nhƣng để giúp bạn hiểu rõ bƣớc lại nên tiếp tục khảo sát tất bƣớc lại Bạn nhấn Next để qua bƣớc Lƣu ý: Bạn khơng thể có bƣớc báo cáo bạn khơng có Group Hộp thoại Standard Report Expert – Tab Total Các tính phân tích Ngồi summary phổ biến ta cịn có khả thêm vào báo cáo số chức phân tích giúp nhấn mạnh thơng tin quang trọng Ví dụ, thay liệt kê tất nhân viên bán hàng công ty bạn in danh sách 10 nhân viên thực doanh thu cao (để khen thƣởng) hay cho 10 nhân viên bán hàng tệ tháng để lƣu ý họ Trên hộp thoại Standard Report Export bạn click Tab TopN để thêm chức phân tích vào báo cáo Bạn để ý có Tab Customer.Country (nếu báo cáo bạn có Group có nhiêu Tab, Tab có tên tƣơng ứng với Group) hộp combo For this group sort có năm lựa chọn 103 Tab TopN - Sắp xếp gộp nhóm dựa summarized totals Các lựa chọn hộp combo For this group sort Các kiẻu phân tích Mô tả All Hiển thị tất giá trị Top N Bạn nhập vào số N vào ô text box where N is Bản báo cáo liệt kê N nhóm dựa giá trị summary field theo thứ tự giảm dần Bottom N Bạn nhập vào số N vào ô text box where N is Bản báo cáo liệt kê N nhóm cuối dựa giá trị summary field theo thứ tự tăng dần Top Percentage Bạn nhập vào tỉ lệ N% (0-100) vào ô text box where Percentage is Bản báo cáo liệt kê N% nhóm dựa giá trị summary field theo thứ tự giảm dần Với ví dụ bạn để giá trị All hộp combo For this group sort, nhấn Next để tiếp tục Lƣu ý: Tab TopN thực đƣợc bạn có thiết lập hai Tab Group Tab Total Biểu đồ Đồ thị (Charting - Graphing) Trên hộp thoại Standard Report Export bạn thêm số loại Graph khác vào báo cáo thông qua Tab Chart[4] Bạn nhấn Next tiếp tục 104 Hộp thoại Standard Report Expert – Tab Chart Sàng lọc thông tin báo cáo Khi in báo cáo từ nhiều bảng liệu khác nhau, chắn bạn không muốn xem tất liệu báo cáo Bạn muốn chọn sử dụng mẫu tin mà thơi dựa tiêu chí Tab Select giúp bạn thực ý định Có số tác tử có sẵn dùng cho việc chọn lọc mẫu tin đƣợc giải thích Đối với ví dụ này, ta không quan tâm việc chọn lọc mẫu tin, nghĩa tất mẫu tin đƣợc xử lý, ta bỏ qua Tab Select, bạn nhấn Next để qua Tab cuối 105 Tab Select Tác tử chọn lọc Is equal to Is not equal to Is less than Is less than or equal to Is greater than Is greater than or equal Các tác tử chọn lọc Mô tả So sánh So sánh không So sánh nhỏ So sánh nhỏ So sánh lớn So sánh lớn Is one of Is between Is not between Is like Is starting with Thuộc tập hợp định trƣớc Nằm Không nằm Giống nhƣ (dùng tƣơng tụ like SQL) Bắt đầu to 10 Chọn kiểu định dạng cho báo cáo Tab cuối Standard Report Expert Tab Style, giúp bạn chọn lựa format cho báo cáo trƣớc hoàn tất Có tất 10 style đƣợc định sẵn mà bạn chọn sử dụng nhƣung bạn khơng thể thêm vào style riêng bạn Bạn thêm tựa đề (title) báo cáo vào ô Title Trong trƣờng hợp tựa đề báo cáo “International Sales Report”, thông tin nỳa đƣợc lƣu trữ Summary Infomation tập tin báo cáo Report Title Field đƣợc thêm vào Report Designer Bạn nhấn nút Finish để hoàn tất việc thiết kế báo cáo 106 [ Hộp thoại Standard Report Expert – Tab Style 11 Hoàn tất việc thiết kế báo cáo Sau bạn chọn Finish hộp thoại Standard Report Expert, tập tin báo cáo đƣợc tạo với thiết lập mà bạn vừa thực hiện, nhƣ theo hình dƣới Đến coi nhƣ bạn hoàn tất việc thiết kế báo cáo 107 Tập tin báo cáo 16.3 Preview báo cáo Muốn in báo cáo bạn thêm vào Form1 ô control CrystalReportViewer Toolbox Khi IDE tự động tạo đối tƣợng crystalReportViewer1, bạn gán thuộc tính Dock đối tƣợng thành Fill để control viewer bao phủ tồn vùng Client Form1 Đồng thời bạn thay đổi thuộc tính WindowState Form1 thành Maximized Tại hàm xử lý kiện Form_Load bạn bổ sung dòng lệnh in đậm sau đây: private void Form1_Load(object sender, System.EventArgs e) { crystalReportViewer1.ReportSource = new rptBaocao(); } Lệnh tạo đối tƣợng rptBaocao (là báo cáo bạn vừa thiết kế xong) gán cho thuộc tính ReportSource control viewer Khi ban cho chạy ứng dụng, cho thấy viewer báo cáo nhƣ hình dƣới 108 Báo cáo InternationalSales chế độ Preview 16.4 Nạp hiển thị Report chƣơng trình Để nạp hiển thị Report chƣơng trình tiến hành bƣớc nhƣ sau: B1 Thêm vào dự án tệp DataSet B2 Thêm vào bảng có cấu trúc tên trƣờng giống nhƣ cấu trúc liệu cần hiển thị B3 Thêm vào dự án CrystalReport Xác định nguồn liệu DataSet B4 Thêm dự án Form, thêm vào From điều khiển crystalReportViewer B5 Viết Code để lấy liệu gán cho CrystalReport hiển thị Report kiện FormLoad Các bƣớc đƣợc trình bày chi tiết dƣới đây: Bƣớc 1: Thêm vào dự án DataSet (*.xsd file) (Giả sử dự án ta cần hiển thị thông tin sách có thơng tin Madau tên đầu.) - Vào Menu Project\Addnew Item 109 Thêm vào dự án DataSet Bƣớc 2: Thêm vào bảng có cấu trúc tên trƣờng giống nhƣ cấu trúc liệu cần hiển thị - R_Click trống DataSet để tạo bảng, tiếp tục tạo cột đặt tên cột giống với tên trƣờng liệu cần hiển thị 110 Bƣớc 3: Thêm vào dự án CrystalReport Xác định nguồn liệu DataSet - Vào Menu Project\Add new Item - Trong bƣớc chọn nguồn liệu chọn liệu DataSet1 vừa tạo bƣớc Project Data\ ADO.NET DataSets Và chọn bảng cần hiển thị DataSet1 111 - Nhấn Next bƣớc nhƣ phần trình bày trƣớc B4 Thêm điều khiển crystalReportViewer để hiển thị báo cáo vào From gọi Crystal Bƣớc 5: Viết Code ThaoTacDuLieu dl;// Khai báo đối tƣợng lớp ThaoTacDuLieu Khai báo đối tƣợng DataSet public Frmbaocao() { // khởi tạo lớp ThaoTacDuLieu với tham số truyền vào chuỗi kết nối dl = new ThaoTacDuLieu(Program.f.StringConnection); InitializeComponent(); } private void Frmbaocao_Load(object sender, EventArgs e) { // Thi hành phƣơng thức FillDataSet để fill liệu vào DataSet dl.FillDataSet("select * from sach", "sach"); // Lấy đối tƣợng DataSet lớp thao tác liệu ds = dl.GetDaTaSet; 112 DataSet ds; // // Tạo đối tƣợng CrystalReport tên RptBaocao RptBaocao rp = new RptBaocao(); // Thiết lập nguồn liệu DataSet cho CrystalReport // DataSet truyền vào truyền liệu cho Tệp DataSet tạo bƣớc rp.SetDataSource(ds); rp.Refresh(); // Hiển thị CrystalReport lên crystalReportViewer cách gán đối tƣợng Report cho điều khiển crystalReportViewer this.crystalReportViewer1.ReportSource = rp; } 113 ... hợp lại - Nhắp vào nút Xóa (btnXoa) xóa hết nội dung TextBox - Thêm vào button Dừng, nhắp vào button dừng chƣơng trình Viết chƣơng trình tạo ứng dụng gồm: - Form1: Màn hình có button: Bài tập... (btnBT1), Bài tập (btnBT2), Bài tập (btnBT3), Bài tập (btnBT4), Thoát (btnThoat) + Khi nhắp vào Button Bài Tập 1: mở Form2 + Khi nhắp vào Button Bài Tập 2: mở Form3 + Khi nhắp vào Button Bài Tập... TextBox Viết chƣơng trình giải phƣơng trình bậc nhất: bx + c = (txtB, txtC, btnGiai, txtKQ) - Thêm vào button Dừng, nhắp vào button dừng chƣơng trình 22 Viết chƣơng trình giải phƣơng trình bậc hai: