Chuong 3 - 3.5

You might also like

You are on page 1of 6

Lập trình ứng dụng trong kỹ thuật Chương 2

CHƯƠNG 3 : LẬP TRÌNH GIAO DIỆN CƠ BẢN –


CÁC ĐỐI TƯỢNG GIAO DIỆN CƠ BẢN
(COMMON CONTROLS)

5. ListBox:
ListBox hiểu đơn thuần là một hộp nhỏ (vùng/ khung dữ liệu) chứa các danh sách dữ liệu
được sắp xếp liền kề nhau theo chiều thẳng đứng. Mỗi phần từ trong danh sách đó gọi là 1 item,
mỗi item có chứa 1 biến duy nhất kiểu string, nghĩa là mọi dữ liệu để lưu trữ trong ListBox đều
phải chuyển về dạng String. Trong ListBox không thể chứa ListBox con khác.
Cũng như các control khác, chúng ta khởi tạo Listbox từ hộp công cụ Toolbox bằng cách
kéo thả; Bảng properties để thay đổi các thuộc tính và xác lập sự kiện (event).
Thuộc tính của ListBox:
Các thuộc tính và phương thức quan trọng của ListBox.
Items : thuộc tính quan trọng nhất của ListBox: quản lý các phần tử thuộc ComboBox. Các
tương tác với ListBox hầu hết đều thông qua Items.
Items.Count: Trả về số lượng phần tử có trong ListBox.
Items[i] : truy xuất đến phần tử thứ i của ListBox.
Items.Add(): Thêm phần tử vào ListBox.
Items.Remove(): Xóa phần tử khỏi ListBox.
Items.Clear(): Xóa toàn bộ phần tử của ListBox.
SelectedItem : Trả về giá trị của phần tử đang được chọn.
VD : this.TB1.Text = this.CB1.SelectedItem;
SelectedIndex: Trả về chỉ số của phần tử đang được chọn trong ListBox. Chỉ số phần từ là
một số nguyên bắt đầu từ 0. Hoặc thiết lập để định vị phần tử được chọn thông qua chỉ số
VD : this.TB1.Text = Convert.ToString(this.CB1.SelectedIndex);
DataSource : Đổ dữ liệu vào ListBox. Dữ liệu đưa vào phải có cấu trúc danh sách,
mảng….
SelectionMode : Cho phép thay đổi cách chọn phần tử của ListBox (mặc định là One: chỉ
được chọn 1 phần tử)

Bộ môn Cơ điện tử Trang 1


Lập trình ứng dụng trong kỹ thuật Chương 2

Lưu ý : Trong thay đổi SelectionMode để cho phép chọn nhiều phần tử, khi chọn nhiều hơn 1
phần tử, thì thuộc tính quản lí giá trị của các phần tử được chọn và chỉ số của các phần tử được
chọn là SelectedItems và SelectedIndices.

Sự kiện của Listbox:


Cũng như các control khác trong thư viện DotNet, ListBox được hỗ trợ với nhiều Event
khác nhau, đầy đủ cho mọi trường hợp, mọi biến cố. Nhưng tất nhiên không phải khi nào cũng sử
dụng hết các Event đó, một Event thiết nghĩ được dùng nhiều nhất đó là SelectedIndexChanged().
Event này sinh ra khi có sự thay đổi lựa chọn các phần tử trên ListBox.
SelectedIndexChanged : sự kiện xảy ra khi ta thay đổi lựa chọn các phần tử của Listbox.
Bây giờ chúng ta sẽ viết một chương trình đơn giản: Chương trình nhập/xóa dữ liệu của
Listbox.
Để thêm, bớt phần tử cho ListBox ta sẽ làm việc qua thuộc tính Items. Để thêm phần ttử
cho ListBox ta dùng phương thức Add(): ListBox1.Item.Add(“Nội dung cần thêm”) Phần tử mới
thêm vào sẽ nằm dưới cùng của ListBox. Ngoài ra chúng ta cũng có thể thêm phần cho listBox
thông qua thuộc tính DataSource, dữ liệu đổ vào cho DataSource là một tập hợp danh sách, có thể
là List, ArrayList… Để xóa một phần từ khỏi listBox ta dùng 1 trong 2 phương thức: Remove()
hoặc RemoveAt(). Trong đó: Phương thức Remove() nhận đối số là 1 chuỗi, chương trình sẽ tìm
và xóa item nào có giá trị bằng chuỗi đưa vào đó; Còn phương thức RemoveAt() nhận đối số là
chỉ số (số thứ tự) của item trong listBox. Số thứ tự sẽ tính từ 0.
Đầu tiên chúng ta chọn đối tượng tương ứng trong toolbox và thêm vào trong Form. Sau đó
đặt tên cho đối tượng này là TB1 (TextBox) L1(Listbox) như hình dưới.

Sau đó chọn event Click đối với từng Button và gọi ra Delegate tương ứng. Trong Delegate
vừa được khởi tạo, chúng ta sẽ viết thêm câu lệnh để thực hiện yêu cầu của chương trình:
Button Add: khi nhấn Add thì thêm vào phần tử bằng cách nhập vào TextBox
private: System.Void BT1_Click(System.Object sender, System.EventArgs e) {
this.L1.Items.Add(this.TB1.Text);
}
Button Remove: khi nhấn Remove thì xóa phần tử được chọn của Listbox
private: System.Void BT2_Click(System.Object sender, System.EventArgs e) {
Bộ môn Cơ điện tử Trang 2
Lập trình ứng dụng trong kỹ thuật Chương 2

this.L1.Items.Remove(this.L1.SelectedItem);
}
Button Clear: khi nhấn Clear thì xóa toàn bộ phần tử của Listbox
private: System.Void BT3_Click(System.Object sender, System.EventArgs e) {
this.L1.Items.Clear();
}
6. ComboBox:
ComboBox là một control trong đó chứa danh sách các phần tử (gọi là các Item), các
phần có giá trị string và được gán index để truy xuất. Khác với ListBox có thể hiển thị tất cả các
giá trị cùng lúc, còn ComboBox chỉ có thể hiển thị duy nhất 1 kết quả.
Cũng như các control khác, chúng ta khởi tạo Combobox từ hộp công cụ Toolbox bằng
cách kéo thả; Bảng properties để thay đổi các thuộc tính và xác lập sự kiện (event).
Thuộc tính của ComboBox:
Combobox và ListBox cũng có các thuộc tính chung tương tự như các control khác như:
Name, Visible… (Lưu ý là ListBox không có thuộc tính Text).
Các thuộc tính và phương thức quan trọng của ComboBox.
Items : thuộc tính quan trọng nhất của ComboBox: quản lý các phần tử thuộc ComboBox.
Các tương tác với ComboBox hầu hết đều thông qua Items.
Items.Count: Trả về số lượng phần tử có trong ComboBox.
Items[i] : truy xuất đến phần tử thứ i của ComboBox.
Items.Add(): Thêm phần tử vào ComboBox.
Items.Remove(): Xóa phần tử khỏi ComboBox.
Items.Clear(): Xóa toàn bộ phần tử của ComboBox.
SelectedItem : Trả về giá trị của phần tử đang được chọn.
VD : this.TB1.Text = this.L1.SelectedItem;
SelectedIndex: Trả về chỉ số của phần tử đang được chọn trong ComboBox. Chỉ số phần
từ là một số nguyên bắt đầu từ 0. Hoặc thiết lập để định vị phần tử được chọn thông qua chỉ số
VD : this.TB1.Text = Convert.ToString(this.L1.SelectedIndex);
DataSource : Đổ dữ liệu vào ComboBox. Dữ liệu đưa vào phải có cấu trúc danh sách,
mảng….
SelectionMode : Cho phép thay đổi cách chọn phần tử của ComboBox (mặc định là One:
chỉ được chọn 1 phần tử)
Lưu ý : Trong thay đổi SelectionMode để cho phép chọn nhiều phần tử, khi chọn nhiều hơn 1
phần tử, thì thuộc tính quản lí giá trị của các phần tử được chọn và chỉ số của các phần tử được
chọn là SelectedItems và SelectedIndices.

Bộ môn Cơ điện tử Trang 3


Lập trình ứng dụng trong kỹ thuật Chương 2

Sự kiện của ComboBox:


Cũng như Listbox, sự kiện quan trọng nhất của ComboBox là SelectedIndexChanged().
Event này sinh ra khi có sự thay đổi lựa chọn các phần tử trên ComboBox.
SelectedIndexChanged : sự kiện xảy ra khi ta thay đổi lựa chọn các phần tử của
ComboBox.
Bây giờ chúng ta sẽ viết một chương trình đơn giản: Chương trình nhập/xóa dữ liệu của
ComboBox và kiểm tra vị trí của phần tử được xóa.
Việc thêm và phần tử của ComboBox tương tự như ListBox.
Đầu tiên chúng ta chọn đối tượng tương ứng trong toolbox và thêm vào trong Form. Sau đó
đặt tên cho đối tượng này là TBx (TextBox), CB1(ComboBox), RBx(RadioButton) như hình
dưới.
Hoạt động của chương trình như sau:
- Chọn thêm hoặc xóa phần tử nhờ 2 Radio button (Add Item và Remove Item) : Khi chọn
Add Item thì button sẽ hiển thị chữ Add, khi chọn Remove Item sẽ hiển thị chữ Romove.
- Khi thêm phần tử: Nhập giá trị muốn thêm vào TextBox và nhấn Add.
- Khi xóa phần tử: Cho phép chọn lựa xóa theo giá trị của phần tử hay vị trí của phần tử nhờ
2 RadioButton At Item hay At Index; khi chọn At Item sẽ cho phép chọn trực tiếp giá trị
muốn xóa trên Combobox, khi chọn At Index sẽ cho phép nhập vị trí của phần tử muốn
xóa.
- Khi chọn lựa phần tử trực tiếp trên Combobox: Hiển thị vị trí và nội dung của phần tử được
chọn cũng như số lượng phần tử của Combobox

Sau đó chọn các event phù hợp và gọi ra Delegate tương ứng. Trong Delegate vừa được
khởi tạo, chúng ta sẽ viết thêm câu lệnh để thực hiện yêu cầu của chương trình:
RadioButton Add và Remove: khi chọn Add hoặc Remove thì sẽ thay đổi Text của
Button.
private: System.Void RB1_CheckedChanged(System.Object sender, System.EventArgs e) {

Bộ môn Cơ điện tử Trang 4


Lập trình ứng dụng trong kỹ thuật Chương 2

if(this.RB1.Checked)
this.BT1.Text = “Add”;
}

private: System.Void RB2_CheckedChanged(System.Object sender, System.EventArgs e) {


if(this.RB2.Checked)
this.BT1.Text = “Remove”;
}

RadioButton At Item và At Index:


private: System.Void RB3_CheckedChanged( System.Object sender, System.EventArgs e){
if(this.RB1.Checked && this.RB3.Checked)
this.TB1.Enabled = false; //Không cho tương tác với TextBox.
}

private: System.Void RB4_CheckedChanged(System.Object sender, System.EventArgs e) {


if(this.RB4.Checked)
this.TB1.Enabled = true; //Cho phép tương tác với TextBox.
}
Button: tùy vào trạng thái của các RadioButton mà hoạt động của Button sẽ khác nhau.
private: System.Void BT1_Click(System.Object sender, System.EventArgs e) {
if(this.RB1.Checked) //Trường hợp Add thêm phần tử
this.CB1.Items.Add(this.TB1.Text);

if(this.RB2.Checked) //Trường hợp Xóa phần tử


{
if(this.RB3.Checked) //Trường hợp xóa phần tử qua giá trị.
{
for (int i = 0; i<this.CB1.Items.Count;i++)
{
if(this.TB1.Text == this.CB1.Items[i].ToString())
this.CB1.Items.Remove(this.CB1.Items[i]);
}
}
if(this.RB4.Checked) //Trường hợp xóa phần tử qua chỉ số.
{

Bộ môn Cơ điện tử Trang 5


Lập trình ứng dụng trong kỹ thuật Chương 2

int i = Convert.ToInt32(this.TB1.Text);
this.CB1.Items.Remove(this.CB1.Items[i]);
}
}
ComboBox: Khi chọn lựa phần tử của ComboBox, hiển thị các thông số của ComboBox
lên các Textbox tương ứng
private: System.Void CB1_CheckedChanged(System.Object sender, System.EventArgs e) {
this.TB2.Text = Convert.ToString(this.CB1.SelectedIndex);
this.TB3.Text = Convert.ToString(this.CB1.SelectedIndex);
this.TB4.Text = Convert.ToString(this.CB1.SelectedIndex);
}

Bộ môn Cơ điện tử Trang 6

You might also like