1. Trang chủ
  2. » Công Nghệ Thông Tin

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

6 489 2

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 514,3 KB

Nội dung

Mục tiêu  Biết cách sử dụng các 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 các control menu  MenuStrip cũng là dạng contr

Trang 1

Mục tiêu

 Biết cách sử dụng các 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 các control menu

 MenuStrip cũng là dạng control chứa list các control con , các thành phần item chính là

các kế thừa từ ToolStripItem

 Chọn control MenuStrip từ ToolBox

 Lựa chọn MenuItem trên giao diện design

 Thay đổi nội dung trên designer

Trang 2

 Bản chất MenuItem cũng là 1 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 và TextBox Đặt (Name) lần lượt là

tscbMenu và tstxtMenu

 Tiếp tục tạo các thành phần con của Menu lv.1 trên giao diện designer rất đơn giản

Trang 3

 Tạo phương thức xử lý event Click của các item dạng MenuItem (lưu ý vì MenuStrip với thành phần item cũng là dạng phân cấp nên cũng giống như TreeView thì mỗi MenuItem đều có thuộc tính DropDownItems giữ các item con)

public partial class frmMain : Form

{

public frmMain()

{

InitializeComponent();

InitMenuStrip();

}

void InitMenuStrip()

{

//duyệt qua các item của MenuStrip

//các thành phần con đều là thừa kế từ ToolStripItem

foreach (ToolStripItem item in menuStrip1.Items)

{

//kiểm tra có phải là ToolStripMenuItem không

ToolStripMenuItem tsmi = item as ToolStripMenuItem;

if (tsmi != null)

{

tsmi.Click += new EventHandler(menuItemClick);

ProcessMenuItem(tsmi);

}

}

}

//phương thức duyệt các item là MenuItem

void ProcessMenuItem(ToolStripMenuItem tsmi)

{

foreach (ToolStripItem item in tsmi.DropDownItems)

{

//kiểm tra có phải là 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 của MenuItem

void menuItemClick(object sender, EventArgs )

{

ToolStripMenuItem mi = sender as ToolStripMenuItem;

MessageBox.Show(string.Format("{0} clicked", mi.Text));

}

}

 Tạo các item cho ComboBox

public frmMain()

{

Trang 4

InitializeComponent();

InitMenuStrip();

InitMenuComboBox();

}

void InitMenuComboBox()

{

for (int = 0; i < 10; i++)

{

tscbMenu.Items.Add( ToString());

}

tscbMenu.SelectedIndex = 0;

tscbMenu.DropDownStyle = ComboBoxStyle.DropDownList;

}

Làm việc với control ToolStrip (ToolBar)

 Tương tự MenuStrip, chủ yếu là khác biệt về cách trình bày vì các item của ToolStrip

cũng là các control dẫn suất từ ToolStripItem

 Lưu ý cần nhớ là trong ToolStrip cũng chứa dạng Menu đó chính là control

DropDownButton

Làm việc với StatusStrip và ContextMenuStrip

Tự tìm hiểu vì hoàn toàn tương tự MenuStrip và ToolStrip nhưng đơn giản hơn

Tạo Custom Control theo mục đích sử dụng

Xét mục đích cần TextBox chỉ cho nhập số trong khoảng giá trị xác định

 Thêm 1 class vào project và đặt tên là MyTextBox

 Thực hiện code như sau:

public class MyTextBox : TextBox

Trang 5

{

//giá trị chặn dưới

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 trên

int maxValue;

public int MaxValue

{

get { return maxValue; }

set

{

int temp = minValue;

minValue = maxValue;

maxValue = temp;

}

}

//sử dụng 2 biến lưu giá trị để thực hiện việc

//trả về giá trị ban đầu khi nhập vào quá 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 ) {

//kiểm tra nếu phím nhập vào không phải

//là ký số hay phím điều khiển thì dừng

if (!char.IsControl( KeyChar) &&

!char.IsDigit( KeyChar))

{

//xác định dừng event

e Handled = true;

return;

}

//kiểm tra để lưu giá trị hiện tại

int.TryParse(Text, out curValue);

if (curValue > maxValue)

{

curValue = oldValue;

e Handled = true;

return;

}

else

Trang 6

{

oldValue = curValue;

}

base.OnKeyPress( );

}

//khôi phục lại giá trị sau khi kết thúc nhập

//đó là lúc nhả phím

protected override void OnKeyUp(KeyEventArgs ) {

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( );

}

}

Bài tập

Thực hiện hoàn chỉnh các ví dụ ở trên

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

TỪ KHÓA LIÊN QUAN

w