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

Thực hành window form C#

85 987 1

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 4,9 MB

Nội dung

+ Sử dụng các thuộc tính, phương thức và sự kiện của các control: Label, Textbox, Button, ErrorProvider, RadioButton, CheckBox, GroupBox, Panel.. Yêu Cầu Thiết kế form chỉ chứa 1 button

Trang 1

 Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module

 Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng Những sinh viên chưa hoàn tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà

 Các bài tập sinh viên làm kể cà ở nhà phải nộp lại cho giảng viên hướng dẫn để lấy một cột điểm vì thế phải lưu theo đúng cấu trúc của tùng bài

Trang 2

Module 1 Console

Nội dung kiến thức thực hành:

+ Làm quen với ngôn ngữ C#

+ Tạo ứng dụng dạng Console

+ Chuyển đổi kiểu dữ liệu

Yêu cầu:

Tất cả các bài tập lưu trong thư mục: MaSV_HoTen\Tuan1

Tên project là Module1BaiSo_HoTenSV

Trang 3

Console.Write("Nhap ten cua ban: ");

string ten = Console.ReadLine();

Xuất ra mà hình yêu cầu có dạng:

Nhap So Thu Nhat A: ??

Nhap So Thu Hai B: ??

Tong cua ?? Va ?? La: ??

Trang 4

Hướng dẫn:

Hàm Main() viết code như sau:

int nSo1, nSo2, nTong=0;

Console.Clear();

Console.Write("{0}", "Nhap So thu nhat: ");

// read first number from user

nSo1 = Convert.ToInt32(Console.ReadLine());

Console.Write("Nhap So thu hai: ");

// read second number from user

nSo2 = Convert.ToInt32(Console.ReadLine());

nTong = nSo1 + nSo2;

Console.WriteLine("Tong cua " + nSo1 + " Va " + nSo2 + " La " + nTong);

Console.ReadLine();

+ Mở rộng làm các phép tính cơ bản (cộng, trừ, nhân, chia) nhưng viết theo dạng hàm

Bài 4

+ Giải và biện luận phương trình bậc 1 : ax+b=0

+ Sinh viên chú ý rằng phương trình có 3 trường hợp: vô nghiệm, vô số nghiệm và

có một nghiệm

void GiaiPTBac1( int a, float b)

xem hình để hiểu rõ yêu cầu

Trang 5

Sử dụng một số hàm toán học và nhập dữ liệu từ bàn phím Kết hợp định dạng xuất

dữ liệu.( làm quen class Math)

Math.Pow(x,y) lấy xy

Math.Sqrt(x) lấy căn bậc 2 của x

Math.Round(x,2) làm tròn x tới 2 đơn vị

+ Giải và biện luận phương trình bậc 2 : ax2+bx+c=0

+ Sinh viên chú ý rằng phương trình có 5 trường hợp: vô nghiệm, vô số nghiệm và

có một nghiệm, có 2 nghiệm phân biệt, có 1 nghiệm kép

+ xem hình để hiểu rõ yêu cầu

Trang 6

Bài 6

Mục đích:

Sử dụng một số hàm lượng giác và nhập dữ liệu từ bàn phím Kết hợp định dạng xuất

dữ liệu.( tiếp tục làm quen với class Math)

Math.PI lấy số PI

Math.Sin(a) tính sin, với a là radian

Math.Cos(a) tính Cos, với a là radian

Math.Tan(a) tính Tan, với a là radian

Yêu cầu:

+ Tạo Project mới với tên là CacHamLuongGiac:

+ Nhập 1 góc x Tính và xuất sinx, cosx, tgx, cotgx

+ Sinh viên chú ý rằng hàm lượng giác truyền vào là 1 số Radian, do đó các em phải đổi góc

x ra radian, công thức đổi như sau a=x*PI/180

+ Xem hình để hiểu rõ yêu cầu

Gợi ý tính hàm sin:

double fx;

Console.Write("Nhap vao 1 goc: ");

fx = Convert.ToDouble(Console.ReadLine());

double rad = fx * Math.PI / 180;

Console.WriteLine("Sin({0})={1}",fx,Math.Sin(rad));

Trang 7

+ Tạo Project mới với tên là ChuViDienTichTamGiac:

+Nhập cạnh a>0, b>0, c>0 Nếu a, b, c tạo thành tam giác thì hãy tính và xuất chu vi, diện tích hình tam giác Ngược lại thông báo “Không tạo thành tam giác”

HD: cv=a+b+c, p=cv/2 và dt=√ ( ) ( ) ( )

Bài 8

Viết chương trình tính chu vi và diện tích của các hình tam giác, hình chữ nhật, hình vuông, hình tròn Chương trình cho phép nhập thông số cho 1 trong 4 hình trên và xuất kết quả ra màn hình

Yêu cầu viết hàm dang:

static void Main(string[] args)

Trang 9

Module 2 GUI

Nội dung kiến thức thực hành:

+ Tạo ứng dụng trên Windows Form

+ Sử dụng các thuộc tính, phương thức và sự kiện của các control: Label, Textbox, Button, ErrorProvider, RadioButton, CheckBox, GroupBox, Panel

Yêu cầu:

 Tất cả các bài tập lưu trong thư mục: MaSV_HoTen\Tuan2\

 Tên project là Module2BaiSo_HoTenSV

 Đổi tên form tương ứng với mục đích của bài

Bài 1

Mục đích:

Sử dụng các properties, methods và event của các đối tượng trong Windows Form

Yêu Cầu

Thiết kế form chỉ chứa 1 button (xem hình)

Khi form hiển thị, sẽ xuất ngay messageBox hiển thị lời chào như sau

Và khi người sủ dụng Click và button hay vào form củng sẽ xuất hiện các message box hiể thị các thông báo tương ứng như :

Button was clicked

Trang 10

Form was clicked

Hướng Dẫn:

// sự kiện khi Button được click

private void bntClickMe_Click( object sender, EventArgs e )

{

MessageBox.Show( "Button was clicked." );

}

// sự kiện khi load form

private void frmSimpleEvent_Load(object sender, EventArgs e)

{

MessageBox.Show("Hi , Welcome to C# 2010 programming!");

}

// sự kiện khi form được Click

private void frmSimpleEvent _Click(object sender, EventArgs e)

Sử dụng các properties, methods và event của các đối tượng trong Windows Form

Thiết kế Form sau:

txtYourName txtYearOfBirth

btnExit

btnClear btnShow

errorProvider

Trang 11

Yêu cầu:

 Chương trình cho phép nhập tên, năm sinh vào Textbox YourName và Year of birth tương ứng Nếu YourName không nhập dữ liệu, Year of birth không phải là số thì phải thông báo lỗi (dùng ErrorProvider)

 Người dùng nhấn nút Show sẽ hiển thị thông tin nhập vào MessageBox bao gồm: tên, tuổi (năm hiện tại – năm sinh)

 Người dùng nhấn nút Clear sẽ xóa hết thông tin đã nhập trên các Textbox, đồng thời đặt con trỏ văn bản vào Textbox YourName

 Nút Exit xác nhận người dùng có thực sự muốn thoát khỏi chương trình không? (Yes: thoát, No: không)

 Nhấn phím Esc tương đương nhấn nút Exit

Hướng dẫn:

 Danh sách các thuộc tính của các object:

frmBaiT

ap1

Name: frmBaiTap1 Text: My name Project

FontName: Tahoma

FontSize: 11

AcceptButton: btnShow (nhận sự kiện click

chuột khi nhấn Enter)

CancelButton: btnExit (nhận sự kiện click chuột

Leave (mất tiêu điểm)

txtYear Name: txtYear

Trang 12

Lần lượt thực hiện click chọn từng phần tử trên Form theo thứ tự nhận tiêu điểm:

Trang 13

Bài 3

Thiết kế giao diện như hình sau:

Viết lệnh để chương trình hoạt động như sau:

 Nhấn vào Button btnHo thì gán nội dung của txtHo cho lblHoTen

 Nhấn vào Button btnTen thì gán nội dung của txtTen cho lblHoTen

 Nhấn vào Button btnHoTen thì gán nội dung của txtHo cộng với txtTen cho lblHoTen

Hướng dẫn: lblHoTen.Text = txtHo.Text + “ “ + txtTen.Text

Trang 14

 Nhấn phím Enter tương đương nhấn Button btnHoTen

 Nhấn Double click vào lblHoTen thì nội dung của lblHoTen bị xoá

 Nhấn vào btnKetThuc thi đóng chương trình

 Nhấn phím Esc tương đương nhấn btnKetThuc

Bài 4

Viết chương trình dùng để qui đổi tiền từ VND sang USD và ngược lại, từ VND sang EUR

và ngược lại như hình sau:

Yêu cầu:

 Khi số tiền cần qui đổi không phải là số hoặc để trống thì sẽ hiển thị lỗi vào errorProvider

 Nút VNDtoUSD: thực hiện qui đổi từ VND sang USD ( với tỷ giá là: 1 USD=17861

VND) và hiển thị vào lblKetQua, làm tròn 2 chữ số thập phân (dùng phương thức Math.Round)

 Nút USDtoVND: thực hiện qui đổi từ USD sang VND ( với tỷ giá là: 1 USD=17861

VND) và hiển thị vào lblKetQua, làm tròn 2 chữ số thập phân (dùng phương thức Math.Round)

 Nút VNDtoEUR: thực hiện qui đổi từ VND sang EUR ( với tỷ giá là: 1 USD=27043

VND) và hiển thị vào lblKetQua, làm tròn 2 chữ số thập phân (dùng phương thức Math.Round)

 Nút EURtoVND: thực hiện qui đổi từ EUR sang VND ( với tỷ giá là: 1 USD=27043

VND) và hiển thị vào lblKetQua, làm tròn 2 chữ số thập phân (dùng phương thức Math.Round)

 Sự kiện FormClosing: xác nhận người dùng có chắc chắn thoát không? (Yes: thoát, No: không)

 Sinh viên có thể thay đổi tỷ giá bằng cách thêm TextBox nhập trên form

Trang 15

Bài 5

Yêu cầu

1 khi Form load

a Radiobutton Red được chọn mặc định

b Con trỏ xuất hiện ngay tại ô Nhập tên

trong ô nhập tên)

Hướng dẫn:

viết trong sự kiện txtNhapTen_TextChanged( )

private void txtNhapTen_TextChanged(object sender, EventArgs e)

Trang 16

4 Nhấn Radiobutton Red, Green thì đổi màu chữ trong ô Lập trình bởi và ô nhập tên có màu tương ứng với Radiobutton phù hợp

private void raddo_CheckedChanged(object sender, EventArgs e)

{

lblLapTrinh.ForeColor = Color.Red;

txtNhapTen.ForeColor = Color.Red;

}

Lớp đại học làm thêm nhiều sự khiện radio cùng lắng nghe 1 sự khiện

private void raddo_CheckedChanged(object sender, EventArgs e)

Trang 17

Viết lệnh để chương trình hoạt động như sau:

 Khi form vừa load lên thì:

Con trỏ được đặt tại vị trí ô Name

Hình CDRom lớn hiện ngược lại hình nhỏ ẩn

Hướng dẫn: hiệu chỉnh property Visible của picSmall thành false (trong lúc thiết kế)

Đưa chụôt vào hình CDRom (lớn, nhỏ) hiện lên tooltip “Click Me”

 Hiệu chỉnh TabIndex sao cho hợp lý (Tham khảo hình vào Menu View\Tab Order)

 Nhấn vào Button Display hoặc phím Enter thì gán nội dung của ô Name và Message cho Label Message (lblMessage)

Hướng dẫn: lblMessage.Text = txtName.Text + " : " +

txtMessage.Text;

 Nhấn vào Button Clear thì xóa nội dung trong ô Name và Message

Hướng dẫn:

txtMessage.Clear ();

Trang 18

txtName.Clear();

 Nhấn vào RadioButton (Red, Green …) thì đổi màu chữ trong ô Message thành màu tương ứng

Hướng dẫn: lblMessage.ForeColor = Color.Red;

 Ần hiện Message (lblMessage) phụ thuộc vào giá trị của Check box (chkVisible)

Hướng dẫn: lblMessage.Visible = chkVisible.Checked;:

 Nhấn vào Button Exit hoặc phím Esc thi đóng chương trình

Trang 19

Yêu cầu:

1 Khi chương trình vừa thực thi

a Form được hiển thị giữa màn hình

b Các đối tượng được “neo” sao cho khi người dùng thay đổi kích thước form thì các đối tượng được resize kích thước sao cho “dễ nhìn”

c picTurnOn được hiển thị, picTurnOff được ẩn ngay bên dưới picTurnOn

Khi người dùng đưa chuột vào picTurnOn sẽ xuất hiện tip “Click me to

Turn OFF the Light!”, và ngược lại trên picTurnOFF

Hướng dẫn: sử dụng component ToolTip

d Hiện tên mặc định vào ô Name

e Lable ngay bên dưới pictureBox hiển thị thông báo

“Jack Turn Off the Light ,please!”

Trang 20

 Khi form hiện lên thì nút Tính và nút Xóa bị mờ (Enabled=false) Nếu dữ liệu nhập không hợp lệ thì thông báo lỗi (dùng errorProvider) Sau khi nhập dữ liệu hợp lệ và đầy đủ thì nút Tính

có tác dụng (Enabled=true)

 Khi nhấn nút Tính: 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à hiện kết quả vào Nghiệm PT Khi đó nút Xóa có tác dụng, nút Tính bị mờ

 Khi nhấn nút Xóa: xóa các Textbox và Label, đặt con trỏ vào Textbox A, nút Xóa bị mờ

 Khi nhấn nút Thoát: xác nhận người dùng có chắc chắn thoát khỏi ứng dụng hay không?

Bài 9

Mục đích:

Sử dụng đối tượng LinkLable liên kết đến một WebSite, mở ứng dụng

Yêu cầu: Using LinkLabel Controls (page 456 )

Hướng dẫn:

public Form1()

{

InitializeComponent();

//Add a link for Calculator in the first half of LinkLabel

lnkPrograms.Links.Add(0, "Launch Calculator".Length, "calc.exe ");

//Add a link for C: Drive in

//the second half of LinkLabel

lnkPrograms.Links.Add(lnkPrograms.Text.IndexOf(

"Open C: Drive"), "Open C: Drive".Length, "c:\\");

//Autosize the control based on its contents

Trang 21

System.Diagnostics.Process.Start("FireFox", "http://www.windowsforms.net");

}

private void lnkPrograms_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {

//Launch the program stored in the hyperlink

System.Diagnostics.Process.Start(

Trang 22

Hướng dẫn:

private void btnBrower_Click(object sender, EventArgs e)

{

//Set filters for graphics files

ofdPicture.Filter = "Image Files (BMP, GIF, JPEG, etc.)|" +

"*.bmp;*.gif;*.jpg;*.jpeg;*.png;*.tif;*.tiff|" + "BMP Files (*.bmp)|*.bmp|" +

"GIF Files (*.gif)|*.gif|" + "JPEG Files (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +

"PNG Files (*.png)|*.png|" + "TIF Files (*.tif;*.tiff)|*.tif;*.tiff|" +

"All Files (*.*)|*.*";

if (ofdPicture.ShowDialog() == DialogResult.OK)

{

//Get file information

FileInfo file = new FileInfo(ofdPicture.FileName);

lblSize.Text = String.Format("File Size: {0} Bytes", file.Length.ToString());

lblDateModified.Text = String.Format("Date last modified: {0}",

file.LastWriteTime.ToLongDateString());

lblDateAccessed.Text = String.Format("Date last accessed: {0}",

file.LastAccessTime.ToLongDateString());

//Load the file contents in the PictureBox

this.pbImage.Image = new Bitmap(ofdPicture.FileName);

}

}

Trang 23

Bài 11

Viết chương trình định dạng Textbox theo các font chữ tương ứng với từng Radiobutton

Trang 24

Module 3 GUI

Nội dung kiến thức thực hành:

+ Sử dụng các thuộc tính, phương thức và sự kiện của các control: PictureBox,

ListBox, CheckedListBox, ComboBox

Yêu cầu:

 Tất cả các bài tập lưu trong thư mục: MaSV_HoTen\Tuan3\

 Tên project là Module3BaiSo_HoTenSV

 Đổi tên form tương ứng với mục đích của bài

Bài 1

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ầunhư sau:

Yêu Cầu:

o Khi form vừa load lên màn hình thì

các CheckBox Bắt đầu có Enabled=True

các CheckBox Kết thúc có Enabled=False

Các Label có Caption= rổng

o Khi người sử dụng Click vào ChechBox Bắt Đầu của

một máy và nếu thuộc tính value của nó =1 thì:

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 CheckBox Bắt đằu =False

Cho thuộc tính Enabled của CheckBox Kết thúc =True

o Khi người sử dụng Click vào ChechBox Kết thúc của một máy và nếu thuộc tính

value của nó =1 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 CheckBox Bắt đằu =True

Cho thuộc tính Enabled của CheckBox Kết thúc =False

Cho thuộc tính Value của CheckBox Bắt đằu =0

Cho thuộc tính Value của CheckBox Kết thúc =0

Trang 25

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

Hướng Dẫn:

//Các bạn thực hiện các dòng lệnh sau:

chkKetThuc1.Enabled = false;

chkKetThuc2.Enabled = false;

//Lưu ý các bạn có thể thay đổi thuộc tính CheckBox giống Button:

Properties (checkbox)-> Appearance đổi thành Button:

//Xây Dựng Hàm cho CheckBox và thuộc tính Enable cho CheckBox Bắt Đầu:

if (chkBatDau1.Checked == true)

{

lblBatDau1.Text = DateTime.Now.ToLongTimeString();//hien thi gio he thong

// Thay đổi thuộc tính Enable cho CheckBox:

lblKetThuc1.Text = DateTime.Now.ToLongTimeString();

DateTime batDau = Convert.ToDateTime(lblBatDau1.Text);//khai bao bien

DateTime ketThuc = Convert.ToDateTime(lblKetThuc1.Text);

TimeSpan soGioThue = ketThuc - batDau;//tinh thoi gian thue may

double dbGio = soGioThue.TotalHours;//chuyen so gio thue sang kieu so

double dbTien = dbGio * 3000L;//tinh tien

MessageBox.Show("Số giờ thuê là: " + dbGio + " h" + "\n" + "Số tiền phải trả: "

+ dbTien + " VND","Thông báo máy 1!");//xuat thong bao

//Xóa label

lblBatDau1.Text = "";//xóa thong tin o 2 label

lblKetThuc1.Text = "";

chkKetThuc1.Enabled = false;//quy dinh viec hien thi

chkBatDau1.Checked = false;//cac radio

chkBatDau1.Enabled = true;

Trang 26

chkKetThuc1.Checked = false;

// Hỏi dừng chương trình sử dụng MsgBox :

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

DialogResult dl;

dl = MessageBox.Show("Có chắc bạn muốn đóng ứng dụng?", "Thông báo!",

MessageBoxButtons.YesNo, MessageBoxIcon.Question,

MessageBoxDefaultButton.Button1);

if (dl == DialogResult.No)

e.Cancel = true;

}

Lưu ý các bạn sử dụng event của Form (Formclosing)

// thêm hỏi tắt chương trình (khi có 1 máy đang hoạt động)

private void btnExit_Click(object sender, EventArgs e)

{

if (chkBatDau1.Checked == true || chkBatDau2.Checked == true)// nếu có thì làm

MessageBox.Show("Có 1 máy trong hệ thống vẫn chưa tính tiền, bạn hãy xem lại!",

"Warming!",

MessageBoxButtons.OK, MessageBoxIcon.Warning);

Else // ko thì làm trong else

 Cách 1 lấy trong resource

private void rdb_CheckedChanged(object sender, EventArgs e)

{

Trang 27

RadioButton r = (RadioButton)sender;

 Cách 2 lấy trong tập imageList

private void radButton_CheckedChanged(object sender, EventArgs e)

Trang 28

 Người dùng nhấn vào nút nào thì thực hiện chức năng tương ứng của nút đó Hiện kết quả

ra Messagebox (nếu có)

 Thiết lập thuộc tính Anchor hợp lý cho các control

 Thiết lập MinimumSize cho form

Trang 29

Bài 5

Thiết kế form và thực hiện các chức năng sau

Quy định form hiễn thị giữa màn hình Không cho người sử dụng thay đổi kích thước form

(StartPosition/CenterScreen)

Quy định việc di chuyển Tab hợp lý (menu View/Tab Order)

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

(SelectionMode/MultiExtended)

Trang 30

Khi người sử dụng Click nút “Cập nhật” hoặc nhấn phím Enter (AcceptButton) thì mặt định nhập tên sinh viên từ textbox vào danh sách lớp A (không chấp nhận dữ liệu rỗng) Theo đó người sử dụng có thể chọn lớp để cập nhật từ combobox lớp

Các nút “>” và “<” khi được Click sẽ di chuyển tất cả các mục đang chọn sang ListBox bên kia

tương ứng

Các nút “>>” và “<<” khi được Click sẽ di chuyển toàn các mục sang Listbox bên kia tương ứng

Nút lệnh “Xóa lớp A”, “Xóa lớp B” cho phép xóa các mục đang chọn trong list hiện hành

Hướng dẫn:

Thiết lập cho button cập nhật, nếu user nhập dữ liệu rỗng, xuất MessageBox báo lỗi, nếu

ko thì truyền dữ liễu vào ListBox

//truyền dữ liệu vào list box

string strDuLieu = txtTen.Text;

Tạo 1 hàm thực thi việc chuyển dữ liệu trong đó:

Dùng vòng lặp white() duyệt từ đầu đến cuối List Box

Nếu có phần tử nào được chọn thì xóa phần tử đó ở List Box A và thêm nó vào List Box

// copy selected strings in the source list to the destination list

for (int i = 0; i < SourceListbox.SelectedItems.Count; i++)

{

Trang 31

Trong sự kiện Click của button “>”, nếu danh sách ko rỗng, thì hỏi xem user có thật sự

muốn chuyển dữ liệu hay ko Nếu Yes thì gọi lại hàm chuyển dữ liệu Nếu ds rỗng, xuất hiện thông báo lỗi

MessageBox.Show("Danh sách hiện đang rỗng!", "Chú ý");

Làm tương tự với button “<”

Thiết lập button “>>”:

Tạo 1 hàm để chuyển dữ liệu từ lớp A sang lớp B

Cho vòng lặp white() chạy cho đến khi ko còn phần tử nào trong List Box Lop A

Mỗi lần lặp, ta chuyển phần tử đầu tiên của LopA sang LopB

Đồng thời xóa phần tử đầu tiên đó ở LopA

void chuyenToanBo(ListBox lst1, ListBox lst2)

Trong sự kiện click của button “>>”, ta kiểm tra xem danh sách LopA có rỗng hay ko,

nếu ko thì hỏi xem user thật sự muốn chuyển hay hay Nếu Yes, gọi hàm

chuyenToanBo

Nếu ds LopA rỗng, hiện bảng thong báo lỗi

DialogResult hoiChuyen;

Trang 32

MessageBox.Show("Danh sách hiện đang rỗng!", "Chú ý");

Làm tương tự với button “<<”

Thiết lập button “Xóa Lớp A”

Ta phải dùng hàm white() để lặp từ đầu đến cuối danh sách, nếu phần tử được chọn thì xóa (khi đó phần tử phía sau sẽ dồn lên chỗ phần tử vừa xóa), ko được chọn thì cộng tiếp lên

void xoaDuLieu(ListBox lst)

Trong sự kiện click của button xóa lớp A, gõ vào đoạn code bên dưới Nếu danh sách có

>=1 phần tử, ta xuất hiện bảng hỏi xóa Nếu user đồng ý, gọi lại hàm xoaDuLieu ở trên Nếu danh sách rỗng, hiện bảng thong báo lỗi

DialogResult hoiXoa;

if (lstDanhSach.Items.Count > 0)

{

hoiXoa = MessageBox.Show("Bạn có chắc xóa những phần tử này?", "Chú ý",

MessageBoxButtons.YesNo, MessageBoxIcon.Question,

MessageBox.Show("Hiện danh sách đang rỗng!", "Chú ý");

Thiết lập button Kết thúc và sự kiện FormClosing như nhưng bài trước

Bài 6

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ỳ:

Trang 33

Yêu cầu:

 Khi Form hiện lên, các ô nhập đều để trống (thiết lập tab hợp lý)

 Nút Đăng ký: Hiển thị các thông tin mà sinh viên đã đăng ký lên Messagebox như hình:

string CacMonHocDangChon(CheckedListBox lst)

Trang 34

 Nút Hủy: trả lại trạng thái ban đầu của Form

void HuyCheckListBox(CheckedListBox lst)

Chương trinh quay số may mắn

Thiết kế giao diện như hình trên

Groupbox chứa 3 labe

2 Label dùng để hiễn thị kết quả (canh lề pải)

Mỗi lần quay số, người chơi phải trả trước 30 đồng, tương ứng là máy sẽ được cộng thêm

30 đồng Và nếu người chơi có số tiền ít hơn 30 đồng thì sẽ không được phép chơi tiếp

Nếu mỗi lần quay được số 7, người chơi sẽ được thưởng như sau

Nếu ô đầu tiên là số 7 (random từ 0 đến 8), được thưởng 100 đồng + 50% số tiền của máy

Nếu ô số 2 là số 7(random từ 0 đến 9), người chơi được thưởng 30 đồng + 50% tiền của máy Nếu ô số 3 là số 7(random từ 0 đến 10), người chơi được thưởng 10 đồng;

(số tiền người chơi sẽ được cộng dồn nếu cả 3 ô cùng là số 7, tiền máy sẽ giảm đi phần trăm tương ứng)

Trang 35

//Xử lý trên sự kiện của timer

private void timer1_Tick(object sender, EventArgs e)

timer1.Interval += 5;//tăng giá trị của timer

//tạo số ngẫu nhiên

Random ran = new Random();

//kiểm tra số ngẫu nhiên vừa tạo ra có phải lá số 7 hay không

if (timer1.Interval > 200) // điều kiện dừng của timer

tiennguoi = tiennguoi + tienthuong;

tienmay = tienmay - (tienmay * 50) / 100;

//xuất thông báo

MessageBox.Show("Bạn được thưởng " + tienthuong + " đồng", "Lucky Seven!");

}

if (so2 == 7)

{

dTienThuong = 30 + (dTienMay * 50) / 100; //tính tiền thưởng

dTienNguoi += dTienThuong; //tính tiền người chơi nhận được

dTienMay -= (dTienMay * 50) / 100;

//tính tiền máy

Trang 36

MessageBox.Show("Bạn được thưởng " + dTienThuong + " đồng!", "Lucky

dTienThuong = 100 + (dTienMay * 50) / 100; //tính tiền thưởng

dTienNguoi += dTienThuong; //tính tiền người chơi nhận được

dTienMay -= (dTienMay * 50) / 100; //tính tiền máy

MessageBox Show( "Bạn được thưởng " + dTienThuong + " đồng!" , "Lucky Seven!" );

}

lblTienNguoiChoi.Text = dTienNguoi.ToString();//hiễn thị kết quả tiền người

lblTienMay.Text = dTienMay.ToString(); //hiễn thị kết quả tiền máy

timer1.Enabled = true; //kích hoạt timer

timer1.Interval = 2; //quy định thời gian tái kích hót timer

tienmay = tienmay + 30; //tăng tiền của MÁY

tiennguoi = tiennguoi - 30; //giảm tiền người chơi

lblTienNguoiChoi.Text = dTienNguoi.ToString();

//hiễn thị kết quả ra màn hình

}

Else

//không còn đủ tiền: over Game ,hiển thị Thông báo không thể chơi tiếp do không đủ tiền

MessageBox.Show("Bạn không đủ tiền để tiếp tục trò chơi! Chúc may mắn lần sau!", "Thông Báo",

MessageBoxButtons.OK, MessageBoxIcon.Warning);

timer1.Enabled = false; // Khóa timer

btnQuaySo.Enabled = false; // khóa nút quay số

Trang 38

Module 4 GUI

Nội dung kiến thức thực hành:

+ Sử dụng các thuộc tính, phương thức và sự kiện của các control: TrackBar,

NumericUpDown, MaskEditBox, DateTimePicker, MonthCalendar, Timer, ProgressBar, ToolTip, MenuStrip

+ Viết ứng dụng dạng MDI

Yêu cầu:

 Tất cả các bài tập lưu trong thư mục: MaSV_HoTen\Tuan4\

 Tên project là Module4BaiSo_HoTenSV

 Đổi tên form tương ứng với mục đích của bài

Bài 1

Thiết kế giao diện cho phép đổi màu Panel như sau:

Để đổi màu Panel, người dùng có thể kéo các TrackBar để thay đổi các giá trị màu red(R), green(G) và blue(B) Yêu cầu khi TrackBar nào kéo đến đâu thì giá trị của nó phải được hiện ra tương ứng trên các Label Các TrackBar có giá trị trong khoảng 0 đến 255

Hướng dẫn:

void ProgramInit()

{

int nRed = trkRed.Value;

int nGreen = trkGreen.Value;

int nBlue = trkBlue.Value;

Xây dựng chương trình hiển thị lịch tờ với yêu cầu sau:

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)

Ngày đăng: 13/09/2014, 02:04

HÌNH ẢNH LIÊN QUAN

Hình CDRom lớn hiện ngược lại hình nhỏ ẩn. - Thực hành window form C#
nh CDRom lớn hiện ngược lại hình nhỏ ẩn (Trang 17)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w