131
LAB REPORT DotNetFrameword Student:TRAN VAN VU ID:10341731 Class:DHTH4BTLT

Tranvanvu Report

Embed Size (px)

Citation preview

Page 1: Tranvanvu Report

LAB REPORTDotNetFrameword

Student:TRAN VAN VU

ID:10341731

Class:DHTH4BTLT

Content

Page 2: Tranvanvu Report

Module 1...................................................................................................................................................11

Exercise1................................................................................................................................................11

Problem.............................................................................................................................................11

Mục đích............................................................................................................................................11

Yêu cầu..............................................................................................................................................11

Code Listing.......................................................................................................................................12

Execution Result................................................................................................................................14

Exercise2................................................................................................................................................14

Problem.................................................................................................................................................14

Mục đích............................................................................................................................................14

Yêu cầu..............................................................................................................................................14

Code Listing.......................................................................................................................................15

Execution Result................................................................................................................................17

Exercise 3...............................................................................................................................................17

Problem.................................................................................................................................................17

Mục đích............................................................................................................................................17

Yêu cầu..............................................................................................................................................17

Code Listing.......................................................................................................................................17

Execution Result................................................................................................................................20

Module 2 : Textbox, Button, Radiobutton, Checkbox................................................................................23

Exercise1................................................................................................................................................23

Problem.................................................................................................................................................23

Mục đích............................................................................................................................................23

Yêu cầu..............................................................................................................................................23

Code Listing.......................................................................................................................................23

Execution Result................................................................................................................................25

Exercise2................................................................................................................................................25

Problem.................................................................................................................................................25

Mục đích............................................................................................................................................25

Yêu cầu..............................................................................................................................................25

Code Listing.......................................................................................................................................25

Execution Result................................................................................................................................27

Page 3: Tranvanvu Report

Exercise3................................................................................................................................................28

Problem.................................................................................................................................................28

Mục đích............................................................................................................................................28

Yêu cầu..............................................................................................................................................28

Code Listing.......................................................................................................................................28

Execution Result................................................................................................................................29

Exercise4................................................................................................................................................30

Problem.................................................................................................................................................30

Mục đích............................................................................................................................................30

Yêu cầu..............................................................................................................................................30

Code Listing.......................................................................................................................................30

Execution Result................................................................................................................................33

Exercise5................................................................................................................................................34

Problem.................................................................................................................................................34

Mục đích............................................................................................................................................34

Yêu cầu..............................................................................................................................................34

Code Listing.......................................................................................................................................34

Execution Result................................................................................................................................36

Exercise6................................................................................................................................................37

Problem.................................................................................................................................................37

Mục đích............................................................................................................................................37

Yêu cầu..............................................................................................................................................37

Code Listing.......................................................................................................................................37

Execution Result................................................................................................................................42

Module 3 : ListBox, Combobox, CheckListBox GroupBox, Panel & TabControl.........................................43

Exercise1................................................................................................................................................43

Problem.................................................................................................................................................43

Mục đích............................................................................................................................................43

Yêu cầu..............................................................................................................................................43

Code Listing.......................................................................................................................................43

Execution Result................................................................................................................................46

Exercise2................................................................................................................................................47

Page 4: Tranvanvu Report

Problem.................................................................................................................................................47

Mục đích............................................................................................................................................47

Yêu cầu..............................................................................................................................................47

Code Listing.......................................................................................................................................47

Execution Result................................................................................................................................49

Exercise3................................................................................................................................................50

Problem.................................................................................................................................................50

Mục đích............................................................................................................................................50

Yêu cầu..............................................................................................................................................50

Code Listing.......................................................................................................................................50

Execution Result................................................................................................................................52

Exercise4................................................................................................................................................53

Problem.................................................................................................................................................53

Mục đích............................................................................................................................................53

Yêu cầu..............................................................................................................................................53

Code Listing.......................................................................................................................................53

Execution Result................................................................................................................................55

Exercise5................................................................................................................................................56

Problem.............................................................................................................................................56

Mục đích............................................................................................................................................56

Yêu cầu..............................................................................................................................................56

Code Listing.......................................................................................................................................56

Execution Result................................................................................................................................57

Exercise6................................................................................................................................................58

Problem.................................................................................................................................................58

Mục đích............................................................................................................................................58

Yêu cầu..............................................................................................................................................58

Code Listing.......................................................................................................................................59

Execution Result................................................................................................................................62

Module : PictureBox, ImageList, TrackBar, NumericUpDown, DomainUpDown, ProgressBar..................63

Exercise1................................................................................................................................................63

Problem.................................................................................................................................................63

Page 5: Tranvanvu Report

Mục đích................................................................................................................................................63

Yêu cầu..................................................................................................................................................63

Code Listing...........................................................................................................................................63

Execution Result................................................................................................................................64

Exercise2................................................................................................................................................65

Problem.............................................................................................................................................65

Mục đích............................................................................................................................................65

Yêu cầu..............................................................................................................................................65

Code Listing.......................................................................................................................................65

Execution Result................................................................................................................................67

Exercise3................................................................................................................................................68

Problem.................................................................................................................................................68

Mục đích............................................................................................................................................68

Yêu cầu..............................................................................................................................................68

Code Listing.......................................................................................................................................69

Execution Result................................................................................................................................70

Exercise4................................................................................................................................................71

Problem.................................................................................................................................................71

Mục đích............................................................................................................................................71

Yêu cầu..............................................................................................................................................71

Code Listing.......................................................................................................................................71

Execution Result................................................................................................................................73

Exercise5................................................................................................................................................74

Problem.................................................................................................................................................74

Mục đích............................................................................................................................................74

Yêu cầu..............................................................................................................................................74

Code Listing.......................................................................................................................................75

Execution Result................................................................................................................................77

Module : MaskEditBox, DateTimePicker, MonthCalendar, Timer, ToolTip...............................................78

Exercise1................................................................................................................................................78

Problem.................................................................................................................................................78

Mục đích............................................................................................................................................78

Page 6: Tranvanvu Report

Yêu cầu..............................................................................................................................................78

Code Listing.......................................................................................................................................78

Execution Result................................................................................................................................79

Exercise2................................................................................................................................................79

Problem.................................................................................................................................................79

Mục đích............................................................................................................................................79

Yêu cầu..............................................................................................................................................79

Code Listing.......................................................................................................................................80

Execution Result................................................................................................................................81

Exercise3................................................................................................................................................82

Problem.................................................................................................................................................82

Mục đích............................................................................................................................................82

Yêu cầu..............................................................................................................................................82

Code Listing.......................................................................................................................................84

Execution Result................................................................................................................................87

Module : Mouse Event handling, Keyboard event handling......................................................................88

Exercise1................................................................................................................................................88

Problem.................................................................................................................................................88

Mục đích............................................................................................................................................88

Yêu cầu..............................................................................................................................................88

Code Listing.......................................................................................................................................88

Execution Result................................................................................................................................90

Exercise2................................................................................................................................................91

Problem.................................................................................................................................................91

Mục đích............................................................................................................................................91

Yêu cầu..............................................................................................................................................91

Code Listing.......................................................................................................................................91

Execution Result................................................................................................................................92

Exercise2................................................................................................................................................93

Problem.................................................................................................................................................93

Mục đích............................................................................................................................................93

Yêu cầu..............................................................................................................................................93

Page 7: Tranvanvu Report

Code Listing.......................................................................................................................................93

Execution Result................................................................................................................................95

Exercise3................................................................................................................................................96

Problem.................................................................................................................................................96

Mục đích............................................................................................................................................96

Yêu cầu..............................................................................................................................................96

Code Listing.......................................................................................................................................97

Execution Result................................................................................................................................99

...........................................................................................................................................................99

Exercise4................................................................................................................................................99

Problem.................................................................................................................................................99

Mục đích............................................................................................................................................99

Yêu cầu..............................................................................................................................................99

Code Listing.....................................................................................................................................100

Execution Result..............................................................................................................................103

Exercise5..............................................................................................................................................104

Problem...............................................................................................................................................104

Mục đích..........................................................................................................................................104

Yêu cầu............................................................................................................................................104

Code Listing.....................................................................................................................................104

Execution Result..............................................................................................................................106

Module 6 : ADVANCED CONTROLS..........................................................................................................108

Exercise1..............................................................................................................................................108

Problem...............................................................................................................................................108

Mục đích..........................................................................................................................................108

Yêu cầu............................................................................................................................................108

Code Listing.....................................................................................................................................108

Execution Result..............................................................................................................................109

Exercise2..............................................................................................................................................110

Problem...............................................................................................................................................110

Mục đích..........................................................................................................................................110

Yêu cầu............................................................................................................................................110

Page 8: Tranvanvu Report

Code Listing.....................................................................................................................................111

Execution Result..............................................................................................................................112

Module 7 : ADVANCED CONTROLS (TT)..................................................................................................113

Exercise1..............................................................................................................................................113

Problem...............................................................................................................................................113

Mục đích..........................................................................................................................................113

Yêu cầu............................................................................................................................................113

Code Listing.....................................................................................................................................113

Execution Result..............................................................................................................................115

Page 9: Tranvanvu Report
Page 10: Tranvanvu Report

Module 1

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Khi form load thực hiện nhập số A, B. Nếu dữ liệu nhập không hợp lệ thì thông báo lỗi (dùng errorProvider). btnTinh, btnXoa bị mờ (Enabled=false). Sau khi nhập dữ liệu hợp lệ và đầy đủ thì btnTinh có tác dụng (Enabled=true).

btnTinh: tính nghiệm phương trình (xét tất cả các trường hợp xảy ra: PT có 1 nghiệm, vô nghiệm, vô số nghiệm) và lưu kết quả vào lblKetQua. Khi đó btnXoa có tác dụng, btnTinh bị mờ.

btnXoa: Xóa các Textbox và label Kết Quả, đặt con trỏ vào TextBox A, btnXoa bị mờ btnThoat: xác nhận người dùng có chắc chắn thoát khỏi ứng dụng hay không? Yes: thoát, No: không

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Giaiphuongtrinhbacnhat{ public partial class Form1 : Form

Page 11: Tranvanvu Report

{ public Form1() { InitializeComponent(); }

private void textBox1_Leave(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Trim().Length == 0) { this.errorProvider1.SetError(ctr, "Bạn pha7i nhập số:"); button1.Enabled = false; button2.Enabled = false;

} else { this.errorProvider1.Clear(); button1.Enabled = true; button2.Enabled = true; } }

private void textBox1_TextChanged(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Length > 0 && !Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) { this.errorProvider1.SetError(ctr, "Bạn pha7i nhập số:"); button1.Enabled = false; button2.Enabled = false; } else { this.errorProvider1.Clear(); button1.Enabled = true; button2.Enabled = true; } }

private void textBox2_TextChanged(object sender, EventArgs e) {

Control ctr = (Control)sender; if (ctr.Text.Length > 0 && !Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) { this.errorProvider1.SetError(ctr, "Bạn pha7i nhập số:"); button1.Enabled = false; button2.Enabled = false; } else { this.errorProvider1.Clear();

Page 12: Tranvanvu Report

button1.Enabled = true; button2.Enabled = true; } }

private void button3_Click(object sender, EventArgs e) { DialogResult r; r = MessageBox.Show("Bạn muố:n thoát chương trình", "Thoát", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3); if (r == DialogResult.Yes) { this.Close(); } }

private void button2_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox2.Text = ""; textBox1.Focus(); button2.Enabled = false; label5.Text = ""; }

private void Form1_Load(object sender, EventArgs e) { button1.Enabled = false; button2.Enabled = false; }

private void button1_Click(object sender, EventArgs e) { int a; a = Convert.ToInt32(textBox1.Text); int b; b = Convert.ToInt32(textBox2.Text); if (a != 0) label5.Text = Convert.ToString(-b / a); else {

if (b == 0)

label5.Text = "Phương trình có vố số: nghiệm";

else

label5.Text = "Phuong trinh vo nghiem!!"; } } }}

Page 13: Tranvanvu Report

Execution Result

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình đọc năm Âm lịch khi có năm Dương lịch tương ứng, biết:

Năm DL MOD 10=0_9: Canh – Tân – Nhâm – Quý – Giáp - Ất – Bính – Đinh – Mậu – Kỷ

Năm DL MOD 12=0_11: Thân – Dậu – Tuất – Hợi – Tý – Sửu – Dần – Mẹo – Thìn – Tỵ - Ngọ - Mùi.

(Lưu ý: Kiểm tra nhập dữ liệu trong textbox Nhập Năm Dương lịch)

Page 14: Tranvanvu Report

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace DoinamAmLich{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { try { int nam = int.Parse(textBox1.Text); int vtcan = (nam + 6) % 10; int vtchi = (nam + 8) % 12; String stcan = ""; String stchi = ""; switch (vtcan) { case 0: stcan = "Giap"; break; case 1: stcan = "At"; break; case 2: stcan = "Binh"; break; case 3: stcan = "Dinh"; break; case 4: stcan = "Mau"; break; case 5: stcan = "Ky"; break; case 6: stcan = "Canh"; break; case 7: stcan = "Tan"; break; case 8: stcan = "Nham"; break; case 9: stcan = "Quy"; break; }

switch (vtchi) { case 0: stchi = "Ty"; break; case 1: stchi = "Suu"; break;

Page 15: Tranvanvu Report

case 2: stchi = "Dan"; break; case 3: stchi = "Mao"; break; case 4: stchi = "Thin"; break; case 5: stchi = "Ti"; break; case 6: stchi = "Ngo"; break; case 7: stchi = "Mui"; break; case 8: stchi = "Than"; break; case 9: stchi = "Dau"; break; case 10: stchi = "Tuat"; break; case 11: stchi = "Hoi"; break; } label3.Text = stcan + " " + stchi; } catch (Exception ex) { MessageBox.Show("Bạn chưa nhập năm dương lịch"); }

} }}

Execution Result

Page 16: Tranvanvu Report

Exercise 3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form Yêu c uầ

Viết chương trình nhập vào số nguyên N, kiểm tra N có phải là số nguyên tố hay không? (xem giao diện)

hãy thêm các button “Tính tổng N số nguyên Dương đầu tiên”, “Tính tổng N số nguyên Dương chẵn đầu tiên”, “Tính giai thừa N”, “Kiểm tra số hoàn thiện”

Lưu ý: số hoàn thiện là số có Tổng các ước số của nó bằng chính nó.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace SoNguyenTo{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } static Boolean KTNguyenTo(int n) { int i, m; if (n < 0) n = -n; if (n < 2) return false; if (n == 2) return true; m = n / 2; for (i = 2; i <= m; i++) if ((n % i) == 0) return false; return true; }

private void button1_Click(object sender, EventArgs e) { string strn; int n; Boolean kt;

Page 17: Tranvanvu Report

strn = textBox1.Text; n = int.Parse(strn); kt = KTNguyenTo(n); if (kt) MessageBox.Show("Đây là số: nguyên tố:", "Kiê7m tra"); else MessageBox.Show("Đây khống pha7i là số: nguyên tố:", "Kiê7m tra"); }

private void button2_Click(object sender, EventArgs e) { int n = Convert.ToInt32(textBox1.Text); int s = 1; for (int i = 1; i <= n; i++) { s = s * i; } MessageBox.Show("Giai thừa cu7a " + textBox1.Text + " là " + s.ToString()); }

private void button3_Click(object sender, EventArgs e) { int n = Convert.ToInt32(textBox1.Text);

int s = 0; for (int i = 0; i <= n; i++) { s = s + i; } MessageBox.Show("Tố7ng số: nguyên dương đâcu tiên cu7a " + textBox1.Text + " là " + s.ToString()); }

private void button4_Click(object sender, EventArgs e) {

int n = Convert.ToInt32(textBox1.Text); int s = 0; for (int i = 0; i <= n; i++) { if (i % 2 == 0) { s = s + i; } } MessageBox.Show("Tố7ng số: nguyên dương chădn đâcu tiên cu7a " + textBox1.Text + " là " + s.ToString()); }

private void button5_Click(object sender, EventArgs e) { int n = Convert.ToInt32(textBox1.Text); kiemtra(n); } void kiemtra(int n) {

Page 18: Tranvanvu Report

int i, s = 0; if (n <= 0) MessageBox.Show("Đây khong là số: hoàn thiện"); else { for (i = 1; i < n; i++) if (n % i == 0) s = s + i; if (n == s) MessageBox.Show("Đây là số: hoàn thiện"); else MessageBox.Show("Đây khong là số: hoàn thiện"); } } }}

Execution Result

Page 19: Tranvanvu Report
Page 20: Tranvanvu Report
Page 21: Tranvanvu Report

Module 2 : Textbox, Button, Radiobutton, Checkbox.

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầTạo giao diện như hình: nhập vào 2 số và 4 Radio, click vào Radio Cộng sẽ thực hiện phép Cộng 2 số và xuất kết quả vào Label Kết quả. Thực hiện tương tự cho các Radio còn lại. (kiểm tra dữ liệu nhập phải là số)

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace CongtruNhanchia{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void textBox1_TextChanged(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Length > 0 && !Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) { this.errorProvider1.SetError(ctr, "Bạn pha7i nhập số:"); } else { this.errorProvider1.Clear(); } } private void textBox2_TextChanged(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Length > 0 && !Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) { this.errorProvider1.SetError(ctr, "Bạn pha7i nhập số:");

Page 22: Tranvanvu Report

} else { this.errorProvider1.Clear(); } } private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (textBox1.Text != "" && textBox2.Text != "") { int a; a = Convert.ToInt32(textBox1.Text); int b; b = Convert.ToInt32(textBox2.Text); int c = a + b; label4.Text = c.ToString(); } } private void radioButton2_CheckedChanged(object sender, EventArgs e) { if (textBox1.Text != "" && textBox2.Text != "") { int a; a = Convert.ToInt32(textBox1.Text); int b; b = Convert.ToInt32(textBox2.Text); int c = a - b; label4.Text = c.ToString(); } } private void radioButton3_CheckedChanged(object sender, EventArgs e) {

if (textBox1.Text != "" && textBox2.Text != "") { int a; a = Convert.ToInt32(textBox1.Text); int b; b = Convert.ToInt32(textBox2.Text); int c = a * b; label4.Text = c.ToString(); } } private void radioButton4_CheckedChanged(object sender, EventArgs e) { if (textBox1.Text != "" && textBox2.Text != "") { int a; a = Convert.ToInt32(textBox1.Text); int b; b = Convert.ToInt32(textBox2.Text); int c = a / b; label4.Text = c.ToString(); } } private void Form1_Load(object sender, EventArgs e) {

Page 23: Tranvanvu Report

radioButton1.Checked = false; radioButton2.Checked = false; radioButton3.Checked = false; radioButton4.Checked = false; } }}

Execution Result

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình dùng để định dạng LABEl TEXT theo các Checkbox và Radio button tương ứng (Font Style, Color).

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace FormatText{

Page 24: Tranvanvu Report

public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void checkBox1_CheckedChanged(object sender, EventArgs e) { label1.Font = new Font(label1.Font, FontStyle.Regular); }

private void checkBox2_CheckedChanged(object sender, EventArgs e) { label1.Font = new Font(label1.Font, FontStyle.Bold); }

private void checkBox3_CheckedChanged(object sender, EventArgs e) { label1.Font = new Font(label1.Font, FontStyle.Italic); }

private void checkBox4_CheckedChanged(object sender, EventArgs e) { //if(checkBox4.Checked==true) label1.Font = new Font(label1.Font, FontStyle.Bold | FontStyle.Italic); // if (checkBox4.Checked == true) // label1.Font = new Font(label1.Font, FontStyle.Italic); }

private void radioButton2_CheckedChanged(object sender, EventArgs e) { label1.ForeColor = Color.Red;

}

private void radioButton3_CheckedChanged(object sender, EventArgs e) { label1.ForeColor = Color.Green; }

private void radioButton4_CheckedChanged(object sender, EventArgs e) { label1.ForeColor = Color.Blue; }

private void radioButton1_CheckedChanged(object sender, EventArgs e) { label1.ForeColor = Color.Black; }

private void button1_Click(object sender, EventArgs e) { DialogResult r;

Page 25: Tranvanvu Report

r = MessageBox.Show("Bạn muố:n thoát chương trình", "Thoát", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3); if (r == DialogResult.Yes) { this.Close(); } }

private void Form1_Load(object sender, EventArgs e) { radioButton1.Checked = false; radioButton2.Checked = false; radioButton3.Checked = false; radioButton4.Checked = false; } }}

Execution Result

Page 26: Tranvanvu Report

Exercise3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình dùng để định dạng TEXTBOX theo các font chữ tương ứng với từng Radio button.btnXoa: Xóa các Textbox và label Kết Quả, đặt con trỏ vào TextBox A, btnXoa bị mờ btnThoat: xác nhận người dùng có chắc chắn thoát khỏi ứng dụng hay không? Yes: thoát, No: không

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Font{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void radioButton1_CheckedChanged(object sender, EventArgs e) { textBox1.Font = new System.Drawing.Font("Times New Roman", 20); }

private void radioButton2_CheckedChanged(object sender, EventArgs e) { textBox1.Font = new System.Drawing.Font("Arial", 20); }

private void radioButton3_CheckedChanged(object sender, EventArgs e) { textBox1.Font = new System.Drawing.Font("Tahoma", 20); }

private void radioButton4_CheckedChanged(object sender, EventArgs e) { textBox1.Font = new System.Drawing.Font("Courier New", 20); }

Page 27: Tranvanvu Report

private void button1_Click(object sender, EventArgs e) { DialogResult r; r = MessageBox.Show("Bạn muố:n thoát chương trình", "Thoát", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3); if (r == DialogResult.Yes) { this.Close(); } } }}

Execution Result

Page 28: Tranvanvu Report

Exercise4

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình Quản lý thu tiền cho quán Café Sinh Viên như sau:

Khi nhóm khách hàng vào quán gọi café sẽ được chọn 1 trong các loại café. Giá cho từng loại café tương ứng như sau:Café đen: 20.000đCafé đá: 25.000đCafé sữa: 25.000đCafé sữa đá: 30.000đCafé kem: 35.000đ

Khi khách hàng gọi tính tiền, thu ngân sẽ nhập thông tin tên khách hàng và tùy vào loại café thì sẽ có giá tương ứng ( lưu ý: nếu khách hàng là Sinh Viên – check vào checkbox Sinh Viên – thì sẽ được giảm giá 20%). Cuối cùng thu ngân sẽ tính tổng số người trong nhóm và thanh toán tiền.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Cafe_SinhVien{ public partial class Form1 : Form { int gia = 0; int tongtien = 0; int tongluotkhach = 0; public Form1() { InitializeComponent(); }

private void textBox1_Leave(object sender, EventArgs e)

Page 29: Tranvanvu Report

{ Control c = (Control)sender; if (c.Text.Trim().Length == 0) this.errorProvider1.SetError(c, "Ban chua nhap ten khach hang"); else { this.errorProvider1.Clear(); radioButton1.Checked = true; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult r; r=MessageBox.Show("Ban muon thoat chuong trinh","Dong chuong trinh",MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r == DialogResult.No) e.Cancel = true; }

private void button4_Click(object sender, EventArgs e) { DialogResult r; r = MessageBox.Show("Ban muon thoat chuong trinh", "Dong chuong trinh", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r == DialogResult.Yes) this.Close(); }

private void Form1_Load(object sender, EventArgs e) { button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; radioButton1.Checked = true; }

private void button1_Click(object sender, EventArgs e) { if (checkBox1.Checked == true) { if (radioButton1.Checked == true) { gia = 18000; } else if (radioButton2.Checked == true) { gia = 22500; } else if (radioButton3.Checked == true) { gia = 24000; } else if (radioButton4.Checked == true) { gia = 22500; }

Page 30: Tranvanvu Report

else if (radioButton5.Checked == true) { gia = 28000; } } else if(checkBox1.Checked==false) { if (radioButton1.Checked == true) { gia = 20000; } else if (radioButton2.Checked == true) { gia = 25000; } else if (radioButton3.Checked == true) { gia = 30000; } else if (radioButton4.Checked == true) { gia = 25000; } else if (radioButton5.Checked == true) { gia = 35000; } } textBox1.Focus(); MessageBox.Show("Chào bạn "+ textBox1.Text.ToUpper() +"\n"+"Tố7ng số: tiêcn pha7i thanh toán là " + gia.ToString(), "Tính tiêcn"); textBox1.Text = ""; tongluotkhach += 1; tongtien =gia+ tongtien; } private void button2_Click(object sender, EventArgs e) { textBox1.Focus(); textBox1.Text = ""; checkBox1.Checked = false; radioButton1.Checked = false; radioButton2.Checked = false; radioButton3.Checked = false; radioButton4.Checked = false; radioButton5.Checked = false; button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; gia = 0; label5.Text = ""; label6.Text = ""; } private void textBox1_TextChanged(object sender, EventArgs e) { button1.Enabled = true; button2.Enabled = true; button3.Enabled = true; }

Page 31: Tranvanvu Report

private void button3_Click(object sender, EventArgs e) { label5.Text = tongluotkhach.ToString(); label6.Text = tongtien.ToString(); } }}

Execution Result

Page 32: Tranvanvu Report

Exercise5

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình kiểm tra sức khỏe của 1 người bằng cách nhập vào các thông số: họ tên (không được rỗng), chiều cao (cm), cân nặng (kg) dữ liệu vày phải là số. Tính cân số cân chuẩn của người đó theo công thức sau (tùy theo Nam hay Nữ):Công thức tính cân nặng chuẩn:Cân nặng lý tưởng (kg) = T – 100 – (T –150/ N)(Trong đó: T là chiều cao (cm), N = 4 với Nam và N = 2 với Nữ.)

- btnTinh: Thực hiện tính số cân chuẩn theo công thức, sau đó hiển thị kết quả vào label kết quả như hình.

- btnXoa: trả lại trạng ban đầu của Form, cho phép nhập người mới- btnThoat: thoát khỏi chương trình.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace GiamCan{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button3_Click(object sender, EventArgs e) { DialogResult r; r = MessageBox.Show("Ban muon thoat chuong trinh", "Dong chuong trinh", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r == DialogResult.Yes) this.Close();

} private void button1_Click(object sender, EventArgs e) {

Page 33: Tranvanvu Report

textBox1.Text = ""; textBox2.Clear(); textBox3.Clear(); label8.Text = ""; } private void textBox1_Leave(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length == 0) this.errorProvider1.SetError(c, "Ban chua nhap ten khach hang"); else { this.errorProvider1.Clear(); } } private void textBox2_TextChanged(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length >0 && !Char.IsDigit(c.Text[c.Text.Length - 1])) this.errorProvider1.SetError(c, "Ban phai nhap so"); else this.errorProvider1.Clear(); } private void textBox3_TextChanged(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length > 0 && !Char.IsDigit(c.Text[c.Text.Length - 1])) this.errorProvider1.SetError(c, "Ban phai nhap so"); else this.errorProvider1.Clear(); } private void button2_Click(object sender, EventArgs e) { if (kiemtrabien() == true) { int g; if (radioButton1.Checked == true) g = 4; else g = 2; int chieucao = int.Parse(textBox2.Text); int cannang = int.Parse(textBox3.Text); int a = chieucao - 150; int b = a / g; int c = chieucao - 100; int cannangchuan = c - b; int kiemtra; kiemtra = cannangchuan - cannang; string tam; if (kiemtra > 0) tam = "thiê:u"; else tam = "thừa"; string ten; ten = textBox1.Text;

Page 34: Tranvanvu Report

ten.ToUpper(); label8.Text = "Bạn "+ ten + " có cân nặng lí tươ7ng là : " + cannangchuan + "\n" + "Bạn đang bị " + tam + " cân"; } else MessageBox.Show("Bạn chưa điêcn đu7 thống tin"); } private void Form1_Load(object sender, EventArgs e) { } private bool kiemtrabien() { if (radioButton1.Checked == false && radioButton2.Checked == false) { return false; } return true; } }}

Execution Result

Page 35: Tranvanvu Report
Page 36: Tranvanvu Report

Exercise6

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình Quản lýThanh toán tiền phòng cho Khách sạn Thanh Thanh như sau:

Khi khách trả phòng, nhân viên kế toán sẽ thực hiện kiểm tra tên, địa chỉ, số ngày ở, loại phòng, tiện nghi và dịch vụ của khách. Sau đây là bảng giá:

o Loại phòng:Phòng đơn: 300.000đ/1 ngàyPhòng đôi: 350.000đ/1 ngàyPhòng ba: 400.000đ/1 ngày

o Tiện nghi: mỗi loại cộng thêm 10.000đo Dịch vụ:

Karaoke: 50.000đĂn sáng: 15.000đ/1 ngày

Cuối ngày Nhân viên kế toán sẽ thống kê tổng số lượt người trả phòng, tổng số tiền thu được trong ngày.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;

namespace KhachSanThanhThanh{ public partial class Form1 : Form { // int ma=100; int tongsotien=0; int tongluotnguoi = 0; public Form1() {

Page 37: Tranvanvu Report

InitializeComponent(); } private void button7_Click(object sender, EventArgs e) { Control c = (Control)sender; DialogResult r; r = MessageBox.Show("Bạn muố:n thoát chương trình", "Xác nhận thoát", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r == DialogResult.Yes) this.Close(); } public void kiemtra() { if ((checkBox1.Checked == true || checkBox2.Checked == true || checkBox3.Checked == true) && (checkBox4.Checked == true || checkBox5.Checked == true)) { button2.Enabled=true; } } private void Form1_Load(object sender, EventArgs e) { textBox1.Clear(); textBox1.Focus(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); label7.Text = ""; radioButton1.Checked = true; radioButton2.Checked = false; radioButton3.Checked = false; checkBox1.Checked = false; checkBox2.Checked = false; checkBox3.Checked = false; checkBox4.Checked = false; checkBox5.Checked = false; button1.Enabled=false; button2.Enabled=false; button4.Enabled=false; kiemtra(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { kiemtra(); } private void button2_Click(object sender, EventArgs e) { try { int giaphong = 0; int tiennghi = 0; int dichvu = 0; int ngay = int.Parse(textBox4.Text); if (radioButton1.Checked) giaphong = ngay * 300000; if (radioButton2.Checked) giaphong = ngay * 350000;

Page 38: Tranvanvu Report

if (radioButton3.Checked) giaphong = ngay * 400000; if (checkBox4.Checked == true) dichvu += 50000; if (checkBox5.Checked == true) dichvu += 15000; if (checkBox1.Checked == true) tiennghi += 10000; if (checkBox2.Checked == true) tiennghi += 10000; if (checkBox3.Checked == true) tiennghi += 10000; int tongdichvutiennghi = ngay * (dichvu + tiennghi); int tongtien; tongtien = giaphong + tongdichvutiennghi; label7.Text = tongtien.ToString(); tongsotien += tongtien; tongluotnguoi += 1; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } ListViewItem lv = new ListViewItem(textBox1.Text,0); lv.SubItems.Add(textBox2.Text); lv.SubItems.Add(textBox3.Text); lv.SubItems.Add(textBox4.Text); lv.SubItems.Add(label7.Text); listView1.Items.Add(lv); button2.Enabled = false; button1.Enabled = true; button4.Enabled = true; } private void button4_Click(object sender, EventArgs e) { label10.Text = tongluotnguoi.ToString(); label11.Text = tongsotien.ToString(); } private void textBox1_Leave(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length > 0 && !Char.IsDigit(c.Text[c.Text.Length - 1])) { MessageBox.Show("Mã khách hàng là số:. Bạn hãy nhập số:", "Thống báo"); textBox1.SelectAll(); } } private void textBox2_Leave(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length == 0) { MessageBox.Show("Bạn chưa nhập dữ liệu", "Thống báo"); textBox2.Focus(); } }

Page 39: Tranvanvu Report

private void textBox3_Leave(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length == 0) { MessageBox.Show("Bạn chưa nhập dữ liệu", "Thống báo"); textBox3.Focus(); } } private void textBox4_Leave(object sender, EventArgs e) { Control c = (Control)sender; if (c.Text.Trim().Length > 0 && !Char.IsDigit(c.Text[c.Text.Length - 1])) { MessageBox.Show("Bạn pha7i nhập số:", "Thống báo"); textBox4.Focus(); } else if (c.Text.Trim().Length == 0) { MessageBox.Show("Bạn chưa nhập dữ liệu", "Thống báo"); textBox4.Focus(); } } private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { textBox1.Text = e.Item.Text; textBox2.Text = e.Item.SubItems[1].Text; textBox3.Text = e.Item.SubItems[2].Text; } private void button5_Click(object sender, EventArgs e) { SaveFileDialog so = new SaveFileDialog(); so.Filter = "Text file|*.txt"; if (so.ShowDialog()== DialogResult.OK) { try { string tenfile = so.FileName; StreamWriter str = new StreamWriter(tenfile); foreach (ListViewItem i in this.listView1.Items) { str.WriteLine(i.SubItems[1].Text + "," + i.SubItems[2].Text + "," + i.SubItems[3].Text); } str.Flush(); str.Close(); str.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } private void button6_Click(object sender, EventArgs e) {

Page 40: Tranvanvu Report

OpenFileDialog op = new OpenFileDialog(); string tenfile =op.FileName; op.Filter="File text|*.txt"; if(op.ShowDialog()== DialogResult.OK) { try { StreamReader r =new StreamReader(tenfile); while (!r.EndOfStream) { string s = r.ReadLine(); string[] chuoi = s.Split(','); ListViewItem item = new ListViewItem(chuoi[0]); item.SubItems.Add(chuoi[1]); item.SubItems.Add(chuoi[2]); item.SubItems.Add(chuoi[3]); item.SubItems.Add(chuoi[4]); listView1.Items.Add(item); } } catch(Exception) { MessageBox.Show("Khống thê7 đọc file này"); }

} } private void button3_Click(object sender, EventArgs e) { foreach(ListViewItem i in this.listView1.Items) { listView1.Items.Remove(i); }

} } }

Page 41: Tranvanvu Report

Execution Result

Page 42: Tranvanvu Report

Module 3 : ListBox, Combobox, CheckListBox GroupBox, Panel & TabControl.

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình thực hiện như sau ( xem hình bên dưới)

- Form_load: nhập số vào Textbox (nhớ kiểm tra dữ liệu nhập)

- btnCapNhat: thêm số vừa nhập vào Combobox, đồng thời xóa textbox

nhập, đặt con trỏ lại textbox nhập.

- Khi người dùng chọn 1 số trong Combobox thì danh sách các ước số của

số này sẽ hiển thị vào Listbox bên phải tương ứng.

- Khi nhấn Các button Tính: “Tổng các ước số”, “Số lượng các ước số chẵn”,

“Số lượng các ước số nguyên tố” thì sẽ hiển thị thông tin tương ứng vào

messagebox dựa vào các ước số trên listbox.

btnThoat: thoát khỏi ứng dụng.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Bai1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e)

Page 43: Tranvanvu Report

{ DialogResult r; r = MessageBox.Show("Ban co chac chan muon thoat khong?", "Thoat", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r ==DialogResult.No) { e.Cancel = true; } } private void btnThoat_Click(object sender, EventArgs e) { this.Close(); }

private void txtSo_Leave(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Trim().Length == 0) this.errorProvider1.SetError(ctr, "Ban chua nhap du lieu."); else this.errorProvider1.Clear(); }

private void txtSo_TextChanged(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Length > 0 && !Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) this.errorProvider1.SetError(ctr, "Ban chi duoc nhap so"); else this.errorProvider1.Clear(); }

private void btnCapNhap_Click(object sender, EventArgs e) { cboSo.Items.Add(txtSo.Text); txtSo.Clear(); txtSo.Focus(); }

private void cboSo_SelectedIndexChanged(object sender, EventArgs e) { lstDanhSach.Items.Clear(); int a; a=Convert.ToInt32(cboSo.SelectedItem); for(int i =1; i<=a;i++) if(a%i==0) lstDanhSach.Items.Add(i);

}

private void btnSochan_Click(object sender, EventArgs e) {

Page 44: Tranvanvu Report

int dem = 0; for (int i = 0; i < lstDanhSach.Items.Count; i++) { if (Convert.ToInt32( lstDanhSach.Items[i]) % 2 == 0) dem++; } MessageBox.Show("So luong cac so chan la " + dem); }

private void btnTong_Click(object sender, EventArgs e) { int tong = 0; for (int i = 0; i < lstDanhSach.Items.Count; i++) tong = tong + Convert.ToInt32(lstDanhSach.Items[i]); MessageBox.Show("Tong cac so" + tong); } private void btnSoNguyenTo_Click(object sender, EventArgs e) { int tong=0; int i, j, demuoc = 0; for (i= 0; i <= lstDanhSach.Items.Count; i++) { try { for (j = 1; j <= Convert.ToInt32(lstDanhSach.Items[i]); j++) { if (Convert.ToInt32(lstDanhSach.Items[i]) % j == 0) demuoc++; if (demuoc == 2) tong = tong + 1;

j++; } i++; } catch (Exception ex) { Console.WriteLine("{0} Second exception caught.", ex); } } MessageBox.Show("So luong cac so nguyen to trong listbox la: " + tong); } }}

Page 45: Tranvanvu Report

Execution Result

Page 46: Tranvanvu Report

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình thêm các phần tử vào listbox (listbox được chọn nhiều

phần tử) các số tự nhiên N được nhập từ textbox

Viết code cho các nút lệnh thực hiện các công việc sau:

- Tính tổng các phẩn tử trong Listbox, hiển thị lên Messagebox.

- Xóa phần tử đầu và cuối của listbox.

- Xóa các phần tử đang chọn trong listbox.

- Tăng giá trị mỗi phần tử lên 2.

- Thay mỗi giá trị của mỗi phần tử bằng bình pương của chính nó

- Thực hiện chọn các phần tử trong listbox là số chẵn.

- Thực hiện chọn các phần tử trong listbox là số lẻ.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Bai2{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { int t; try

Page 47: Tranvanvu Report

{ t = Convert.ToInt32(textBox1.Text); Random r = new Random();

for (int i = 1; i <= r.Next(t); i++) { int a = r.Next(t); listBox1.Items.Add(a); } } catch (Exception ex) { MessageBox.Show("" + e); } } private void button2_Click(object sender, EventArgs e) { int tong=0; for(int i =0; i < listBox1.Items.Count;i++) tong +=Convert.ToInt32(listBox1.Items[i].ToString()); MessageBox.Show("Tong cac phan tu trong listbox : "+tong); } private void button3_Click(object sender, EventArgs e) { try { listBox1.Items.RemoveAt(0); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void button4_Click(object sender, EventArgs e) { listBox1.Items.RemoveAt(listBox1.SelectedIndex); } private void button5_Click(object sender, EventArgs e) { for (int i = 0; i < listBox1.Items.Count; i++) listBox1.Items[i] = Convert.ToInt32( listBox1.Items[i]) + 2; } private void button6_Click(object sender, EventArgs e) { for (int i = 0; i < listBox1.Items.Count; i++) listBox1.Items[i] = Math.Pow(Convert.ToInt32( listBox1.Items[i]),2); } private void button7_Click(object sender, EventArgs e) { for (int i = 0; i < listBox1.Items.Count; i++) if (Convert.ToInt32(listBox1.Items[i]) % 2 == 0) MessageBox.Show(" Số: chădn là "+listBox1.Items[i]); } private void button8_Click(object sender, EventArgs e) { for (int i = 0; i < listBox1.Items.Count; i++) if (Convert.ToInt32(listBox1.Items[i]) % 2 != 0)

Page 48: Tranvanvu Report

MessageBox.Show(" Số: lẽ là " + listBox1.Items[i]); } }}

Execution Result

Page 49: Tranvanvu Report

Exercise3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình nhập danh sách các Sinh Viên theo yêu cầu sau: (xem hình

bên dưới).

Các listbox được phép chọn nhiều mục (kết hợp giữa phím Shift, Ctrl và

chuột)

Khi người dùng nhập họ và tên của Sinh viên vào Textbox, click nút Cập Nhật

thì tên Sinh Viên đó sẽ được nhập vào Listbox Trái.

, chuyển các tên đang chọn từ Lisxtbox Trái sang Listbox Phải và

ngược lại.

, chuyển hết toàn bộ các tên từ Listbox Trái sang Listbox Phải và

ngược lại.

btnXoa: cho phép xóa các tên đang chọn trong Listbox Trái.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Bai3{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void txtHoten_Leave(object sender, EventArgs e) {

Page 50: Tranvanvu Report

Control ctr = (Control)sender; if (ctr.Text.Trim().Length == 0) this.errorProvider1.SetError(ctr, "Ban chua nhap du lieu"); else this.errorProvider1.Clear(); } private void btnCapnhat_Click(object sender, EventArgs e) { lstLopa.Items.Add(txtHoten.Text); txtHoten.Clear(); txtHoten.Focus(); } private void txtHoten_TextChanged(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Trim().Length > 0 && Char.IsDigit(ctr.Text[ctr.Text.Length - 1])) this.errorProvider1.SetError(ctr, "Ban phai nhap ten. Khong duoc nhap so"); else this.errorProvider1.Clear(); } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < lstLopa.Items.Count; i++) if (lstLopa.GetSelected(i)) { lstLopb.Items.Add(lstLopa.Items[i]); lstLopa.Items.RemoveAt(i); } } private void button2_Click(object sender, EventArgs e) { for (int i = 0; i < lstLopa.Items.Count; i++) { lstLopb.Items.Add(lstLopa.Items[i]); lstLopa.Items.RemoveAt(i); i--; } } private void button3_Click(object sender, EventArgs e) { for (int i = 0; i < lstLopb.Items.Count; i++) if (lstLopb.GetSelected(i)) { lstLopa.Items.Add(lstLopb.Items[i]); lstLopb.Items.RemoveAt(i); } } private void button4_Click(object sender, EventArgs e) { for (int i = 0; i < lstLopb.Items.Count; i++) { lstLopa.Items.Add(lstLopb.Items[i]); lstLopb.Items.RemoveAt(i); i--;

Page 51: Tranvanvu Report

} } private void btnXoa_Click(object sender, EventArgs e) { for (int i = 0; i < lstLopa.Items.Count; i++) if (lstLopa.GetSelected(i)) { lstLopa.Items.RemoveAt(i); } } private void btnKetthuc_Click(object sender, EventArgs e) { if (MessageBox.Show("Bạn Muố:n Thoát Chương Trình?", "Thống Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) this.Close(); } }}

Execution Result

Page 52: Tranvanvu Report

Exercise4

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình từ điển Anh – Việt và Việt – Anh (dùng TabControl)

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Bai4{ public partial class Form1 : Form { Dictionary<string, string> tudien; public Form1() { InitializeComponent(); TaoTuDien(); } void TaoTuDien() { tudien=new Dictionary<string,string>(); tudien.Add("Rain","Mưa"); tudien.Add("Hot","Nóng"); tudien.Add("While","Trong Khi"); tudien.Add("be","thì, là"); tudien.Add("Snow","Tuyê:t"); tudien.Add("Quick","Nhanh"); tudien.Add("Pow","Cái chén"); tudien.Add("Dragon","Con Rốcng"); tudien.Add("Chicken","Con Gà"); tudien.Add("Dog","Con Chó"); tudien.Add("Cat","Con Mèo"); tudien.Add("Fly","Bay"); tudien.Add("Computer","Máy vi tính"); tudien.Add("Day","Ngày"); tudien.Add("January","Tháng 1"); tudien.Add("February","Tháng 2"); tudien.Add("March","Tháng 3"); tudien.Add("April","Tháng 4"); tudien.Add("May","Tháng 5"); tudien.Add("Lune","Tháng 6");

Page 53: Tranvanvu Report

tudien.Add("July","Tháng 7"); tudien.Add("August","Tháng 8"); tudien.Add("September","Tháng 9"); tudien.Add("October","Tháng 10"); tudien.Add("November","Tháng 11"); tudien.Add("December","Tháng 12"); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { textBox1.Text = tudien[comboBox1.SelectedItem.ToString()]; }

private void btnThoat_Click(object sender, EventArgs e) { if (MessageBox.Show("Bạn Muố:n Thoát Chương Trình?", "Thống Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) this.Close(); }

private void Form1_Load(object sender, EventArgs e) { foreach (string s in tudien.Keys) { comboBox1.Items.Add(s); } }

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 1) { foreach (string a in tudien.Values) { comboBox2.Items.Add(a); } } } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { try { textBox2.Text = tudien[comboBox2.SelectedItem.ToString()]; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }

}}

Page 54: Tranvanvu Report

Execution Result

Page 55: Tranvanvu Report

Exercise5

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình cho phép Sinh Viên đăng ký học các môn học trong học kỳ:- Form_load: nhập các thông tin mssv, họ tên sv, chọn niên khóa, lớp

học, học kỳ đăng ký, các môn học đăng ký (kiểm tra dữ liệu nhập)

- btnDangKy: Hiển thị các thông tin mà Sinh viên đã đăng ký lên

Messagebox như hình bên dưới.

- btnHuy: trả lại trạng thái ban đầu của Form

- btnThoat: thoát khỏi ứng dụng.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Bai5{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnHuy_Click(object sender, EventArgs e) { txtMa.Clear(); txtTen.Clear(); radI.Checked = false; radII.Checked = false; radIII.Checked = false; radIV.Checked = false; chkMonhoc.ClearSelected(); } private void btnDangki_Click(object sender, EventArgs e) { string s, monhoc = "";

Page 56: Tranvanvu Report

for (int i = 0; i < chkMonhoc.Items.Count; i++) if (chkMonhoc.GetItemChecked(i)) { monhoc += "\n" + chkMonhoc.Items[i].ToString(); } try { s = "Mã Sinh viên " + txtMa.Text + "\n" + "Sinh viên " + txtTen.Text + "\n" + "Niên khóa " + cboNienkhoa.SelectedItem.ToString() + "\n" + "Lớp " + cboLop.SelectedItem.ToString() + "\n" + "Đã đăng kí các mốn : " + "\n" + "-----------" + "\n " + monhoc; MessageBox.Show(s); } catch { MessageBox.Show("Ban chua nhap day du du lieu"); txtMa.Focus(); } } private void btnThoat_Click(object sender, EventArgs e) { this.Close(); } private void txtMa_Leave(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Trim().Length == 0) this.errorProvider1.SetError(ctr, "Ban chua nhap du lieu"); else this.errorProvider1.Clear(); } private void txtTen_Leave(object sender, EventArgs e) { Control ctr = (Control)sender; if (ctr.Text.Trim().Length == 0) this.errorProvider1.SetError(ctr, "Ban chua nhap du lieu"); else this.errorProvider1.Clear(); } } }

Execution Result

Page 57: Tranvanvu Report

Exercise6

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Thực hiện Form xử lý chuỗi có giao diện như sau:

Page 58: Tranvanvu Report

- btnNgauNhien: sẽ thực hiện nhập vào listbox 50 tên dựa vào mảng

chuỗi HO, TENLOT, TEN:

HO={“Lê”, “Nguyễn”, “Lý”, “Trần”, “Lâm”, “Hồ”, “Lai”, “Huỳnh”,

“La”}

TENLOT={“Quang”, “Thành”, “Ngọc”, “Anh”, Xuân”, “Bảo”,

“Cẩm”, “Thị”, “Kim”, “Thái”, “Hồng”}

TEN={“Hà”, “Danh”, “Sơn”, “Mai”, “Thắng”, “Kỳ”, “Thành”, “Lâm”,

“Tâm”, “Phụng”, “Thắm”}

- Thực hiện các button tương ứng

Khi người dùng Double click vào tên đang chọn thì sẽ mở Inputbox, cho phép người dùng thay đổi tên mới vào vị trí tên này.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;

Page 59: Tranvanvu Report

using System.Windows.Forms;using System.Globalization;

namespace Bai6{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void TaoDanhSach() { string[] Ho = { "Lê", "Nguyêdn", "Lý", "Trâcn", "Lâm", "Hốc", "Lai", "Huỳnh", "La" }; string[] Lot = { "Quang", "Thành", "Ngọc", "Anh", "Xuân", "Ba7o", "Câ7m", "Thị", "Kim", "Thái", "Hốcng" }; string[] Ten = { "Hà", "Danh", "Sơn", "Mai", "Thă:ng", "Kỳ", "Thành", "Lâm", "Tâm", "Phụng", "Thă:m" }; Random rd = new Random();

lstdS.Items.Clear(); for (int i = 0; i < 50; i++) { string rdHo = Ho[rd.Next(0, Ho.Length - 1)]; string rdLot = Lot[rd.Next(0, Lot.Length - 1)]; string rdTen = Ten[rd.Next(0, Ten.Length - 1)];

lstdS.Items.Add(rdHo + " " + rdLot + " " + rdTen); } } private void Form1_Load(object sender, EventArgs e) { //TaoDanhSach(); }

private void btnxoaChon_Click(object sender, EventArgs e) { lstdS.Items.Remove(lstdS.SelectedItem); }

private void btnNhap_Click(object sender, EventArgs e) { TaoDanhSach(); }

private void btnxoaHet_Click(object sender, EventArgs e) { lstdS.Items.Clear(); }

private void btnxoaSon_Click(object sender, EventArgs e) { for (int i = 0; i < lstdS.Items.Count; i++) { string ten = lstdS.Items[i].ToString(); if(ten.IndexOf("Sơn")>ten.IndexOf("")) lstdS.Items.RemoveAt(i);

Page 60: Tranvanvu Report

} }

private void bntxoaLe_Click(object sender, EventArgs e) { for (int i = 0; i < lstdS.Items.Count; i++) { string ten = lstdS.Items[i].ToString(); int a; a = ten.LastIndexOf("Lê"); if (a > -1) lstdS.Items.RemoveAt(i); } }

private void btnHoa_Click(object sender, EventArgs e) { for (int i = 0; i < lstdS.Items.Count; i++) { if (lstdS.GetSelected(i)) { string hoa = lstdS.Items[i].ToString().ToUpper(); lstdS.Items.RemoveAt(i); lstdS.Items.Insert(i, hoa); lstdS.SetSelected(i, true); } } }

private void btnThuong_Click(object sender, EventArgs e) { for (int i = 0; i < lstdS.Items.Count; i++) { if (lstdS.GetSelected(i)) { string hoa = lstdS.Items[i].ToString().ToLower(); lstdS.Items.RemoveAt(i); lstdS.Items.Insert(i, hoa); lstdS.SetSelected(i, true); } } }

private void btnhoaDau_Click(object sender, EventArgs e) { foreach (int i in lstdS.SelectedIndices) { string hoTen = lstdS.Items[i].ToString().ToLower(); lstdS.Items[i] = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(hoTen)+ "; lstdS.SetSelected(i, true); } } }}

Page 61: Tranvanvu Report

Execution Result

Page 62: Tranvanvu Report

Module : PictureBox, ImageList, TrackBar, NumericUpDown, DomainUpDown, ProgressBar.

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầViết chương trình hiển thị vào PictureBox lá cờ tương ứng với nước được chọn trên Radio Button tương ứng.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;

namespace Countrys_Flags{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("vn.jpg"); }

private void radioButton2_CheckedChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("usa.jpg"); }

private void radioButton3_CheckedChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("italian.jpg"); }

Page 63: Tranvanvu Report

private void radioButton4_CheckedChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("philippin.jpg"); } private void Form1_Load(object sender, EventArgs e) {

} }}

Execution Result

Page 64: Tranvanvu Report

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết Chương trình hiển thị các loại Pizza (hình ảnh, công thức và các thành

phần có trong Pizza)

Gợi ý: tạo class Pizza (Image, Recipe, Ingredients)

Nhập 5 mẫu Pizza tương ứng với 5 loại Pizza.

Tạo giao diện như hình, viết cho các sự kiện CheckedChanged cho các

Radio Button.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace CacLoaiBanh_Pizza{

Page 65: Tranvanvu Report

public partial class Form1 : Form { Pizza[] pi ={ new Pizza(CacLoaiBanh_Pizza.Properties.Resources.cheese_pizza, "Recipe 1", "Ingredients 1"), new Pizza(CacLoaiBanh_Pizza.Properties.Resources.italian_pizza, "Recipe 2", "Ingredients 2"), new Pizza(CacLoaiBanh_Pizza.Properties.Resources.veg_crunchy_pizza, "Recipe 3", "Ingredients 3"), new Pizza(CacLoaiBanh_Pizza.Properties.Resources.vegetable_pizza, "Recipe 4", "Ingredients 4"), new Pizza(CacLoaiBanh_Pizza.Properties.Resources.chinese_pizza, "Recipe 5", "Ingredients 5"), }; public Form1() { InitializeComponent(); }

private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked) { Pizza p = pi[0]; pictureBox1.Image = p.Img; label2.Text = p.Recipe; label3.Text = p.Ingredient; } }

private void radioButton2_CheckedChanged(object sender, EventArgs e) { if (radioButton2.Checked) { Pizza p = pi[1]; pictureBox1.Image = p.Img; label2.Text = p.Recipe; label3.Text = p.Ingredient; } }

private void radioButton3_CheckedChanged(object sender, EventArgs e) { if (radioButton3.Checked) { Pizza p = pi[2]; pictureBox1.Image = p.Img; label2.Text = p.Recipe; label3.Text = p.Ingredient; } }

private void radioButton4_CheckedChanged(object sender, EventArgs e)

Page 66: Tranvanvu Report

{ if (radioButton4.Checked) { Pizza p = pi[3]; pictureBox1.Image = p.Img; label2.Text = p.Recipe; label3.Text = p.Ingredient; } }

private void radioButton5_CheckedChanged(object sender, EventArgs e) { if (radioButton5.Checked) { Pizza p = pi[4]; pictureBox1.Image = p.Img; label2.Text = p.Recipe; label3.Text = p.Ingredient; } } }}

Execution Result

Page 67: Tranvanvu Report

Exercise3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Tạo giao diện như hình: 2 trackbar hoặc HscrollBar và VscrollBar

(minimunvalue=50, maximumvalue=chiều dài hoặc chiều rộng của Form), 1

PictureBox (xuất hiện vị trí bắt đầu là (50,50)).

Khi người dùng thay đổi giá trị trên thanh trượt của Trackbar hoặc scrollbar

thì hình sẽ di chuyển theo tọa độ tương ứng với giá trị thay đổi trên Trackbar

hoặc ScrollBar

Page 68: Tranvanvu Report

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Trackbar{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) { vScrollBar1.Maximum = this.Height - 100; hScrollBar1.Maximum = this.Width - 100; pictureBox1.Image = Image.FromFile("Adobe Illustrator CS2.png"); vScrollBar1.Value = 0; hScrollBar1.Value = 0; //pictureBox1.Location.X = pictureBox1.Location.X + 30; }

Page 69: Tranvanvu Report

private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { pictureBox1.Location = new Point(hScrollBar1.Value +20, vScrollBar1.Value+20); }

private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { pictureBox1.Location = new Point(hScrollBar1.Value + 20, vScrollBar1.Value + 20); } }}

Execution Result

Page 70: Tranvanvu Report

Exercise4

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Khi mới mở Form sẽ hiển thị lịch theo ngày hiện hành. Khi thay đổi ngày,

tháng , năm trên form (nhớ kiểm tra ngày hợp lệ) sau đó click nút Xem Lịch

thì sẽ hiển thị đúng ngày tháng năm đó vào groupbox bên phải (bao gồm cả

thứ trong tuần).

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Xemlich{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) { groupBox2.Text = "Lịch năm " + numericUpDown1.Value.ToString(); label4.Text = numericUpDown2.Value.ToString(); label5.Text = numericUpDown3.Value.ToString(); dointhang(); int nam, thang, ngay; nam = Convert.ToInt32(numericUpDown1.Value.ToString()); thang = Convert.ToInt32(numericUpDown2.Value.ToString()); ngay = Convert.ToInt32(numericUpDown3.Value.ToString()); DateTime t = new DateTime(nam, thang, ngay); label6.Text = t.DayOfWeek.ToString(); doithu(); }

Page 71: Tranvanvu Report

private void button1_Click(object sender, EventArgs e) { groupBox2.Text = "Lịch năm " + numericUpDown1.Value.ToString(); label4.Text = numericUpDown2.Value.ToString(); label5.Text = numericUpDown3.Value.ToString(); dointhang(); int nam, thang, ngay; nam = Convert.ToInt32(numericUpDown1.Value.ToString()); thang =Convert.ToInt32( numericUpDown2.Value.ToString()); ngay = Convert.ToInt32(numericUpDown3.Value.ToString()); DateTime t = new DateTime(nam, thang, ngay); label6.Text = t.DayOfWeek.ToString(); doithu(); } void dointhang() { decimal g = numericUpDown2.Value; if(g==1) label4.Text="Tháng Một"; else if(g==2) { label4.Text = "Tháng Hai"; } else if(g==3) { label4.Text = "Tháng Ba"; } else if(g==4) { label4.Text = "Tháng Bố:n"; } else if (g == 5) { label4.Text = "Tháng Năm"; } else if (g == 6) { label4.Text = "Tháng Sáu"; } else if (g == 7) { label4.Text = "Tháng Ba7y"; } else if (g == 8) { label4.Text = "Tháng Tám"; } else if (g == 9) { label4.Text = "Tháng Chín"; } else if (g == 10) { label4.Text = "Tháng Mười"; } else if (g == 11) {

Page 72: Tranvanvu Report

label4.Text = "Tháng Mười Một"; } else if (g == 12) { label4.Text = "Tháng Mười Hai"; } } void doithu() { if (label6.Text == "Monday") label6.Text = "Thứ Hai"; else if (label6.Text == "Tuesday") label6.Text = "Thứ Ba"; else if(label6.Text=="Wednesday") label6.Text = "Thứ tư"; else if (label6.Text == "Thursday") label6.Text = "Thứ năm"; else if (label6.Text == "Friday") label6.Text = "Thứ Sáu"; else if (label6.Text == "Saturday") label6.Text = "Thứ Ba7y"; else if (label6.Text == "Sunday") label6.Text = "Chu7 Nhật"; } }}

Execution Result

Page 73: Tranvanvu Report

Exercise5

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình Quản lý Đăng ký Khách hàng VIP cho Siêu thị CoopMark

như sau:

Khi khách hàng đăng ký thông tin khách hàng VIP, nhân viên quản lý khách

hàng thực hiện nhập mã số KH, họ tên, ngày sinh, địa chỉ, nghề nghiệp của

khách.

Chương trình thực hiện:

Xây dựng class KhachHang (msKH, tenKH, Ngaysinh, Diachi, NgheNghiep)

Xây dựng class DanhSachKhachHang để quản lý Thêm Khách Hàng vào

danh sách khách hàng thân thiết, xem tổng số khách hàng trong danh

sách.

- Form_Load: Danh Sách khách hàng chưa có thành viên nào, con trỏ

văn bản đặt vào textbox mã số khách hàng, các button Dangky,

Page 74: Tranvanvu Report

NhapMoi, TongKet bị mờ (enabled=false). Thực hiện nhập các thông

tin tương ứng. Khi nhập đầy đủ thông tin (kiểm tra dữ liệu hợp lệ) thì

btnDangky có tác dụng.

- btnDangKy: thực hiện thêm khách hàng vào Danh sách khách hàng,

đồng thời hiển thị thông tin khách hàng vừa đăng ký thành công vào

messagebox như hình bên dưới. btnNhapMoi, btnTongKet .

- btnNhapMoi: khởi tạo lại trạng thái ban đầu của Form, btnNhapMoi bị

mờ.

- btnTôngKet: hiển thị Tổng khách hàng có trong Danh sách khách hàng

vào messagebox như hình bên dưới. btnTongKet bị mờ.

- btnThoat_Click: hỏi người dùng có chắc chắn thoát khỏi chương trình

hay không? Yes: thoát, No: không.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace CoopMark_DangKiKhachHang{ public partial class Form1 : Form { int tongket=0; KhachHang kh; DanhSachKhachHang dskh;

public Form1() { InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) { dskh= new DanhSachKhachHang(); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox1.Focus(); btnDangki.Enabled = false;

Page 75: Tranvanvu Report

btnNhapmoi.Enabled = false; btnTongket.Enabled = false; }

private void numericUpDown2_ValueChanged(object sender, EventArgs e) { numericUpDown1.Minimum = 1; if (numericUpDown2.Value == 2) { if (numericUpDown3.Value % 400 == 0) numericUpDown1.Maximum = 29; else numericUpDown1.Maximum = 28; } if (numericUpDown2.Value == 4 || numericUpDown2.Value == 6 || numericUpDown2.Value == 9 || numericUpDown2.Value == 11) { numericUpDown1.Maximum = 30; } if (numericUpDown2.Value == 1 || numericUpDown2.Value == 3 || numericUpDown2.Value == 5 || numericUpDown2.Value == 7 || numericUpDown2.Value == 8 || numericUpDown2.Value == 10 || numericUpDown2.Value == 12) { numericUpDown1.Maximum = 31; }

} private void btnDangki_Click(object sender, EventArgs e) { kiemtra(); int a = Convert.ToInt32(numericUpDown1.Value); int b = Convert.ToInt32(numericUpDown2.Value); int c = Convert.ToInt32(numericUpDown3.Value); kh = new KhachHang(textBox1.Text, textBox2.Text, a, b, c, textBox3.Text, domainUpDown1.Text); btnNhapmoi.Enabled = true; btnTongket.Enabled = true; dskh.THEMKHACHHANG(kh); } private void btnTongket_Click(object sender, EventArgs e) { MessageBox.Show("Đã có " + dskh.DEMKHACHHANG + " khách hàng là thành viên vip","Tố7ng kê:t"); } private void btnNhapmoi_Click(object sender, EventArgs e) { textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox1.Focus(); btnDangki.Enabled = false; btnNhapmoi.Enabled = false; btnTongket.Enabled = false; } public void kiemtra()

Page 76: Tranvanvu Report

{ if (textBox1.Text == "" ) MessageBox.Show("Ban chua nhap gia tri", "Thống báo"); if( textBox2.Text == "" ) MessageBox.Show("Ban chua nhap gia tri", "Thống báo"); if( textBox3.Text == "") MessageBox.Show("Ban chua nhap gia tri","Thống báo"); } private void textBox3_TextChanged(object sender, EventArgs e) { btnDangki.Enabled = true; }

private void btnThoat_Click(object sender, EventArgs e) { DialogResult r; r = MessageBox.Show("Bạn muố:n thoát chương trình", "Thoát",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1); if (r == DialogResult.Yes) this.Close(); } }}

Execution Result

Page 77: Tranvanvu Report

Module : MaskEditBox, DateTimePicker, MonthCalendar, Timer, ToolTip

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầKhi Form Load thì có dòng chữ “TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM” chạy ngang màn hình (dùng timer)

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace chuchay{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { lbchuchay.Left += 20; if (lbchuchay.Left > this.Width) { lbchuchay.Left = 0; } } }}

Page 78: Tranvanvu Report

Execution Result

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầHãy tạo một Project dùng để quản lý giờ thuê máy của một phòng máy có giao diện và yêu cầu như sau:o Khi form vừa load lên màn hình thì

các Button Bắt đầu có Enabled=True các Button Kết thúc có Enabled=False Các Label có Caption= rổng

o Khi người sử dụng Click vào Button Bắt Đầu của một máy: Hiện Giờ hiện tại lên Label bắt đầu của máy tương ứng Cho thuộc tính Enabled của Button Bắt đằu =False Cho thuộc tính Enabled của Button Kết thúc =True

o Khi người sử dụng Click vào Button Kết thúc của một máy thì:

Hiện Giờ hiện tại lên Label Kết thúc của máy tương ứng

Dựa vào Giờ và Phút (không cần quan tâm đến số giây) trên các label Bắt đầu và Kết thúc tính ra số tiến phải trả, rồi dùng Msgbox để thông báo cho người sử dụng như hình bên (tiền thuê máy là 3000đ/giờ)

Xóa nội dung trong các Label Bắt đầu và Kết thúc Cho thuộc tính Enabled của Button Bắt đằu =True Cho thuộc tính Enabled của Button Kết thúc =False

Page 79: Tranvanvu Report

Khi người sử dụng Click vào nút Dừng chương trình thì kiểm tra nếu có máy đang thuê phải nhắc nhở người sử dụng bằng MsgBox, khi nào người sử dụng thật sự muốn kết thúc thì mới dừng chương trình.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Quanliphongmay{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void button2_Click(object sender, EventArgs e) { //string a = DateTime.Now.ToShortTimeString(); // label3.Text = a;

label1.Text = DateTime.Now.ToLongTimeString().ToString(); button2.Enabled = false; button1.Enabled = true; }

private void Form1_Load(object sender, EventArgs e) { button1.Enabled = false;

//------------- // DateTime a = new DateTime(); //Convert.ToDateTime(label1.Text); // label1.Text = DateTime.Now.ToLongTimeString().ToString(); // DateTime dt1 = DateTime.Parse(label1.Text);

// label2.Text = DateTime.Now.ToLongTimeString().ToString(); // DateTime dt2 = DateTime.Parse(label2.Text); // string t = dt1.ToLongTimeString() - dt2.ToLongTimeString();

}

Page 80: Tranvanvu Report

private void button1_Click(object sender, EventArgs e) { label2.Text = DateTime.Now.ToLongTimeString().ToString(); DateTime dt1 = DateTime.Parse(label1.Text); TimeSpan tp = DateTime.Parse(DateTime.Now.ToLongTimeString()) - dt1; label3.Text = tp.ToString(); DateTime phut = DateTime.Parse(label3.Text); int catphut = Convert.ToInt32( phut.Minute.ToString()); label4.Text = catphut.ToString(); tinhtien(); button1.Enabled = false; button2.Enabled = true;

if (MessageBox.Show("So gio da choi la: " + tp + "\n So tien phai tra la : " + label7.Text, "Thong bao may 1", MessageBoxButtons.YesNo) == DialogResult.Yes) { label1.Text = ""; label2.Text = ""; } } void tinhtien() { int a; a = Convert.ToInt32 (label4.Text ); int b; b= a *50; label7.Text=b.ToString(); }

private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (button1.Enabled == true) { if( MessageBox.Show("Chua tinh tien", "Thong bao", MessageBoxButtons.YesNo) == DialogResult.Yes); { e.Cancel = true; } } } }}

Execution Result

Page 81: Tranvanvu Report

Exercise3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ1. Giao diện thiết kế như hình 2. Validation cho các fields đều phải nhập.

Page 82: Tranvanvu Report

TextBox

MaskTextBox

- Khi bỏ trống 1 field ( thí dụ : Name khi focus vào field khác sẽ có thông báo lỗi và cho focus về ô cần nhập)

Chú ý : thay đổi 1 số fields cho phù hợp với bản địa – Không có State

- Khi nhấn submit sẽ có 1 MessageBox hiển thị đầy đủ thông tin vừa nhập.

- Quy định của maskTextBox Phone là 000-0000000

- ComboBox Country chỉ chứa 2 nước VietNam và Thailan ( chứa 3 thành phố Pattaya,ChiengMai và Bankok)

Hint : dựa vào event Leave của

Page 83: Tranvanvu Report

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace maskTextBox{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void kiemtra() { if (textBox1.Text == "") { MessageBox.Show("Bạn chưa nhập tên"); //return false; } if (maskedTextBox1.Text == " / /") { MessageBox.Show("Bạn chưa nhập số: điện thoại"); //return false; } if (textBox2.Text == "") { MessageBox.Show("Bạn chưa nhập địa chỉ7"); // return false; }

if (listBox1.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn thành phố:"); // return false; }

if (comboBox1.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn quố:c gia"); //return false; } if (listBox2.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn phâ7m châ:t"); //return false; } if (maskedTextBox2.Text == "") {

Page 84: Tranvanvu Report

MessageBox.Show("Bạn chưa nhập số: điện thoại"); //return false; } if (textBox3.Text == "") MessageBox.Show("Bạn chưa nhập Email"); //return false; }

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { listBox1.Items.Clear(); if (comboBox1.Text == "Viet Nam") { listBox1.Items.Add("Hà nội"); listBox1.Items.Add("Nha trang"); listBox1.Items.Add("Hốc chí minh"); }

if (comboBox1.Text == "Thailand") { listBox1.Items.Add("Bannkok"); listBox1.Items.Add("Pattaya"); listBox1.Items.Add("ChiengMai"); }

} private void textBox1_Leave(object sender, EventArgs e) { if (textBox1.Text == "") { MessageBox.Show("Bạn chưa nhập tên"); textBox1.Focus(); } } private void maskedTextBox1_Leave(object sender, EventArgs e) { if (maskedTextBox1.Text == " / /") { MessageBox.Show("Bạn chưa nhập ngày tháng năm sinh"); maskedTextBox1.Focus(); } } private void textBox2_Leave(object sender, EventArgs e) { if (textBox2.Text == "") { MessageBox.Show("Bạn chưa nhập địa chỉ7"); textBox2.Focus(); } } private void maskedTextBox2_Leave(object sender, EventArgs e) { if (maskedTextBox2.Text == "") { MessageBox.Show("Bạn chưa nhập số: điện thoại"); maskedTextBox2.Focus();

Page 85: Tranvanvu Report

} } private void comboBox1_Leave(object sender, EventArgs e) { if (comboBox1.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn quố:c gia"); comboBox1.Select(); } }

private void textBox3_Leave(object sender, EventArgs e) { if (textBox3.Text == "") { MessageBox.Show("Bạn chưa nhập Email"); textBox3.Focus(); } } private void button1_Click(object sender, EventArgs e) { try { MessageBox.Show("Tên nhân vien :" + textBox1.Text + "\n" + "Name sinh :" + maskedTextBox1.Text + "\n" + "Địa chỉ7 :" + textBox2.Text + "\n" + "Thành phố: :" + listBox1.SelectedItem.ToString() + "\n" + "Quố:c gia :" + comboBox1.SelectedItem.ToString() + "\n" + "Phâ7m châ:t :" + listBox2.SelectedItem.ToString() + "\n"+ "Số: điện thoại :" +maskedTextBox2.Text + "\n" + "Email :" +textBox1.Text + "\n" + "Ngày vào làm :" + dateTimePicker1.Value.ToString()

); } catch (Exception) { MessageBox.Show("Bạn chưa nhập dữ liệu đâcy đu7"); textBox1.Focus(); } } private void listBox1_Leave(object sender, EventArgs e) { if (listBox1.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn thành phố:"); // return false; } } private void listBox2_Leave(object sender, EventArgs e) { if (listBox2.SelectedIndex == -1) { MessageBox.Show("Bạn chưa chọn phâ7m châ:t");

Page 86: Tranvanvu Report

// return false; }

} private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { this.linkLabel1.LinkVisited = true; System.Diagnostics.Process.Start("http://www.vnexpress.net"); } }}

Execution Result

Page 87: Tranvanvu Report

Module : Mouse Event handling, Keyboard event handling

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầThiết kế và lập trình cho chương trình Calculator đơn giản trong windows

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Calculator{ public partial class Form1 : Form { bool kiemtra; string pheptinh; double so1; double so2; double ketqua; public Form1() { InitializeComponent(); kiemtra = true; }

private void Form1_Load(object sender, EventArgs e) { // Button btn = (Button)sender;

}

private void btnXoa_Click(object sender, EventArgs e) { textBox1.Clear(); }

private void btn1_Click(object sender, EventArgs e) {

Page 88: Tranvanvu Report

Button clicked = (Button)sender; if (kiemtra) { textBox1.Text = clicked.Text; kiemtra = false; } else textBox1.Text += clicked.Text; }

private void btnCong_Click(object sender, EventArgs e) { pheptinh = "+"; kiemtra = true; so1 = double.Parse(textBox1.Text);

}

private void btnBang_Click(object sender, EventArgs e) { so2 = double.Parse(textBox1.Text); kiemtra = true; ketqua = so1 + so2; textBox1.Text = ketqua.ToString(); switch(pheptinh) { case "+": ketqua = so1 + so2; textBox1.Text = ketqua.ToString(); break; case "-": ketqua = so1 - so2; textBox1.Text = ketqua.ToString(); break; case "*": ketqua = so1 * so2; textBox1.Text = ketqua.ToString(); break; case "/": ketqua = so1 / so2; textBox1.Text = ketqua.ToString(); break; } }

private void btnTru_Click(object sender, EventArgs e) { pheptinh = "-"; kiemtra = true; so1 = double.Parse(textBox1.Text); }

private void btnNhan_Click(object sender, EventArgs e) { pheptinh = "*"; kiemtra = true; so1 = double.Parse(textBox1.Text); }

Page 89: Tranvanvu Report

private void btnChia_Click(object sender, EventArgs e) { pheptinh = "/"; kiemtra = true; so1 = double.Parse(textBox1.Text); } }}

Execution Result

Page 90: Tranvanvu Report

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình thực hiện việc thực hành đánh máy chữ, giao diện như hình

bên.

Khi nhấn 1 kí tự hoặt 1 số nào thì kí tự hoặt số đó chuyển sang màu đỏ, khi thả phím ra thì màu chữ trở lại màu đen. Đồng thời ký tự vừa được nhấn sẽ hiện bên dưới Text box.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace KeyBoard{ public partial class Form1 : Form { Button b; public Form1() { InitializeComponent(); }

private void Form1_KeyDown(object sender, KeyEventArgs e) { int k = e.KeyValue;

foreach (Control c in this.Controls) { if (c is Button && c.Text.Length == 1 && c.Text[0] == k) { b = (Button)c; b.ForeColor = Color.Red; textBox1.Text += b.Text; } }

Page 91: Tranvanvu Report

}

private void Form1_KeyUp(object sender, KeyEventArgs e) { int k = e.KeyValue;

foreach (Control c in this.Controls) { if (c is Button && c.Text.Length == 1 && c.Text[0] == k) { b = (Button)c; b.ForeColor = Color.Black; textBox1.Text += b.Text; } } } }}

Execution Result

Page 92: Tranvanvu Report

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầTạo một chương trình vẽ hình đơn giản (dùng các sự kiện của chuột để vẽ) có thể minh họa mspaint

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Paint_Don_gian{ public partial class Form1 : Form { int x1, y1; int i = 0; int loaihinh =0; Point[] dsd; public Form1() {

InitializeComponent(); dsd = new Point[100]; } void doigiatri(ref int a, ref int b) { int tam = a; a = b; b = tam; } private void button2_Click(object sender, EventArgs e) { loaihinh = 1; }

private void button3_Click(object sender, EventArgs e) { loaihinh = 2; }

private void button4_Click(object sender, EventArgs e) {

Page 93: Tranvanvu Report

loaihinh = 3; }

private void button5_Click(object sender, EventArgs e) { loaihinh = 4; }

private void button6_Click(object sender, EventArgs e) { loaihinh = 5; } private void panel1_MouseUp(object sender, MouseEventArgs e) { int x2 = e.X; int y2 = e.Y; Point[] pts = new Point[]{ new Point(x1,y1), new Point(x1,x2-x1), new Point(x2,y2) }; Graphics g = panel1.CreateGraphics(); if (e.Button == MouseButtons.Left) { if (loaihinh == 1) g.DrawLine(Pens.Red, x1, y1,x2, y2);

else { if (x1 > x2) doigiatri(ref x1, ref x2); if (y1 > y2) doigiatri(ref y1, ref y2); switch (loaihinh) { case 2: g.DrawRectangle(Pens.Red, x1, y1, x2 - x1, y2 - y1); break; case 3: g.FillRectangle(Brushes.Red, x1, y1, x2 - x1, y2 - y1); break; case 4: g.DrawEllipse(Pens.Red, x1, y1, x2 - x1, y2 - y1); break; case 5: g.FillEllipse(Brushes.Red, x1, y1, x2 - x1, y2 - y1); break; case 6: g.DrawPolygon(Pens.Red,pts); break; } } Invalidate(); } } private void panel1_MouseDown(object sender, MouseEventArgs e)

Page 94: Tranvanvu Report

{ x1 = e.X; y1 = e.Y; dsd[i].X = x1; dsd[i].Y = y1; i++; } private void button7_Click(object sender, EventArgs e) { loaihinh = 6; }

}}

Execution Result

Page 95: Tranvanvu Report

Exercise3

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình tạo giao diện như sau:

Page 96: Tranvanvu Report

Khi chương trình chạy, mỗi lần người sử dụng click vào các nút mũi tên thì

hình tròn sẽ dịch chuyển 1 khoảng là 5 pixel theo hướng mũi tên đã click ( sử

dụng thuộc tính left, top của hình)

Lưu ý: hình tròn chỉ dịch chuyển bên trong phạm vi của panel.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Hinhdichuyen{ public partial class Form1 : Form { Point vitri = new Point(); public Form1() { InitializeComponent(); vitri.X = pictureBox1.Location.X; vitri.Y = pictureBox1.Location.Y; }

private void button5_Click(object sender, EventArgs e)

Page 97: Tranvanvu Report

{ this.Close(); }

private void button1_Click(object sender, EventArgs e) { if (pictureBox1.Location.X < panel1.Width-60) { vitri.X = vitri.X + 20; // vitri.Y=vitri.Y + 20; pictureBox1.Location = vitri; } else MessageBox.Show("Khống thê7 di chuyen xa hơn vêc bên pha7i");

}

private void button2_Click(object sender, EventArgs e) { if (pictureBox1.Location.X > 0) { vitri.X = vitri.X - 20; pictureBox1.Location = vitri; } else MessageBox.Show("Khống thê7 di chuyen xa hơn vêc bên trái"); }

private void button3_Click(object sender, EventArgs e) { // MessageBox.Show("" + pictureBox1.Location.X.ToString()); // MessageBox.Show("" + panel1.Height.ToString()); if (pictureBox1.Location.Y < panel1.Height - 50) { vitri.Y = vitri.Y + 20; pictureBox1.Location = vitri; } else MessageBox.Show("Khống thê7 di chuyen xa hơn xuố:ng phía dưới"); }

private void button4_Click(object sender, EventArgs e) { if (pictureBox1.Location.Y >4) { vitri.Y = vitri.Y - 20; pictureBox1.Location = vitri; } else MessageBox.Show("Khống thê7 di chuyen xa hơn lên phía trên"); } }}

Page 98: Tranvanvu Report

Execution Result

Exercise4

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

1. Xây dựng form OutFit Details giao diện thiết kế như hình

Page 99: Tranvanvu Report

- Nhấn Next hay Previous sẽ đi qua sản phẩm kế tiếp hay trước đó.

- Validation để báo đã đi tới record cuối hay record đầu ( không di chuyển

được nữa)

- Khi bấm Print sẽ in ra PrintPreviewDialog bằng các API GDI + ;

- Gợi ý:

o Khai báo một class chứa sản phẩm (Description, MyPicture)

o Khai báo 1 ArrayList arr chứa các sản phẩm

o Nhập 5 Sản phẩm vào arr

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Printing;

Page 100: Tranvanvu Report

using System.Linq;using System.Text;using System.Windows.Forms;

namespace OutFit_Details{ public partial class Form1 : Form { Products[] arr = {new Products(OutFit_Details.Properties.Resources._1,"T_shirt") , new Products(OutFit_Details.Properties.Resources._2,"Short jacket "), new Products(OutFit_Details.Properties.Resources._3,"Shawl "), new Products(OutFit_Details.Properties.Resources._5,"skirt "), new Products(OutFit_Details.Properties.Resources._6,"Overcoat ") }; int i = 0; int j = 5;

public Form1() { InitializeComponent(); }

private void button2_Click(object sender, EventArgs e) { i++; if (i < arr.Count()) {

Products p = arr[i]; pictureBox1.Image = p.Img; label2.Text = p.Details;

while (j < 5) { j++; }

} else MessageBox.Show("Please click Previous button...!!!"); } private void Form1_Load(object sender, EventArgs e) { label2.Text = arr.First().Details; pictureBox1.Image = arr.First().Img; }

private void button1_Click(object sender, EventArgs e) { j--; if (j >= 0) { Products p = arr[j]; pictureBox1.Image = p.Img; label2.Text = p.Details;

Page 101: Tranvanvu Report

while (i > 0) { i--; }

} else MessageBox.Show("Please click Next button...!!!"); }

////////////////////////////PRINTING////////////// private void button3_Click(object sender, EventArgs e) { try { PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage); PrintPreviewDialog dlg = new PrintPreviewDialog(); dlg.Document = pd; dlg.ShowDialog(); } catch (Exception exp) { System.Console.WriteLine(exp.Message.ToString()); } } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { char tam; string s; s = label2.Text; int i = 0; if (i < s.Length) { tam = s[i]; i++; } float leftMargin = e.MarginBounds.Left; float topMargin = e.MarginBounds.Top; Font printFont = new Font(label2.Font, FontStyle.Regular); SolidBrush myBrush = new SolidBrush(label2.ForeColor); e.Graphics.DrawString(s, printFont, myBrush, leftMargin, 50, new StringFormat()); myBrush.Dispose(); Bitmap bitmap = new Bitmap(pictureBox1.Image); e.Graphics.DrawImage(bitmap, 200, 200); } } }

Page 102: Tranvanvu Report

Execution Result

Page 103: Tranvanvu Report

Exercise5

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Xây dựng chương trình Wordpad đơn giản như hình bên dưới:

Sử dụng các Commond dialog: SaveFileDialog, OpenFileDialog, ColorDialog,

FontDialog

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;

Page 104: Tranvanvu Report

using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;

namespace Notepad_Don_Gian{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog s = new SaveFileDialog(); s.Filter = ("Text File |*.txt,Rich TextBox|*.Rft"); if (s.ShowDialog() == DialogResult.OK) { string fileName = s.FileName; FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); Byte[] b = new Byte[richTextBox1.Rtf.Length]; b.Initialize(); b = Encoding.ASCII.GetBytes(richTextBox1.Rtf.ToString()); fs.Write(b, 0, b.Length); fs.Close(); } }

private void openToolStripMenuItem_Click(object sender, EventArgs e) { try { OpenFileDialog op = new OpenFileDialog(); if (op.ShowDialog() == DialogResult.OK) { string fileName = op.FileName; FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); Byte[] b = new Byte[1024]; b.Initialize(); // int r; // r = fs.Read(b, 0, 1024); string content = ""; while ((fs.Read(b, 0, 1024)) != 0) { string s = ""; s = Encoding.ASCII.GetString(b, 0, 1024); content += s; b.Initialize(); } richTextBox1.Rtf = content; fs.Close(); } } catch (Exception ex)

Page 105: Tranvanvu Report

{ MessageBox.Show(ex.ToString()); }

}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { SolidBrush b = new SolidBrush(Color.Black); Point p = new Point(20, 20); string text = richTextBox1.Text; e.Graphics.DrawString(text, richTextBox1.Font, b, p); } private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e) { PrintPreviewDialog p = new PrintPreviewDialog(); p.Document = printDocument1; p.ShowDialog(); }

private void printToolStripMenuItem_Click(object sender, EventArgs e) { printDialog1.Document = printDocument1; printDocument1.DocumentName = "Text";

printDialog1.ShowDialog(); }

private void exitToolStripMenuItem_Click(object sender, EventArgs e) { //richTextBox1.a this.Close();

} }}

Execution Result

Page 106: Tranvanvu Report
Page 107: Tranvanvu Report

Module 6 : ADVANCED CONTROLS

Exercise1

Problem

M c đíchụ

hiểu và áp dụng được các control: TreeView, ListView

Yêu c uầ

Viết chương trình nhập danh danh bạ với yêu cầu giao diện như hình

dưới.

Khi chương trình vừa hiển thị, treeview chứa tất cả các chữ cái từ A->Z.

Nhằm mục đích tiện lợi cho người sử dụng khi tìm tên, khi người sử

dụng nhập tên của một người nàp đó, chương trình sẽ đưa tên người

này vào treeview ở vị trí treenode có tương ứng với chữ các đầu của

tên (xem hình).

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace bt1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); Load(); } void Load() { for (char i = 'A'; i <= 'Z'; i++) { treeView1.Nodes.Add(i.ToString());

Page 108: Tranvanvu Report

} }

private void btnadd_Click(object sender, EventArgs e) { try { string temp = txtlname.Text.Trim().ToUpper()[0].ToString(); foreach (TreeNode i in treeView1.Nodes) { if (i.Text == temp) { string s = txtlname.Text + "," + txtfname.Text; i.Nodes.Add(s); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }

private void btnexit_Click(object sender, EventArgs e) { this.Close(); } }}

Execution Result

Page 109: Tranvanvu Report

Exercise2

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết chương trình nhập dữ liệu vào Listview như hình bên dưới.

Người sử dụng nhập thông tin: (lastname, firstname, phone) và sử

dụng nút Add Name để nhập vào listview.

Các contact có biểu tượng (icon) hiển thị như hình.

Người sử dụng có thể thay đổi chế độ view của listview bằng menu

View.

Menu FormatListview hiểu thị hộp thọai chọn màu dùng để thay đổi

dạng grid của Listview.

Page 110: Tranvanvu Report

Gợi ý:

o Sử dụng ListviewItem để thêm một dòng mới cho Listview

o Sử dụng ImageList để chứa thư viện icon cho Listview. Kết nối Listview

với ImageList.

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace bt2{ public partial class Form1 : Form { public Form1() { InitializeComponent(); listView1.SmallImageList = imageList1; } private void btnadd_Click(object sender, EventArgs e) { ListViewItem item = new ListViewItem(txtlname.Text); item.SubItems.Add(txtfname.Text); item.SubItems.Add(txtphone.Text); item.ImageIndex = 0; listView1.Items.Add(item); txtfname.Clear(); txtlname.Clear(); txtphone.Clear(); } private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { ListViewItem item = e.Item; txtlname.Text = item.Text; txtfname.Text = item.SubItems[1].Text; txtphone.Text = item.SubItems[2].Text; } private void Form1_Load(object sender, EventArgs e) { listView1.Columns.Clear(); listView1.MultiSelect = true; listView1.GridLines = true; listView1.FullRowSelect = true; ColumnHeader columnHeader1 = new ColumnHeader();

Page 111: Tranvanvu Report

ColumnHeader columnHeader2 = new ColumnHeader(); ColumnHeader columnHeader3 = new ColumnHeader(); columnHeader1.Text = "LastName"; columnHeader1.Width = 85; columnHeader2.Text = "FirstName"; columnHeader2.Width = 90; columnHeader3.Text = "Telephone"; columnHeader3.Width = 90; listView1.Columns.Add(columnHeader1); listView1.Columns.Add(columnHeader2); listView1.Columns.Add(columnHeader3); } }}

Execution Result

Page 112: Tranvanvu Report

Module 7 : ADVANCED CONTROLS (TT)

Exercise1

Problem

M c đíchụ

Sử dụng các sự kiện(event) cơ bản trên form

Yêu c uầ

Viết trình duyệt web đơn giản

Code Listingusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace TrinhDuyetWebDonGian{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void btnBack_Click(object sender, EventArgs e) { if (webBrowser1.CanGoBack) webBrowser1.GoBack(); }

private void btnForward_Click(object sender, EventArgs e) { if (webBrowser1.CanGoForward) webBrowser1.GoForward(); }

private void btnHome_Click(object sender, EventArgs e) { try { webBrowser1.Navigate("www.yahoo.com"); } catch (Exception ex)

Page 113: Tranvanvu Report

{ throw ex.InnerException; } }

private void btnStop_Click(object sender, EventArgs e) { webBrowser1.Stop(); }

private void btnGo_Click(object sender, EventArgs e) { webBrowser1.Navigate(txtAdd.Text); }

private void btnRefesh_Click(object sender, EventArgs e) { webBrowser1.Refresh(); }

private void btnSearch_Click(object sender, EventArgs e) { if (txtSearch.Text == "") webBrowser1.Navigate("www.google.com"); else webBrowser1.Navigate("http://www.google.com.vn/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=" + txtSearch.Text); }

private void txtAdd_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) btnGo_Click(sender, e); }

private void txtSearch_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) btnSearch_Click(sender, e); }

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e) { try { prbProgress.Visible = true; int a = (int)e.MaximumProgress; prbProgress.Maximum = (int)e.MaximumProgress; prbProgress.Value = (int)e.CurrentProgress; Console.WriteLine(a.ToString()); if (prbProgress.Value == prbProgress.Maximum) { prbProgress.Visible = false; } } catch (Exception ex)

Page 114: Tranvanvu Report

{ MessageBox.Show(ex.ToString()); } lblProgress.Text = webBrowser1.StatusText; lblSatus.Text = webBrowser1.StatusText; }

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {

} }}

Execution Result