Bài tập thực hành lập trình winform bài 4

6 489 2
Bài tập thực hành lập trình winform   bài 4

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

Thông tin tài liệu

Mục tiêu  Biết cách sử dụng control menu, toolbar, status bar  Tạo custom control theo mục đích sử dụng Nội dung Làm việc với control menu  MenuStrip dạng control chứa list control con, thành phần item kế thừa từ ToolStripItem  Chọn control MenuStrip từ ToolBox  Lựa chọn MenuItem giao diện design  Thay đổi nội dung designer  Bản chất MenuItem control (tương đương Button) nên cần đặt (Name) rõ ràng để dễ thao tác  Tiếp tục tạo thêm thành phần kiểu ComboBox TextBox Đặt (Name) tscbMenu tstxtMenu  Tiếp tục tạo thành phần Menu lv.1 giao diện designer đơn giản  Tạo phương thức xử lý event Click item dạng MenuItem (lưu ý MenuStrip với thành phần item dạng phân cấp nên giống TreeView MenuItem có thuộc tính DropDownItems giữ item con) public partial class frmMain : Form { public frmMain() { InitializeComponent(); InitMenuStrip(); } void InitMenuStrip() { //duyệt qua item MenuStrip //các thành phần thừa kế từ ToolStripItem foreach (ToolStripItem item in menuStrip1.Items) { //kiểm tra có phải ToolStripMenuItem không ToolStripMenuItem tsmi = item as ToolStripMenuItem; if (tsmi != null) { tsmi.Click += new EventHandler(menuItemClick); ProcessMenuItem(tsmi); } } } //phương thức duyệt item MenuItem void ProcessMenuItem(ToolStripMenuItem tsmi) { foreach (ToolStripItem item in tsmi.DropDownItems) { //kiểm tra có phải ToolStripMenuItem không ToolStripMenuItem tsmiCur = item as ToolStripMenuItem; if (tsmiCur != null) { tsmiCur.Click += new EventHandler(menuItemClick); ProcessMenuItem(tsmiCur); } } } //phương thức xử lý event click MenuItem void menuItemClick(object sender, EventArgs e) { ToolStripMenuItem mi = sender as ToolStripMenuItem; MessageBox.Show(string.Format("{0} clicked", mi.Text)); } }  Tạo item cho ComboBox public frmMain() { InitializeComponent(); InitMenuStrip(); InitMenuComboBox(); } void InitMenuComboBox() { for (int i = 0; i < 10; i++) { tscbMenu.Items.Add(i.ToString()); } tscbMenu.SelectedIndex = 0; tscbMenu.DropDownStyle = ComboBoxStyle.DropDownList; } Làm việc với control ToolStrip (ToolBar)  Tương tự MenuStrip, chủ yếu khác biệt cách trình bày item ToolStrip control dẫn suất từ ToolStripItem  Lưu ý cần nhớ ToolStrip chứa dạng Menu control DropDownButton Làm việc với StatusStrip ContextMenuStrip Tự tìm hiểu hoàn toàn tương tự MenuStrip ToolStrip đơn giản Tạo Custom Control theo mục đích sử dụng Xét mục đích cần TextBox cho nhập số khoảng giá trị xác định  Thêm class vào project đặt tên MyTextBox  Thực code sau: public class MyTextBox : TextBox { //giá trị chặn int minValue; public int MinValue { get { return minValue; } set { minValue = value; if (minValue > MaxValue) { int temp = minValue; minValue = maxValue; maxValue = temp; } } } //giá trị chặn int maxValue; public int MaxValue { get { return maxValue; } set { int temp = minValue; minValue = maxValue; maxValue = temp; } } //sử dụng biến lưu giá trị để thực việc //trả giá trị ban đầu nhập vào giới hạn int curValue = 0, oldValue = 0; //xử lý event nhấn phím để kiểm soát giá trị nhập vào protected override void OnKeyPress(KeyPressEventArgs e) { //kiểm tra phím nhập vào //là ký số hay phím điều khiển dừng if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) { //xác định dừng event e.Handled = true; return; } //kiểm tra để lưu giá trị int.TryParse(Text, out curValue); if (curValue > maxValue) { curValue = oldValue; e.Handled = true; return; } else { oldValue = curValue; } base.OnKeyPress(e); } //khôi phục lại giá trị sau kết thúc nhập //đó lúc nhả phím protected override void OnKeyUp(KeyEventArgs e) { int value = int.Parse(Text); if (value < MinValue) { //Text = MinValue.ToString(); Text = curValue.ToString(); } if (value > MaxValue) { //Text = MaxValue.ToString(); Text = curValue.ToString(); } base.OnKeyUp(e); } } Bài tập Thực hoàn chỉnh ví dụ ... MaxValue) { //Text = MaxValue.ToString(); Text = curValue.ToString(); } base.OnKeyUp(e); } } Bài tập Thực hoàn chỉnh ví dụ ... cần đặt (Name) rõ ràng để dễ thao tác  Tiếp tục tạo thêm thành phần kiểu ComboBox TextBox Đặt (Name) tscbMenu tstxtMenu  Tiếp tục tạo thành phần Menu lv.1 giao diện designer đơn giản  Tạo phương... InitializeComponent(); InitMenuStrip(); } void InitMenuStrip() { //duyệt qua item MenuStrip //các thành phần thừa kế từ ToolStripItem foreach (ToolStripItem item in menuStrip1.Items) { //kiểm tra

Ngày đăng: 22/01/2016, 18:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan