1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Huong dan bai tap form co ban

21 96 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

HƯỚNG DẪN THỰC HIỆN BÀI TẬP XỬ LÝ TRÊN FORM CƠ BẢN Mục tiêu: Giúp sinh viên hiểu nắm bắt số vấn đề: Hiểu nguyên tắc thiết kế lớp đối tượng Sử dụng lớp có sẵn tập lập trình có giao diện Một số thao tác xử lý kiện Form Bài tập: Hãy thiết kế giao diện theo Hình cài đặt xử lý tương ứng theo u cầu Hình Màn hình (FormChinh) Yêu cầu: Khi nhấn nút “Nhập phân số 1”, “Nhập phân số 2” form nhập Hình (hiển thị dạng Modal Form) Hình Màn hình nhập phân số (FormNhap) Chỉ cho phép FormChinh Taskbar Thực phép tính tương ứng Xác nhận nhấn nút “Thoát” Hướng dẫn thực Phân tích tập Trang 1/21 • Yêu cầu tập có thao tác xử lý phân số, cần phải xây dựng lớp phân số để xử lý tính tốn • Lớp phân số nên tạo độc lập riêng với tập nhằm sử dụng cho tập khác (nên đặt chung solution với tập để dễ dàng quản lý viết code) • Lớp phân số lớp tiện ích bao gồm thao tác xử lý tính tốn nên cần tạo ứng dụng dạng Console Các bước thực (Các minh họa thực công cụ MS Visual Studio 2015, ngơn ngữ C#) Bước Nếu có Solution (ví dụ có sẵn Solution với tên CSharpForWindows) cần tạo thêm Project để tạo lớp Phân số (PhanSo) vào Solution có (Hình 3) Nếu chưa có sẵn Solution chuyển sang Bước Click phải vào Solution CSharpForWindows cửa sổ Solution Explorer (menu View\Solution Explorer) Chọn Add\New Project… (Hình 3) Hình Thêm Project vào Solution có sẵn Đặt tên Project ProjectPhanSo (Hình - lưu ý không thay đổi thông tin mặc định khác) Trang 2/21 Hình Đặt tên cho Project Bước Tạo Solution trường hợp chưa có Chọn menu File\New\Project (Hình 5) Hình Tạo Project Chọn Templates C#\Windows\Console Application, tên Project ProjectPhanSo tên Solution CSharpForWindows (Hình 6) Trang 3/21 Hình Tạo Solution Project Bước Tạo lớp Phân số (PhanSo) Click phải vào ProjectPhanSo, chọn Add\Class… (Hình 7) Trang 4/21 Hình Tạo lớp PhanSo Đặt tên lớp PhanSo (Hình 8), chọn nút Add Hình Đặt tên cho lớp Trang 5/21 Bước Viết code cho lớp PhanSo (Hình 9) – public class để truy xuất Project namespace ProjectPhanSo { public class PhanSo { private int tu; private int mau; // Tạo property // Tạo constructors: default, parameter (2 tham số) copy // Định nghĩa phương thức: cộng, trừ, nhân, chia // (có rút gọn thành phân số tối giản) // Định nghĩa operator: +, -, *, / } } Hình Lớp PhanSo Trang 6/21 Bước Chạy thử chức lớp PhanSo phương thức Main() file Program.cs Bước Tạo thêm Project (Hình 10) vào Solution CSharpForWindows đặt tên ProjectFormPhanSo (thực tương tự Bước chọn Template C#\Windows\Windows Forms Application) Hình 10 Thêm ProjectFormPhanSo vào Solution hành Bước Chọn Project thực chạy chương trình: Click phải vào ProjectFormPhanSo chọn Set as StartUp Project (Hình 11) Trang 7/21 Hình 11 Thiết lập ProjectFormPhanSo thực thi chạy chương trình Bước Đổi tên Form1 (được tạo mặc định từ công cụ) thành tên FormChinh Trong cửa sổ Solution Explorer, click phải vào Form1 chọn Rename (Hình 12) Trang 8/21 Hình 12 Đổi tên Form1 Đặt tên FormChinh (Hình 13) Chọn Yes có xuất hộp thoại (Hình 11) Kiểm tra tên đổi Hình 14 Hình 13 Xác nhận đổi tên Form1 Trang 9/21 Hình 14 Form1 sau đổi tên thành FormChinh Bước Thiết kế giao diện cho FormChinh Tên Form: Đã tự động đặt tên FormChinh (Bước 8) Bật cửa sổ đặt thuộc tính cho FormChinh (Hình 15): Click phải vào FormChinh chế độ Design, chọn Property (Để mở chế độ Design Form cách double click vào biểu tượng cửa sổ Solution Explorer) Trang 10/21 Hình 15 Đặt thuộc tính cho FormChinh Trong cửa sổ thuộc tính Form đặt tên Form (name), tiêu đề Form (Text) Hình 16 minh họa đặt tiêu đề cho Form Trang 11/21 Hình 16 Thiết lập thuộc tính cho FormChinh Thiết kế giao diện cách chọn control tương ứng Toolbox (Hình 17) Toolbox thường nằm bên trái của sổ design (nếu khơng có chọn menu View\Toolbox) Hình 17 Các control dùng thiết kế giao diện Trang 12/21 Hình 18 Giao diện FormChinh chương trình Lưu ý: Mỗi control cần phải đặt tên (trong Property name) trước viết code xử lý Hình 18 gồm: buttons, textboxs, labels groupbox Trong labels groupbox không cần đặt tên, cần thay đổi thuộc tính Text để hiển thị chữ tương ứng Form (trong ngữ cảnh tập không xử lý đến control này) - Tên control sau: o Nút Nhập phân số 1: btnNhapPhanSo1 o Nút Nhập phân số 2: btnNhapPhanSo2 o Nút Tổng: btnTong o Nút Hiệu: btnHieu o Nút Tích: btnTich o Nút Thoát: btnThoat o Textbox tử phân số 1: txtTu1 (Enable = false, ReadOnly = true) o Textbox mẫu phân số 1: txtMau1 (Enable = false, ReadOnly = true) o Textbox tử phân số 2: txtTu2 (Enable = false, ReadOnly = true) o Textbox mẫu phân số 2: txtMau2 (Enable = false, ReadOnly = true) o Textbox tử kết quả: txtKQTu (Enable = false, ReadOnly = true) o Textbox mẫu kết quả: txtKQMau (Enable = false, ReadOnly = true) - Bước 10 Thiết kế giao diện cho Form nhập phân số (FormNhapPhanSo) Tạo thêm Form ProjectFormPhanSo: Click phải vào ProjectFormPhanSo chọn Add\Windows Form… (Hình 19) Trang 13/21 Hình 19 Thêm Form vào ProjectFormPhanSo Đặt tên cho Form: FormNhapPhanSo (Hình 20) Hình 20 Tạo FormNhapPhanSo Trang 14/21 Thiết kế giao diện FormNhapPhanSo (Hình 21) Hình 21 Giao diện FormNhapPhanSo - Tên control sau: o Nút Chấp nhận: o Nút Thoát: o Textbox Tử số: o Textbox Mẫu số: btnChapNhan btnThoat txtTu txtMau Bước 11 Tham chiếu đến ProjectPhanSo Trong chương trình, Form có sử dụng đối tượng PhanSo để khởi tạo tính tốn Trong đó: - FormChinh cần lưu phân số thứ 1, phân số thứ phân số kết tính FormNhapPhanSo cần lưu phân số nhập từ bàn phím Chính vậy, Form phải khai báo đối tượng PhanSo để lưu trữ thông tin phân số Nghĩa ta cần phải sử dụng lớp PhanSo tập Do đó, việc phải khai báo tham chiếu đến ProjectPhanSo Trong cửa sổ Solution Explorer, click phải vào ProjectFormPhanSo (project thiết kế Form) chọn Add\Reference… (Hình 22) Trang 15/21 Hình 22 Tham chiếu đến ProjectPhanSo Chọn ProjectPhanSo nhấn OK (Hình 23) Hình 23 Chọn Project cần tham chiếu Kiểm tra mục References ProjectFormPhanSo Solution Explorer xem có xuất ProjectPhanSo vừa tham chiếu (Hình 24) Trang 16/21 Hình 24 Kiểm tra danh sách References Project Bước 12 Viết code cho FormNhapPhanSo Mở FormNhapPhanSo chế độ Design, click phải vào Form chọn View Code (Hình 25) Hình 25 Mở cửa sổ code FormNhapPhanSo Khai báo Fields lệnh liên quan đến Fields: - Sử dụng namespace: using ProjectPhanSo; - Khai báo Fields: PhanSo ps; - Tạo Property get cho ps - Viết thêm lệnh khởi tạo default constructor: public FormNhapPhanSo() using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; ProjectPhanSo; //Bổ sung namespace ProjectFormPhanSo { public partial class FormNhapPhanSo : Form Trang 17/21 { private PhanSo ps; //Bổ sung public PhanSo Ps //Bổ sung { get { return ps; } set { ps = value; } } public FormNhapPhanSo() { InitializeComponent(); ps = new PhanSo(); //Bổ sung } } } Xử lý kiện cho nhập tử số (sự kiện TextChanged): Lấy liệu nhập textbox tử số - Click phải vào ô textbox nhập tử số (txtTu), chọn Properties (Hình 26) Hình 26 Xử lý kiện cho nhập tử số - Chọn event (biểu tượng ) cửa sổ Property (Hình 27) Trang 18/21 Hình 27 Chọn kiện TextChanged - Chọn kiện TextChanged, nhấn Enter (hoặc double click chuột) bổ sung lệnh cho phương thức vừa sinh private void txtTu_TextChanged(object sender, EventArgs e) { int tu; int.TryParse(txtTu.Text, out tu); ps.Tu = tu; } Xử lý kiện cho nhập mẫu số: Lặp lại thao tác cho textbox mẫu số Xử lý kiện cho nhấn nút Chấp nhận - Chọn kiện Click cho nút Chấp nhận - Viết code: Gắn kết trả đóng Form OK private void btnChapNhan_Click(object sender, EventArgs e) { //Chưa xử lý trường hợp chưa nhập giá trị vào tử mẫu DialogResult = DialogResult.OK; Close(); } Xử lý kiện cho nhấn nút Thoát - Chọn kiện Click cho nút Thoát - Viết code: Xác nhận thoát gắn kết trả đóng Form Cancel Trang 19/21 private void btnThoat_Click(object sender, EventArgs e) { DialogResult kq = MessageBox.Show(this, "Bạn có muốn thốt?", "Đóng Form", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (kq == DialogResult.Yes) DialogResult = DialogResult.Cancel; } Bước 13 Viết code cho FormChinh Chọn View code FormChinh Khai báo Fields lệnh liên quan đến Fields: - Sử dụng namespace: using ProjectPhanSo; - Khai báo Fields: PhanSo ps1, ps2, kq; Viết thêm lệnh khởi tạo default constructor: public FormChinh() using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; ProjectPhanSo; namespace ProjectFormPhanSo { public partial class FormChinh : Form { private PhanSo ps1; private PhanSo ps2; private PhanSo kq; public FormChinh() { InitializeComponent(); ps1=new PhanSo(); ps2 = new PhanSo(); kq = new PhanSo(); } } } Trang 20/21 Xử lý kiện Click cho nút Nhập phân số private void btnNhapPhanSo1_Click(object sender, EventArgs e) { FormNhapPhanSo frmNhap = new FormNhapPhanSo(); if (frmNhap.ShowDialog() == DialogResult.OK) { ps1 = new PhanSo(frmNhap.Ps); txtTu1.Text = ps1.Tu.ToString(); txtMau1.Text = ps1.Mau.ToString(); } } Xử lý kiện Click cho nút Nhập phân số 2: tương tự Nhập phân số Xử lý kiện Click cho nút Tổng private void btnTong_Click(object sender, EventArgs e) { kq = ps1 + ps2; txtKQTu.Text = kq.Tu.ToString(); txtKQMau.Text = kq.Mau.ToString(); } Xử lý kiện Click cho nút Hiệu, Tích: tương tự ví dụ Xử lý kiện Click cho nút Thoát private void btnThoat_Click(object sender, EventArgs e) { Close(); } Xác nhận cho kiện đóng Form (FormClosing) private void FormChinh_FormClosing(object sender, FormClosingEventArgs e) { DialogResult kq = MessageBox.Show(this, "Bạn có muốn thốt?", "Đóng Form", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (kq == DialogResult.Yes) e.Cancel = false; else e.Cancel = true; } Trang 21/21

Ngày đăng: 05/11/2019, 06:13

TỪ KHÓA LIÊN QUAN

w