Professional Documents
Culture Documents
2 Lap Trinh Windows Form Voi C# PDF
2 Lap Trinh Windows Form Voi C# PDF
2 Lap Trinh Windows Form Voi C# PDF
Giáo trình L p trình Windows Forms v i C#.NET s d ng cho sinh viên ngành
Công ngh thông tin. Giáo trình giúp sinh viên có cái nhìn t ng quan v ng d ng
Windows Application trong b công c Visual Studio .NET c a Microsoft. Ngoài ra
giáo trình còn cung c p nh ng ki n th c v u khi n mà Windows Application
h tr các ví d c mô t c th sinh viên có th c và
hi u m t cách nhanh chóng nh t.
N i dung c a giáo trình g m 11
i thi u t ng quan v ngôn ng C#, C u trúc c a m
trình C#, các ki u d li n, c u trúc l p và c u trúc r nhánh, l p String và cách
t n DLL.
i thi u v ng d ng Windows Form, t o form v i hình d ng
khác nhau, các s ki c c a form.
i thi u v cách s d ng c a u khi
Label, Button, Textbox, ComboBox, ListBox, CheckBox và RadioButton.
i thi u v cách s d u khi c bi
HelpProvider, ErrorProvider, ProgressBar, Timer, ListView, TreeView,
DateTimePicker và MonthlyCalendar.
i thi u v cách s d ng c u khi n t
MenuStrip, ContextMenuStrip. Cách s d u khi n: ImageList, NotifyIcon,
ToolStrip, StatusStrip.
i thi u v u khi n có th ch u khi
GroupBox, FlowLayoutPanel, TableLayoutPanel, TabControl, SplitContainer.
i thi u v các s d ng c u khi n d ng h p tho i:
MessageBox, ColorDialog, FontDialog, OpenFileDialog, SaveFileDialog,
FolderBrowseDialog.
i thi u v u khi n làm vi c v i in n:PageSetupDialog,
PrintPreviewDialog, PrintPreviewControl, PrintDialog, PrintDocument.
i thi u v cách xây d ng và s d ng UserControl.
i thi u v các l ng làm vi c v i màn hình và h th ng
p SystemInformation, l p Screen, l p Sendkeys, l p PowerStatus, L p
Application, l p Clipboard, l p Cursor.
p t ng h p ki n th c.
M CL C
L i u
i thi u v C# ............................................................................................ 1
1.1. Gi i thi u v Microsoft .NET Framework ............................................................. 1
1.1.1. .NET Framwork là gì ..................................................................................... 1
1.1.2. Các thành ph n c a Microsoft .NET Framework .......................................... 1
1.2. T ng quan ............................................................................................................... 2
1.3. C u trúc t ng quát c a m .......................................................... 4
1.3.1. So n thào b ng Notepad ................................................................................ 4
1.3.2. So n th o b ng Microsoft Visual Studio 2010 .............................................. 5
1.4. Bi n và ki u d li u ................................................................................................ 8
1.4.1. Bi n ................................................................................................................ 8
1.4.2. Ki u d li u .................................................................................................... 9
1.4.2.1. Ki u giá tr ........................................................................................ 9
1.4.2.2. Ki u tham chi u .............................................................................. 10
1.4.2.3. So sánh s khác bi t gi a ki u giá tr và ki u tham chi u .............. 11
1.4.2.4. Chuy n ki u d li u ........................................................................ 11
1.5. Câu l nh phân nhánh............................................................................................. 13
1.5.1. Câu l nh if .................................................................................................... 13
1.5.2. Câu l nh switch ............................................................................................ 13
1.6. Câu l nh l p .......................................................................................................... 14
1.6.1. L nh l p while .............................................................................................. 14
1.6.2. L nh l p do/ while ........................................................................................ 15
1.6.3. L nh l p for .................................................................................................. 15
1.6.4. L nh l p foreach ........................................................................................... 16
1.7. L p String ............................................................................................................. 17
1.7.1. Gi i thi u v chu i ký t ............................................................................. 17
1.7.2. c và thu c tính l p String .......................................................... 18
1.8. M ng ..................................................................................................................... 31
1.8.1. M ng m t chi u ........................................................................................... 31
1.8.2. M ng hai chi u ............................................................................................ 32
1.9. T o và s d ng DLL trong C# ........................................................................... 33
1.9.1. m khi s d ng DLL .................................................. 33
1.9.2. t o t p tin DLL ........................................................................ 34
1.9.3. s d ng t p tin DLL ................................................................ 36
1.10. Bài t p cu ............................................................................................ 39
u khi ng ...................................................................... 65
3.1. u khi n Label ................................................................................................... 66
3.2. u khi n Button ................................................................................................. 70
3.3. u khi n TextBox .............................................................................................. 73
3.4. u khi n ComboBox và ListBox ....................................................................... 77
3.4.1. ListBox ......................................................................................................... 78
3.4.2. ComboBox ................................................................................................... 82
3.4.3. c và s ki n c a ComboBox và ListBox ................................... 85
3.5. u khi n CheckBox và RadioButton ................................................................. 89
3.5.1. CheckBox ..................................................................................................... 89
3.5.2. RadioButton ................................................................................................. 93
3.6. Bài t p cu .............................................................................................. 97
u khi i dùng t t o
9.1. User Control ........................................................................................................ 280
9.2. Xây d ng User Control ....................................................................................... 280
9.2.1. Thêm m i User Control ngay trong d án ................................................. 280
9.2.2. T o l p và khai báo th a k t l p Control ............................................... 285
9.2.3. T o d án m i b ng cách ch n lo i d án là Windows Control Library ... 288
9.3. S d ng User Control ......................................................................................... 291
9.4. Cách s d ng nh nt os thi t k giao di n ............................... 294
9.5. Bài t p cu ............................................................................................ 294
p t ng h p ...................................................................................... 318
ng d ng ASP.NET
ng d ng Windows Form
Web Services
Windows Services
ng d ng m ng và các ng d ng u khi n truy c p t xa
ï
n mã ho t quy n p vào các vùng
nh c phép.
n l p: là m t t p h p l n các l c vi t b i Microsoft, nh ng l p này
c xây d ng m t cách tr c quan và d s d ng; cho phép l p trình viên thao
tác r t nhi u các tác v s n có trong Windows.
- Base class library n các l n nh c dùng trong
khi l p trình hay b n thân nh i xây d ng .NET Framework
ph xây d ng các l M ts n l p base class
: String, Interger,
- ADO.NET và XML: B n này g m các l x lý d
li u. ADO.NET thay th ADO trong vi c thao tác v i các d li u thông
ng. Các l ng XML c cung c x lý các d li u theo
nh d ng m i XML. M t s n trong ADO.NET và XML :
sqlDataAdapter, SqlCommand,
- Windows Forms: B n v l p trình Windows Forms g m các l p
ng dành cho vi c xây d ng các ng d ng Windows n. M t s
Form, UserControl, TextBox, Label, Button,
ComboBox, ListBox, ListView, TreeView,
- Web Services: là các d ch v c cung c p qua Web (hay Internet). D ch
v c coi là Web Service không nh m i dùng mà nh m vào
i xây d ng ph n m m. Web Services có th cung c p các d
li u hay m t ch
- ASP.NET: ng d ng Web xây d ng b ng ASP.NET t n d c toàn
b kh a .NET Framework. ASP.Net cung c p m t b các Server
Control l p trình viên b t s ki n và x lý d li u c a ng d
c v i ng d ng c a Windows. M t s :
WebControl, HTML Control,
1.2. T ng quan v C#
Vào ngày 12/2/2002, Microsoft chính th c cho ra m t Visual Studio 2002 cùng
v i b n .NET Framework 1.0. V i n n t ng .NET Framework thì các ng d ng v
Windows F u có th c xây d ng trên n n t ng .NET. Hai ngôn ng
chính mà Microsoft s d phát tri n các ng d ng trên là C# và Visual
Basic.NET.
c phát tri n b id u
là Anders Hejlsberg và Scott Wiltamult. Vì là ngôn ng i sau các ngôn ng khác
î
có nh m n i tr i và
m nh m n.
m c a C#:
Microsoft thêm vào nh m m i vào C# d s d :
- C# là ngôn ng n: Các cú pháp, bi u th c, toán t u gi ng v i C,
C++. Ngoài ra C# lo i b m t s khái ni m ph c t p khó hi ,
th a, template, l o.
- C# là ngôn ng hi i: Có t t c c tính c a m t ngôn ng hi i
x lý ngo i l , thu gom b nh t ng, ki u d li u m r ng, và b o
m t mã ngu n.
- C# là ngôn ng ng: Là m t ngôn ng thu ng,
at tc có th l ng: S
(Encapsulation), s th a k (Inheritance), và s hình
(Polymorphism).
- C# là ngôn ng m nh m và m m d o: Có th s d ng cho nh ng d án khác
n, ng d h a, b ng tính,
- C# là ngôn ng có ít t khóa: là ngôn ng s d ng gi i h n các t khóa, ch
kho ng 80 t 10 ki u d li c xây d ng s n ng 1.1.
B ng 1.1: B ng mô t các t khóa c a C#
abstract default foreach object sizeof unsafe
í
continue float new sealed ulong
1.3.1. So n th o b ng Notepad
Trong quá trình so n th o c C# là m t ngôn ng thu ng.
tc n mã c u ph i thu c l p.
Ví d 1.1: So n th o m Hello World ra màn hình
c 1:
Gi i thích:
- nc c khai báo là static. Vi c khai báo
này cho bi t hàm Main có th c s d ng mà không c i
ng
- Hàm WriteLine n m trong l p Console, u s d ng ph i khai báo
thêm dòng l Using System; phía trên cùng vi c gõ l c nhanh
Console.WriteLine . N u không khai báo Using
System; thì bu c ph i vi t cú pháp: System.Console.WriteLine
v i System là m t namespace.
- C# phân bi t ch ng và ch nh writeline khác l nh
WriteLine.
c 2: Khi so n th p tin v i tên: ChaoMung.cs
c 3: Th c thi i th c hi c:
- M c a s Command Line và biên d ch t p tin ChaoMung.cs v a t o ra
sang mã máy (t biên d ch dùng trình
biên d ch dòng l c chép vào máy
́
trong quá trình cài .NET Framework. N u cài Framwork 4.0 thì ti n hành
ng d n:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
- Th c thi t p tin :
ë
c 1: Ch n th c c 2: Ch n m c
Project
Hình 1.3: T o d án m i
c 2: T o m t lo i d minh h a b ng
ngôn ng
c 1: Ch n lo i
d án. N u l p trình
ng Console
thì ch n lo i d án
là Console
Application. N u
l ng
Windows Forms thì
ch n Windows
Forms Application
ê
Hình 1.5: Giao di n so n th o mã l nh
é
Hình 1.7: Th
1.4. Bi n và Ki u d li u
1.4.1. Bi n
Bi n là d li u c li u c a bi n n m trong b nh
v t lý c a Ram và có th c. Mu n s d ng bi c tiên l p trình ph i
ch nh bi n có m t ki u d li u c th
Cú pháp khai báo bi n:
è
Các t khóa không th s d t tên cho bi n. N u mu n dùng t t
tên thì ta thêm ký t c.
Ví d 1.2:
Employee: H pl
student: H pl
_Name: H pl
Emp_Name: H pl
@goto: H pl
static: Không h p l , trùng t khóa
4myclass: Không h p l , không th b u b ng ký t s
Student&Falculty: Không h p l c ch a ký t c bi t
1.4.2. Ki u d li u
l p trình C++ hay Java, C# chia thành hai t p ki u d li u
chính:
Ki u giá tr
Ki u tham chi u
M i ki u d li u trong C# s thu c m t trong hai ki u giá tr ho c ki u tham
chi u. Ki u giá tr u tham chi
Stack: m t vùng b nh d li u v i chi u dài c nh.
Ví d 1.3: s nguyên ki u int luôn chi m d ng 4 bytes.
M cc
không truy c p t c
Heap: m t vùng b nh d li i.
Ví d 1.4 u string, khi ta t ng thu c l p string, ng s c
nh b i hai thành ph a ch stack, còn giá tr ng thì s
heap.
1.4.2.1. Ki u giá tr
Ki u giá tr ng là các ki n bao g m: double, char, int,
ç
ushort 2 Uint16 S nguyên không d n 65.535
int 4 Int32 S nguyên có d u: - n
2.147.483.647
uint 4 Uint32 S nguyên không d n
4.294.967.295
float 4 Single Ki u d u ch ng, giá tr x p x t
3,4E- n 3,4E+38; v i 7 ch s có
@
a ch bi n str Giá tr c a bi n
str
ïđ
1.4.2.3. B ng so sánh s khác bi t gi a ki u giá tr và ki u tham
chi u
B ng 1.3: B ng so sánh s khác bi t gi a ki u giá tr và ki u tham
chi u
Ki u giá tr Ki u tham chi u
Bi n l Giá tr c a bi n a ch c a bi n
V giá tr Stack Heap
Giá tr m nh 0 Null
Phép toán gán Sao chép giá tr a ch
1.4.2.4. Chuy n ki u d li u
Vi c chuy i ki u d li u trong C# có th th c hi n b ng m t trong các cách
sau:
S d ng l p Convert:
tl c C# xây d ng s n ph c v cho vi c chuy i t ki u d
li u này sang ki u d li u khác c trong l p Convert ph n l u là
- ToInt32(<Tham s >)
- ToInt64(<Tham s >)
- ToString(<Tham s >)
- ToDouble(<Tham s >)
- ToBoolean(<Tham s >)
- ToByte(<Tham s >)
-
<Tham s >: có th là chu i ký t , h ng s , bi n s nguyên, s th c ho c ki u
bool. N u trong quá trình chuy n ki t tham s là null thì hàm Convert s tr v giá
tr m c nh.
Ví d 1.7:
int a = Convert.ToInt32("10");
bool b = Convert.ToBoolean(27);
bool a = Convert.ToBoolean("hello"); //
int b = Convert.ToInt32("123456787654");
double d = Convert.ToDouble(null);
S d c Parse:
cs d chuy i chu i sang m t ki u d
li u c th M i ki u d li u xây d ng s u có h tr c
chuy i chu i sang ki u d li ng:
ïï
- Double.Parse(<chuoi>): Chuy n chu i v ki u Double
- Int32.Parse(<chuoi>): Chuy n chu i v ki u Int32
- Int64.Parse(<chuoi>): Chuy n chu i v ki u Int64
- Boolean.Parse(<chuoi>): Chuy n chu i v ki u Boolean
- Single.Parse(<chuoi>): Chuy n chu i v ki u Single
-
Ví d 1.8:
int a = Int32.Parse("123");
float b = Float.Parse("20.7");
bool c = Boolean.Parse("true");
int a = Int32 Hello
byte b = Byte 10000000000
bool c = Boolean.Parse(null);
S d c TryParse:
cs d chuy i chu i sang m t ki u d
li u c th u d li u xây d ng s c
TryParse. Tuy nhiên, s khác bi t c a TryParse và Parse là:
- Cú pháp s d ng có s khác bi t: Có hai tham s truy n vào TryParse;
Tham s th nh t là chu i c n chuy i và tham s th hai là bi n ch a
giá tr chuy i (bi n truy n vào ph i truy n d ng tham chi u)
- Giá tr tr v c a TryParse s là true n u chuy n ki u thành công và tr v
false n u chuy n ki u không thành công.
Ví d 1.9:
int a;
Int32 123 out a);
bool b;
Boolean false out b);
int a;
Int32.TryParse("hello", out a);
bool b;
Boolean.TryParse("", out b);
ïî
Ví d 1.10:
int x= 10;
float y = x; //chuy n i ng m nh, y = 10
int z = (int)y; //chuy n i rõ ràng, z = 10
int x = 10;
1.5.1. Câu l nh if
Cú pháp:
if (bi u th u ki n)
<Câu l nh th c hi u ki
[else
<Câu l nh th c hi u ki n sai> ]
if (bi u th u ki n)
{
<l nh 1>; < l
}
[else
{
<l nh 3>; < l
}]
ïí
Cú pháp:
switch (bi u th c u ki n)
{
case <giá tr >:
<Các câu l nh th c hi n>
<l nh nh y>
[default:
<Các câu l nh th c hi n m nh>]
}
1.6. Câu l nh l p
C# k th a cú pháp câu l nh c a C/C++:
L nh l p while
L nh l p do/ while
L nh l p for
Ngoài ra 3 l nh l n trên, C# còn có thêm l nh l p foreach làm
vi c v i m ng, t p h p.
p các l nh nh d ng k t
h p v i l nh l p
1.6.1. L nh l p while
a vòng l p while u ki c hi n các công
vi c này
Cú pháp:
while (Bi u th c)
{
<Câu l nh th c hi n>
}
ḯ
Bi u th c c a vòng l p while u ki các l c th c hi n, bi u th c
này b t bu c ph i tr v m t giá tr ki u bool là true/false
Ví d 1.11: Vi ng các s l >0 và nh
static void Main(string[] args)
{
int i = 1, tong = 0;
while (i < 10)
{
tong = tong + i; i = i+2;
}
}
Cú pháp
do
{
<Câu l nh th c hi n>
}while u ki n );
S khác bi t t i quan tr ng c a while và do..while là t i thi u s có m t l n các
câu l nh trong do...while c th c hi n
Ví d 1.12: Vi ng các s l >0 và nh
1.6.3. L nh l p for
Vòng l p for bao g m ba ph n chính:
Kh i t o bi m vòng l p
Ki u ki n bi m, n th c hi n các l nh bên trong
vòng for
ïë
c l p.
Cú pháp:
1.6.4. L nh l p foreach
Vòng l p foreach cho phép t o vòng l p thông qua m t t p h p hay m t m ng.
Cú pháp:
foreach ( <ki u t p h p> <tên truy c p thành ph n > in < tên t p h p>)
{
<Các câu l nh th c hi n>
}
ïê
1.7. L p String
1.7.1. Gi i thi u v chu i ký t
C# xem nh ng chu ng ki u d li n , vi c s d ng chu i trong
C# r t linh ho t, m nh m , và quan tr ng nh t là d s d ng. Ch m c trong chu i
c tính t s 0.
làm vi c v i chu i, C# cung c p l p System.String. Khi khai báo m t chu i
C# b ng cách dùng t khóa string, i vi i dùng t
ng c a l p System.String.
Ví d 1.15:
string hello
Ngoài vi kh i t o chu i t 1 m ng char:
Ví d 1.16:
// Kh i t o m ng ký t
char[] chars = {'c', 's', 'h', 'a', 'r', 'p'};
// Kh i t o chu i t m ng ký t
string str = new string(chars);
:
Khi gán giá tr trong chu i có th ch a ký t \ \ \
Ví d 1.17:
string la chuoi \n trich dan
Ký t xu ng
ng h p mu ng d c vào m t chu i:
Ví d 1.18:
string c:\baitap
n trình biên d ch hi u \ ng ký t i
dùng ph i thêm m t ký t \ c:
Ví d 1.19:
string c:\\baitap
Ngoài vi c s d ng d u \ gi nguyên các ký t trong chu
khai báo chu b c chu i.
Ví d 1.20:
string D:\soft\VMWare
ïé
1.7.2. c và thu c tính l p String
B ng 1.4: B ng t ng h c l p String
System.String
th c/ Thu c tính
Empty Thu Th hi n chu i r ng
Compare() So sánh hai chu i
CompareOrdinal() i không
n th t
Concat() o ra chu i m i t m t hay
nhi u chu i khác
Copy() o ra m t chu i m i b ng
cách sao chép t chu i khác
Equal() m tra xem hai chu i có
cùng giá tr hay không
Insert() Tr v chu i m c chèn m t chu i xác
nh
LastIndexOf() Ch ra v trí xu t hi n cu i cùng c a m t chu i
nh trong chu u
PadLeft() Canh l ph i nh ng ký t trong chu i, chèn vào
bên trái kho ng tr ng hay các ký t nh
PadRight() Canh l trái nh ng ký t trong chu i, chèn vào
bên ph i kho ng tr ng hay các ký t nh
Remove() t s ký t nh
Split() Tr v chu nh b i nh ng ký t
nh trong chu i
StartWith() Xem chu i có b u b ng m t s ký t xác
nh hay không
SubString() L y m t chu i con
ToCharArray() Sao chép nh ng ký t t m t chu n m ng
ký t
ToLower() Tr v b n sao c a chu i ki u ch ng
ToUpper() Tr v b n sao c a chu i ki u ch hoa
Format() nh d ng m t chu i dùng
ký t l nh d nh
Join() t n i các chu nh
gi a m i thành ph n c a m ng chu i
Length Tr v chi u dài c a chu i
CompareTo() So sánh hai chu i
CopyTo() Sao chép m t s các ký t n m t
m ng ký t Unicode
EndsWith() Ch ra v trí c a chu nh phù h p v i
chu
Trim() Xóa b t t c s xu t hi n c a kho ng tr ng
trong chu i
TrimEnd() Xóa các kho ng tr ng v trí cu i
TrimStart() Xóa các kho ng tr ng v u
ïè
Thu c tính Empty: i di n cho 1 chu i r ng. S d ng khi mu n khai báo 1
chu i là r ng.
Ví d 1.21:
string chuoi = string.Empty;
i khai báo:
string
Thu c tính Length: nh chi u dài c a chu i.
Ví d 1.22:
static void Main(string[] args)
{
string str = "pham phuong nguyen";
int chieudai = str.Length;
}
//K t qu : chieudai = 18
c so sánh chu i: Compare, CompareOrdinal,
CompareTo, Equal
- c Compare i
Cách s d ng:
int gt = String.Compare(<chuoi1>, <chuoi2>, [true]);
N u gt = 0: hai chu i b ng nhau
N u gt = 1: chu i 1 l i2
N u gt = -1: chu i 1 nh i2
N us d c không có tham s true, thì s phân bi t
ch ng, ch hoa. N u có tham s true thì s không bi t ch
ng hay ch hoa.
Ví d 1.23:
public static void Main(string []args)
{
int gt = String abDb , abdb ); //gt = 1
int gt1= String.Compare( abDb , abdb , true); //gt1 = 0
int gt2= String.Compare( abdaF , abdb ); //gt2 = -1
}
ïç
Cách s d ng:
int gt = String.CompareOrdinal(<chuoi1>,<chuoi2>);
Ví d 1.24:
int gt = <chuoi1>.CompareTo(<chuoi2>);
îđ
Ví d 1.25:
îï
Cách s d ng:
îî
Ví d 1.30:
public static void Main(string []args)
{
string str = null;
str = "Di và gi i pháp";
if (str. StartsWith ("di ") == true)
MessageBox.Show("Chu i str b uv ");
else
MessageBox.Show("Chu i str không b u v n
");
}//Hi n th Messagebox: Chu i str không b uv
îí
Ví d 1.32:
public static void Main(string []args)
{
string str = null;
str = "Di công ngh và gi i pháp";
if (str. EndsWith ("gi i pháp") == true)
MessageBox.Show("Chu i str k t thúc v gi i pháp ");
else
MessageBox.Show("Chu i str không k t thúc v gi i
pháp ");
}//Hi n th Messagebox: Chu i str k t
- c thu c l p, tr v ch s c a ký t u
tiên mà chu i xu t hi n, n u không tìm th y s tr giá tr -1.
Cách s d ng:
î́
- c IndexOfAny: c thu c l p, tìm ki m ch s xu t
hi n c a t ng ký t trong chu i so v i m ng ký t u vào, n u không tìm
th y s tr giá tr -1.
Cách s d ng:
int vitri= <chuoi1>.LastIndexOf(<m ng các ký t >)
T ng ký t trong chuoi1, b u t ký t u tiên c a chuoi1 s l t
i các ký t trong m ng ký t u vào, n u tìm th y m t
ký t t hi n trong m ng ký t s tr v v trí c a
ký t
Ví d 1.35:
îë
start: V trí ký t b u trích trong chuoi1
len: S ký t s trích ra trong chuoi1
Ví d 1.37:
public static void Main(string []args)
{
string str1 = "Chao ngay moi";
string str=str1.Substring(5, 4);
}
Ngoài ra có th trích ch n chu i con t v trí ch n cu i chu i b ng
cách b c Substring.
Cách s d ng:
string kq = <chuoi1>.Substring(start);
start: V trí ký t b u trích trong chuoi1
Ví d 1.38:
public static void Main(string []args)
{
string str1 = "Chao ngay moi";
string str=str1.Substring(5);
îê
<V trí>: Là v trí c a ký t trong chuoi1 b u xóa.
<S ký t >: Là s ng ký t s xóa trong chuoi1
Ví d 1.40:
string kq = String.Copy(<chuoi>);
Ví d 1.42:
îé
- c ToCharArray: c thu c l p, chuy n 1 chu i v 1
m ng ký t và tr giá tr v là m ng ký t .
Cách s d ng:
char[] <tên m ng ký t > = <chuoi>.ToCharArray();
îè
Ví d 1.45:
public static void Main(string []args)
{
string str1 = "Chao";
str1= str1.PadLeft(7);
string hello
str2=str2.PadLeft * );
}
Ví d 1.47:
public static void Main(string []args)
{
string str1 = "Chao";
string str2= str1.ToUpper(); //str2 HAO
}
- c ToLow c thu c l p, tr v m t chu i in ng
Cách s d ng:
îç
Ví d 1.48:
public static void Main(string []args)
{
string str1 = "Chao";
string str2= str1.ToLower(); //str2 chao
}
Ví d 1.49:
- c thu c l p, tr v 1 chu
kho ng tr ng u chu i.
Cách s d ng:
Ví d 1.50:
public static void Main(string []args)
{
string str1 = " Chao ngay moi ";
string str2= str1.TrimStart(); //str2 Chao ngay moi
}
- c thu c l p, tr v 1 chu
kho ng tr ng cu i chu i.
Cách s d ng:
string <chuoi1> = <chuoi2> . TrimEnd()
Ví d 1.51:
public static void Main(string []args)
{
string str1 = " Chao ngay moi ";
string str2= str1.TrimEnd(); //str2 Chao ngay moi
}
íđ
1.8. M ng
M ng là m t t p h p có th t c a nh ng, c ng này cùng m t
ki u. Cú pháp khai báo m ng c k t h p gi a cú pháp khai báo m ng c nh
p c a C#, d ng c a m ng có th truy c p nh c và
thu c tính c a l p System.Array.
1.8.1. M ng m t chi u
Cú pháp:
<ki u d li u> [] <tên m ng> = new <ki u d li u>[<s pt>];
íï
1.8.2. M ng hai chi u
Trong C#, ngoài vi c khai báo m ng m t chi c 1.8.1 thì l p trình viên
có th khai m ng hai chi u ho c nhi u chi u tùy thu c vào m d ng. Và m i
m ng khi khai báo l i có th khai báo theo hai d ng khác nhau là m u cùng
c ho c m c.
M ng hai chi c: Là m ng c t ch c thành các dòng và các
c c tính theo hàng ngang và c c tính theo hàng d c
c a m ng. Trong m ng hai chi c thì s ng ph n t trên
m i dòng là b ng nhau.
- Cú pháp:
<kieu du lieu> [,] <ten mang> = new <kieu du lieu>[<dòng>,<c t>];
1 2 3
4 5 6
íî
M ng hai chi c: Là m c t ch c thành các dòng
và các c c tính theo hàng ngang và c c tính theo
hàng d c c a m ng. Trong m ng hai chi c thì s ng
ph n t trên m i dòng có th khác nhau.
- Cú pháp:
Khi khai báo m ng hai không chi c ph i khai báo s dòng
c am c
M ts m khi s d ng DLL:
íí
Gi m không gian s d ng b nh d ng DLL s
làm gi c c a ng d ng: Do mã l nh c a các hàm trong DLL s
a ng d ng. ng
d ng ch c g tin c a hàm trong DLL, và khi c n h u hành s
t i các hàm này vào b nh ng d ng s d ng. Khi không còn s d ng,
có th gi i phóng DLL kh i b nh , khi c n nâng c p, ch c n thay th file
ng
T o ra kh a các ngôn ng l p trình: M t ng d ng có
th s d ng các DLL vi t b ng b t c ngôn ng l p trình nào. Các nhà phát
tri n ph n m m ch vi module c a mình vào trong m t DLL
v i ngôn ng c s d ng trong các
ng d ng vi t b ng C++ hay Visual Basic
M ts m khi s d ng DLL:
Tuy nhiên khi s d ng DLL th nh tho ng s g p m t l i sau:
The ordinal abc could not be located in the dynamic-link library xyz.dll
c 1: T o m i d án: Ch n th 1.8.
Hình 1.8: T o m i d án
í́
c 2: Ch n lo i d án là t tên p tin DLL.
c 1: Ch n
lo i d án
t tên d
án
c 3: Giao di n so n th o mã l c hi n th , ti n hành vi t mã l
hình 1.10.
íë
1.9.3. s d ng t p tin DLL
c 1: T o d án m
c 1:Ch n
lo i d án
Windows
Forms
Application
t tên d
án và ch ng
d
Hình 1.11: T o d án m i
n
c 4: ng d n ch a
ch n t p t p tin DLL c 1: Nh p ph i chu t
tin DLL vào References và ch n
Add References
c 5: Ch n OK
c 3: S d ng t p tin DLL.
íê
Khai báo không gian
tên c a DLL
ng
và s d
th c trong DLL
íé
c 2: Vi t mã l u khi n
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Giai_phuong_trinh_bac_hai
{
public class PhuongTrinhBacHai
{
int a, b, c;
public int C {
get { return c; } set { c = value; }
}
public int B {
get { return b; } set { b = value; }
}
public int A {
get { return a; } set { a = value; }
}
public string TimNghiem()
{
string ketqua = "";
double x1=0, x2=0;
double delta = b * b - 4 * a * c;
if (a != 0)
{
if (delta < 0)
ketqua = m";
else
if (delta == 0)
{
x1 = -b / (2.0 * a);
ketqua = m kép: " + x1;
}
else
{
x1 = (-b - Math.Sqrt(delta)) / (2.0 * a);
x1 = (-b + Math.Sqrt(delta)) / (2.0 * a);
ketqua = "x1 = " + x1 + " và x2 = " + x2;
}
}
else
ketqua = c hai";
return ketqua;
}
}
}
íè
1.10. Bài t p cu
íç
2: GI I THI U V WINDOWS FORMS
2.1.
2.1.1. Forms
Forms: Forms
:
c 1: Sau khi cài xong Micorsoft Visual Studio 2010, ti n hành b t ng
d ng Visual Studio 2010 lên b ng cách nh p vào bi
́đ
B c 2: n bi ng Visual Studio 2010 giao di n
s c hi n th :
́ï
Ch n ngôn ng l p trình
Ch n lo i
ng d ng
t tên cho
d án
Ch n
ng d n
án
Thanh menu
Thanh titlebar
Giao di n ban
u c a form
́î
Thêm form m i vào d án:
Ph n l n các d án ph n m u ch a r t nhi u form p trình viên có
th thêm m t form m i vào d án và thi t k f t i th m thi t k ho c l p
trình viên có th thêm form m i b ng cách vi n mã t o form và form m i s
c t o ra t i th m th c thi c .
thêm m t form m i vào d án t i th m thi t k , trên menu Project, ch n
Add Windows Form. M t h p tho cm nm c
t tên cho form m hoàn t t vi c thêm
form m i vào d án ph n m m.
Ch n Windows Form
́í
2.1.2. Không gian tên (namespace)
System
Console
Data
Oracle SqlCommand
SqlClient SqlConnection
́́
using System.Linq;
using System.Text;
using System.Windows.Forms;
- Không gian tên System.Text: Cung c p các l p giúp mã hóa các ký t Ascii
ho c Unicode.
- Không gian tên System.Linq: Cung c p các l p h tr cho vi c s d ng
ngôn ng truy v n tích h p (Language-Integrated Query LinQ).
- Không gian tên System.Windows.Forms: Là không gian tên chính cung c p
các l xây d ng ng d ng ki u Windows Application. Không gian tên
System.Windows.Forms chia thành các nhóm sau:
Control, UserControl, Form
Menu, toolbar: ToolStrip, MenuStrip, ContextMenuStrip,
StatusStrip
Controls: TextBox, ComboBox, ListBox, ListView, WebBrowser,
Layout:
u khi n trên form.
́ë
Data và DataBinding: G m các công c BindingNavigator,
liên k t d li u t d li n các
u khi n Dataset ho c DataGridView.
Command Dialog Boxes: G u khi n OpenFileDialog,
SaveFielDialog, ColorDialog, FontDialog, PrintDialog làm vi c v i
t p tin, màu s c, phông ch , in n.
H p công c
́ê
Hình 2.9: Hi n th thanh công c
Thanh công c b u khi n thành nh ng nhóm riêng bi
Ch a u khi n thông
Ch u khi n giúp trình bày
d
u khi n khác trên form
Ch u khi n giúp
t o thanh th
Ch u khi n
tr ng thái: MenuStrip,
giúp làm vi c v
StatusStrip
s d li u
Ch u khi n giúp
Ch u khi n ki m tra d li u nh
giúp làm vi c v i vi c ErrorProvider, HelpProvider
in n: PrintDialog,
PrintReviewDialog Ch u khi n làm
vi c v i t p tin
Ch u khi n cho
Ch u khi n làm
u khi n
vi c v i báo cáo
c a WPF trong c a
s Windows Form:
Ch u khi n cho phép v các hình ô
ElemenHost
vuông, hình tròn, ..trên form, ho c in form.
́é
2.1.4. nh d ng mã C#
c a s Option, ch n m c Evir
nh d ng l i mã l nh:
c hi n th
Font ch hi n th
M c mu nh d ng
Màu n n mã l nh
i
n, t
Màu c a mã l nh
2.2.Các lo i Form
2.2.1. Thu c tính Form
́è
Windows Forms h tr nhi u thu c tính cho vi c tùy ch nh form. L p trình viên
có th i giá tr các thu c tính này trong c a s u
ch c, màu s c, font ch a form cho phù h p.
́ç
thu c tính là false thì s lo i b các nút
minimize và nút maximize trên form
Cusor Thi t l p hình d ng con tr khi di chuy n
con tr vào form
Enable Mang giá tr true ho c false; N u thi t l p
thu c tính u khi n trong
form s i dùng thao
tác.
Font Thi t l n hi n th u khi n
ForeColor Thi t l p màu m nh cho chu i c a các
u khi n trên form
FormBorderStyle Thi t l p ng vi n c a form và hành vi
c a form khi ch
HelpButton Mang giá tr true ho c false; N u thi t l p
thu c tính là true thì trên thanh titlebar s
hi n 1 nút có d u ? (nút này ch hi n khi
hai thu c tính MinimizeBox và
c thi t l p là false)
Icon Bi ng hi n th bên trái trên thanh
titlebar c a form
KeyReview Mang giá tr true ho c false: n u thi t l p
thu c tính là true cho phép các s ki n bàn
phím c a form có hi u l c
Location Khi thu c thi t l p
là Manual, thì thu c tính Location có tác
d ng thi t l p v trí hi n th c a form trên
màn hình
MaximizeBox Mang giá tr true ho c false: n u thi t l p
thu c tính là false thì nút maximize form
trên thanh titlebar s m
MaximumSize Thi t l c l n nh t c a form
(chi u r ng x chi u cao)
MinimizeBox Mang giá tr true ho c false: n u thi t l p
thu c tính là false thì nút minimize form
trên thanh titlebar s m
MinimumSize Thi t l p c nh nh t c a form
(chi u r ng x chi u cao)
ëđ
Opacity Thi t l trong su t cho form
Size c form
StartPosition V trí hi n th c a form trên màn hình
Text Chu i v n hi n th trên titlebar c a
form
TopMost Mang giá tr true ho c false: n u thi t l p
thu c tính là true thì form s luôn hi n th
trên các c a s khác
Visible Mang giá tr true ho c false: n u thi t l p
thu c tính là true thì form s c hi n th
trên màn hình, n u là false s không hi n
th trên màn hình
WindowState Có 3 giá tr : Normal: hi n th form bình
ng; Minimized: khi ch
form s b thu nh i thanh taskbar;
Maximized: form hi n th c
y màn hình
IsMDIContainer Mang giá tr True ho c False.
- N u là True: Form d ng MDI Form
- N u là False: Form d ng bình
ng
MdiParent mang giá tr ng MDI Form. Khi
thi t l p giá tr cho thu c tính MdiParent
thì form s tr thành Child Form
ëï
ho c:
Form1.Size = new Size(300, 400);
Thi t l p form hi n th :
Trong C#, l p trình viên có th thi t l p form hi n th u tiên khi d c
th c thi b ng cách s a l i mã l nh trong hàm main c a l
ëî
L p Program m c
c tao ra
trong d án
n mã m nh
trong l p Program
Application.Run(new Form1());
ëí
Hình 2.15: Hình d ng form khi chuy n t Normal Form sang Mdi Form
Child Form:
Child Form là d ng form n m bên trong vùng làm vi c c a Mdi Form hay nói
c ch a bên trong Mdi Form. M t form mu n tr thành
Child Form c n ph i khai báo thu c tính MdiParent có giá tr ng Mdi Form.
Thu c tín c bi u di n trên c a s p
trình viên b t bu c ph i thi t l p giá tr MdiParent b ng mã l nh.
Ví d 2.4: Vi u di
ng d n:
c 1: T o m t d án m i b ng C#, lo i d án là Windows Forms Application.
Giao di u tiên c n th
ë́
Hình 2.17: Giao di n Form1 khi t o d án
c 2: Vi t mã l
T i s ki n Load c a Form1 vi t các dòng l nh sau:
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "Mdi Form";
this.IsMdiContainer = true;
Form frm = new Form();
frm.Text = "Child Form";
frm.MdiParent = this;
frm.Show();
}
Normal Form:
Normal Form là form ho c l p v i t t c các form khác
s không ch a ho c ch a b i m t form nào khác ng khi t o m i d
án Windows Forms Application thì form m c t o và hi n th u tiên là
Normal Form. Giao di n c
ëë
th c hình d ng khác c c th c n ph i
th ul c form phù h p v i nhu c u thi t k .
Ví d 2.5: Thi t k form có hình ellipse có chi u r ng là 300 và chi u cao là 200
c 1: T o s ki n Form_Load b ng cách nh t vào màn hình thi t
k 8:
Nh t vào
màn hình thi t k
c a form
c 3: th c th c thi s c
9:
ëê
Hình 2.19: Form hình Ellipse
2.2.4. Bi n c c a Form
Bi n c c a form hay có th g ng ho c s ki n
form. ng d ng Windowns Forms c h tr nhi u s ki n mã t o ra
các s ki c sinh ra m t cách t ng. s d ng các s ki n c a form l p
trình viên c n th c hi n các thao tác sau:
c 1: Nh p chu t trái vào form
c 2: Trên c a s ng, nh p chu t trái vào bi ng
m h p tho i các s ki n 20.
c 3: H p tho i hình 2.20 ch a nhi u s ki
form, m form, di chuy n chu p trình viên mu n s d ng s
ki n nào ch c n nh t trái vào s ki
ëé
Ví d 2.6: Mu n s d ng s ki n nh p chu t c a form ch c n nh t vào s
ki n Click thì m c nh p chu t c a form s ct ng phát sinh mã
l nh:
B ng mô t các s ki n ng s d ng c a form:
B ng 2.3: B ng mô t các s ki n c a form
S ki n Mô t
AutoSizeChanged X y ra khi thu c tính Autosize c a Form chuy n t
True c l i là False sang True
BackColorChanged X y ra khi thu c tính BackColor c i
Click X i dùng Click chu t vào vùng làm
vi c thu c Form
ControlAdded X y ra khi m u khi c Add vào Form
ControlRemoved X y ra khi m u khi n b xóa kh i Form
CursorChanged X y ra khi thu c tính Cursor c i
DoubleClick X i dùng DoubleClick vào vùng làm
vi c c a Form
FontChanged X y ra khi thu c tính Font c a Form có s i
ForeColorChanged X y ra khi thu c tính ForeColor c a Form có s thay
i
FormClosed X
trên titlebar)
FormClosing X ki n FormClosed
và ng dùng trong l p trình CSDL:
khi x y ra s ki t n i CSDL)
KeyDown X i dùng nh n m t phím hay m t t
h p phím
KeyPress X i dùng nh n m t phím
KeyUp X i dùng nh m t phím
MouseClick X i dùng nh n chu t (m t trong 3 l a
ch n: Trái, gi a, ph i)
MouseDoubleClick X i dùng nh t vào m t
vùng làm vi c c a Form (m t trong 3 l a ch n: Trái,
ëè
gi a, ph i)
MouseDown X i dùng nh n chu t
MouseHover X i dùng di chuy n vào các vùng làm
vi c Form
MouseLeave X y ra khi di chuy n chu t ra kh i vùng làm vi c
c a Form
MouseMove X y ra khi di chuy n chu t trên m t vùng làm vi c
thu c Form (n u Form có ch a m u khi n nào
chuy n chu u khi n này thì không
x y ra s ki n MouseMove c a Form)
MouseUp X i dùng nh nh n chu t (có th là
chu t trái, chu t ph i, chu t gi a - chu t cu n)
Move X y ra khi di chuy n Form (có s i v trí
c a Form)
StyleChanged X y ra khi thu c tính FormBorderStyle c a Form
thay i
TextChanged X y ra khi thu c tính Text c i.
S ki n FormClosed: S ki cg
private void frmForm_FormClosed(object sender,
FormClosedEventArgs e)
{
MessageBox S ki n FormClosed c g i
}
S ki n FormClosing: X
ëç
S ki n KeyPress: X y ra khi n phím, n u không ch c nh n thì
khi nh n b t c phím nào c a s ki n KeyPress c u x y ra.
private void frmForm_KeyPress(object sender,
KeyPressEventArgs e)
{
2.2.5. c
êđ
Ví d 2.7: Thi t k 2.21:
Giao di n Form1
v i: Màu n n
form màu xanh,
form là
n Form
, v trí hi n th
form gi a màn
hình
Giao di n Form2
v i: Màu n n
form màu vàng,
form là
n Form
2 , v trí hi n th
form gi a màn
hình
ng d n:
c 1: T o D án Windows Forms m i v i form m u tên
Form1.
c 2: Thi t l p các thu
- Thi t l , màu n n và v trí hi n th cho Form1: Trên c a s
Properties thi t l p thu c tính Text, thu c tính BackColor và thu c tính
StartPosition hình 2.23:
êï
V trí hi n th c a
Form1
hi n th
trên titlebar
c a Form1
Thi t l p màu n n
Form1
Hình 2.23: Thi t l p thu c tính Form1
êî
ShowDialog(). M m khác n c ShowDialog() là
c tr v hai giá tr là DialogResuilt.OK và DialogResuilt.Cacel.
- c ShowDialog() tr v DialogResuilt.OK
hi n th .
- c ShowDialog() tr v DialogResuilt.Cacel
Ví d 2.8: Trong s ki n Click c c 3 trên, ti n hành thay
c Show c ShowDialog c
th i dùng ch có th thao tác v i Form2 mà không th quay tr
v c.
private void Form1_Click(object sender, EventArgs e)
{
//T ng l p Form
Form Form2 = new Form();
//Thi t l p tiêu trên titlebar c a form
Form2.Text = "Giao di n Form 2";
//Thi t l p v trí hi n th form
Form2.StartPosition = FormStartPosition.CenterScreen;
//Thi t l p màu n n cho form
Form2.BackColor = Color.CadetBlue;
c ShowDialog() giúp hi n th Form2
Form2.ShowDialog();
}
c Hide c giúp n m n th
trên màn hình. Vi c n form c c Hide(0 th c ch t là thi t l p
thu c tính Visible = false.
Ví d 2.9: Trong s ki n Click c c 3, th c hi n yêu c u là
khi nh p chu t vào Form1 thì Form1 s s hi n lên.
êí
c Close(): S d
Ví d 2.10: Trong s ki n Click c c 3, th c hi n yêu c u là
2.3. Bài t p cu
Câu 1: Trong các dòng mã l nh nào cho phép t o và hi n th m i
ng Windows Form m i có tên là Form1
a) Form1 frm = new Form1;
frm.Show();
b) Form Form1 = new Form();
Form1.Show();
c) Form1 frm ;
frm.Show();
d) Form frm;
frm.Show();
e) Form Form1 = new Form();
Form1.ShowDialog();
Câu 2: Trong các thu c tính sau, thu thi t l p n i dung hi n th trên
thanh title bar và thu thi t l p màu n n c a form.
a) Thu c tính Text và ForeColor
b) Thu c tính Display và BackColor
c) Thu c tính Text và BackColor
ế
d) Thu c tính Display và ForeColor
Câu 3: Các thu c tính sau, thu c tính nào cho phép thi t l p form tr thành Mdi Form
a) IsMdiContainer
b) MdiParent
c) MdiContainer
d) ParentForm
Câu 4: Các thu c tính sau, thu c tính nào cho phép thi t l p form tr thành Child Form
a) IsMdiContainer
b) MdiParent
c) MdiContainer
d) ParentForm
Câu 5: Trong các s ki n sau, s ki n nào s
a) FormClosed
b) FormClosing
c) ClosedForm
d) ClosingForm
e) Load
f) Click
Câu 6: Xây d ng form có d ng
êë
3: U KHI NG
3.1.
u khi n Label
êê
Ví d 1: Thi t k form hi n th
ng d n:
c 1: T o d án Windows Forms m i, Form1 m nh t o s n trong d t
Thi t l p
ki u ch
êé
Thi t l p thu c tính Text
Sau khi thi t l p xong thu c tính Text, giao di hình 3.7:
Hình 3.7: Giao di n Form1 sau khi thi t l p xong thu c tính cho label1
êè
c 4: Thi t l p các thu c tính Font cho label2, label3, label4, label5, label6
Hình 3.8: Thi t l p thu c tính Font cho label2, label3, label4, label5, label6
êç
Thi t l p thu c tính Text
c 5: Nh n F5 th 3.2.
éđ
u khi n Button
éï
Hình 3.15: Giao di n form x lý nút l nh
ng d n:
u khi n t c a s Toolbox vào form
éî
privatevoid btnHienThi_Click(object sender, EventArgs e)
{
LblNoiDung.Text = "Xin chao"
}
u khi n TextBox
éí
M ts ng dùng c a TextBox:
B ng 3.4 : B ng mô t c c a TextBox
c Mô t
Clear() Xóa t t c chu i hi n th trong TextBox
Cut() Di chuy n ph n n en c a chu i
Past() Dán ph n n c ch n c a chu i
Copy() Sao chép ph n n a chu i
Undo() Khôi ph c
Select() Ch n m t ph n n i dung c a chu i trong
TextBox
SelectAll() Ch n t t c n i dung c a chu i trong TextBox
DeselectAll() B ch n chu i trong TextBox
é́
Focus TextBox s is
d ng
CanUndo Mang giá tr True ho c False, n u là True thì
cho phép th c hi cUndo(), mang
giá tr True khi TextBox c hi n thao tác
thêm, s a hay xóa n i dung.
SelectedText L y ra ph n n i dung chu
SelectionStart V trí b u ch n n i dung c a chu i
SelectionLength Chi u dài chu i s ch n trong TextBox
HideSelection Mang giá tr True ho c False, n u là True thì
không cho phép s d ng thu c tính
SelectionStart, n u là giá tr False thì chó phép
s d ng SelectionStart
M t s s ki ng dùng c a TextBox:
B ng 3.6: B ng mô t các s ki n c a TextBox
S ki n Mô t
KeyDown Th c hi n công vi c
nh n xu ng
KeyUp Th c hi n công vi khi m c
nh ra
KeyPress X i s d ng nh n m t phím và
nh ra, ta dùng s ki l c các phím
không mu n nh p s n 9)
không cho nh p chu i. M i s ki n KeyPress
cho ta m t c p s ki n KeyDown và KeyUp
Click Nh p chu t vào TextBox
DoubleClick Nh t vào TextBox
MouseEnter Chu t n m trong vùng th c c a TextBox
MouseHover Chu t n m trong vùng hi n th m t quãng th i
gian
MouseLeave Chu t ra kh i vùng nh p li u c a TextBox
MouseMove Chu c di chuy n trên TextBox
TextChanged Giá tr c a thu c tính Text b i
éë
Ví d 3: Thi t k form và th c hi n các yêu c
Khi nh p chu t
trái vào nút
Thoát s
trình
Nh p chu i c n
Nh p chu Tìm Ki m trình s tìm
tìm
ki chu i c n tìm i dung hay
không, n u tìm th y s hi n chu i tìm th y trên
MessageBox, n u không tìm th y s hi n chu i
Không tìm th y
ng d n:
c 1: Thi t k
TextBox1
TextBox2
Hình 3.16: Giao di u c a form x lý TextBox
éê
Này c tr i
Có ph i duyên nhau thì th m l i
éé
3.4.1. ListBox
u khi n ListBox
éè
nh d ng này ch th c hi n khi thu c tính
FormattingEnabled c thi t l p là True
FormatingEnable Mang hai giá tr True và False. N u là True thì
cho phép các m c ch n trong ListBox có th
nh d ng l i. N u là False thì không th nh
d ng.
Items Tr v các m c ch a trong ListBox
DataSource Ch n t p d li n vào ListBox. T p d li u
có th là m ng chu i, ArrayList, ..
SelectedIndex L y ch s m c ch n, ch s m c ch u
tiên là 0
SelectedItem Tr v m c ch n
SelectedValue Tr v giá tr c a m c ch n n u ListBox có liên
k t d li u. N u không liên k t d li u ho c
thu c tính ValueMember c thi t l p
thì thì giá tr thu c tính SelectedValue là giá tr
chu i c a thu c tính SelectedItem
ValueMember Thu c tính này ch nh d li u thành viên s
cung c p giá tr cho ListBox
Ví d 4: Xây d i ListBox ch a danh sách tên c a các sinh viên
hình 3.18
ListBox cho
Hi n th các sinh phép ch n
c ch n nhi u sinh
trên ListBox viên
thông qua
MessageBox
Thoát
éç
ng d n:
c 1: Thi t k giao di
èđ
Hình 3.20: Thi t l p thu c tính Items cho listBox1
string str="";
foreach(string item in listBox1.SelectedItems)
{
str=str+item+"; ";
}
MessageBox.Show(str);
}
- S ki n Click c a nút l nh btnThoat:
privatevoid btnThoat_Click(object sender, EventArgs e)
{
Close();
}
èï
3.4.2. ComboBox
u khi n ComboBox
èî
DataSource Ch n t p d li n vào ComboBox. T p d li u có th
là m ng chu i, ArrayList, ..
SelectedIndex L y ch s m c ch n, ch s m c ch u tiên là 0
SelectedItem Tr v m c ch n
SelectedText L y chu i hi n th c a m c ch n
SelectedValue Tr v giá tr c a m c ch n n u ComboBox có liên k t d
li u. N u không liên k t d li u ho c thu c tính
ValueMember c thi t l p thì thì giá tr thu c tính
SelectedValue là giá tr chu i c a thu c tính SelectedItem
ValueMember Thu c tính này ch nh d li u thành viên s cung c p giá
tr cho ComboBox
u khi n ComboBox
ng d n:
c 1: Thi t k giao di n
èí
Thu
- button1:
Thu c tính Name = btnDoiMau
Thu c tính
- button2:
Thu c tính Name = btnThoat
Thu
- label2:
Thu c tính Name = lblHienThi
Thu ng Sa, Hoàng Sa là c a Vi
- comboBox1: comboBox1ch a danh sách 4 màu g
Danh sách màu này có th ng cách thi t l p thu c
tính Items c a comboBox1 trong c a s Properties
è́
- S ki n Click c a nút l nh btnThoat:
privatevoid btnThoat_Click(object sender, EventArgs e)
{
Close();
}
èë
- Khi nh n nút btnThem thì s thêm s n ph m m i vào cu i danh sách trong
ListBox Li_DSSanPham.
- Khi nh n nút btnThemVT thì s thêm s n ph m m i vào danh sách t i v trí
nh.
- Khi nh n nút btnTimKiem s hi n th m t MessageBox thông báo có tìm
th y s n ph m trong danh sách không.
- Khi nh n nút btnXoa s xóa s n ph c ch n trong danh sách.
- Khi nh n nút btnXoaDS s xóa t t c s n ph m trong danh sách.
btnThemVT
btnTimKiem
btnXoa btnXoaDS
ng d n:
c 1: Thi t k giao di
èê
- label2:
Thu c tính Text n ph
- label3:
Thu c tính Text n ph
- label4:
Thu c tính Text p s n ph m c
- label5:
Thu c tính Text
- textbox1:
Thu c tính Name: txtThemSP
- textbox2:
Thu c tính Name: txtThemSPViTri
- textbox3:
Thu c tính Name: txtTimSP
- button1:
Thu c tính Text
Thu c tính Name: btnThem
- button2:
Thu c tính Text
Thu c tính Name: btnThemVT
- button3:
Thu c tính Text
Thu c tính Name: btnTimKiem
- button4:
Thu c tính Text n ph
Thu c tính Name: btnXoa
- button5:
Thu c tính Text n ph
Thu c tính Name: btnXoaDS
- combobox1:
Thu c tính Name: cboViTri
c 3: Vi t mã l nh
- S ki n Form_Load cho Form1 :
privatevoid Form1_Load(object sender, EventArgs e)
{
ThietLapViTriComboBox();
}
èé
- Vi t mã l nh cho hàm ThietLapViTriComboBox:
privatevoid ThietLapViTriComboBox()
{ cboViTri.Items.Clear();
int chiso = DSSanPham.Items.Count;
for (int i = 0; i < chiso; i++)
cboViTri.Items.Add(i.ToString());
}
èè
- S ki n Click nút l nh btnXoa
privatevoid btnXoa_Click(object sender, EventArgs e)
{
if (DSSanPham.SelectedIndex < 0)
MessageBox.Show("Ch n s n ph m mu n xóa ");
else
{
DSSanPham.Items.Remove(DSSanPham.SelectedItem);
MessageBox.Show("Xóa s n ph m thành công");
}
}
CheckBox u khi n cho phép trình bày các giá tr l a ch n trên form,
i dùng có th ch n m t ho c nhi u giá tr cùng lúc. u khi n CheckBox t
trong nhóm Common Controls c a c a s Toolbox
u khi n CheckBox
èç
M t s thu ng dùng c a CheckBox:
B ng 3.10: B ng mô t các thu c tính c a CheckBox
Thu c tính Mô t
AutoCheck Mang giá tr True ho c False, n u là giá tr True thì cho phép
i dùng nh p chu ch n, n u là False thì không cho
i dùng nh p chu t ch n.
Checked Thi t l u khi n CheckBox c l a ch n ho c
không. Thi t l p giá tr u khi c ch n, n u
thi t l u khi c ch n.
CheckState ki m tra tình tr ng CheckBox c ch n
hay không. Mang 3 giá tr Unchecked, Checked, và
Indeterminate.
Checked u khi c ch n
UnChecked u khi c ch n
Indeterminate: u khi n tr ng thái không ho ng
Text Chu n hi n th bên c nh CheckBox
ThreeState Mang giá tr True ho c False; N u là True thì cho phép
CheckBox có 3 tr ng thái: Checked, UnChecked,
Indeterminate.
RightToLeft Mang giá tr Yes ho c No; Cho bi t chu n hi n th
(thu c tính Text) n m bên trái hay bên ph i c a CheckBox
S ki ng s d ng c a CheckBox:
S ki n quan tr ng xuyên s d ng c a CheckBox là s ki n Clickvà
CheckedChange.Hai s ki n này c a CheckBox cho bi t khi nh p chu t ch n thì
CheckBox s tr ng thái ch n (Checked) hay tr ng thái không ch n (UnChecked).
L p trình viên có th ki m tra CheckBox tr ng thái nào b ng cách ki m
tra thu c tính Checked ho c UnChecked c a CheckBox.
Ví d 6: Thi t k c hi n các yêu c u ch
çđ
Hình 3.28: Giao di n form Thông tin sinh viên ví d 6
Yêu c u:
- Khi nh xu t hi n MessageBox hi n th thông tin g m: H
tên sinh viên, l p, và các môn h c sinh viên ch n.
- Khi nh
ng d n:
c 1: Thi t k giao di
çï
c 2: Thi t l p thu u khi n cho form trong c a s Properties
- label1:
Thu c tính
Thu c tính Size: 16
- label2:
Thu ph
- label3:
Thu
- label4:
Thu c t ch
- textBox1:
Thu c tính Name: txtHoTen
- textBox2:
Thu c tính Name: txtLop
- checkBox1:
Thu
Thu c tính Name: chkCSharp
- checkBox2:
Thu
Thu c tính Name: chkMang
- checkBox3:
Thu lý
Thu c tính Name: chkXLAnh
- checkBox4:
Thu
Thu c tính Name: chkWeb
- button1:
Thu
Thu c tính Name: btnLuu
- button2:
Thu
Thu c tính Name: btnThoat
- S ki n Click c a nút l nh btnThoat:
privatevoid btnThoat_Click(object sender, EventArgs e)
{
Close();
}
çî
c 3: Vi t mã l nh u khi n
- S ki n Click nút l nh btnLuu
privatevoid btnLuu_Click(object sender, EventArgs e)
{
string str = "";
str = str + "H tên: " + txtHoTen.Text + "\nL p: "
+ txtLop.Text + "\nDanh sách môn: ";
if (chkCSharp.Checked == true)
str = str + "L p trình C#, ";
if(chkMang.Checked==true)
str = str + "M ng máy tính, ";
if(chkWeb.Checked==true)
str = str + "L p trình Web, ";
if (chkXLAnh.Checked == true)
str = str + "X lý nh, ";
MessageBox.Show(str);
}
3.5.2. RadioButton
RadioButton u khi n cho phép trình bày các giá tr l a ch n trên form.
m khác bi t c a RadioButtonv i CheckBox i dùng ch có th có m t s l a
ch n v i các RadioButton RadioButtoncó th phân vào nh ng
nhóm khác nhau; V i nh ng RadioButtoncùng nhóm, i dùng nh p ch n m t
RadioButtonthì ng th i các RadioButtonkhác trong nhóm s l p t c b ch n. u
khi n RadioButton t trong nhóm Common Controls c a c a s Toolbox
hình 3.30
u khi n RadioButton
çí
ch n ho c không. Thi t l p giá tr True u
khi c ch n, n u thi t l u
khi c ch n.
Text Chu n hi n th bên c nh RadioButton
RightToLeft Mang giá tr Yes ho c No; Cho bi t chu
b n hi n th (thu c tính Text) n m bên trái hay
bên ph i c a RadioButton
S ki ng s d ng c a RadioButton:
CheckBox, s ki ng dùng c a RadioButton
ki n Click và CheckedChange. S ki n Click th c hi i dùng nh p chu t vào
RadioButton, còn s ki n CheckedChang th c hi n khi tình tr ng c a RadioButton b
i t tr ng thái ch n (Checked) sang tr ng thái không ch n (UnChecked) và
c l i.
Ví d 7: Thi t k form Thông tin sinh viên c hi n yêu c u ch c
ḉ
txtNoiDung
Yêu c u:
- Khi nh i dùng nh p s hi n th trong
u khi n TextBox có tên là txtNoiDung. Ví d : nh p h n
i tính ch
ngành h ph n m hi n th trên TextBox là:
H tên: Nguy
Khoa: Công ngh thông tin
Gi i tính: Nam
Chuyên ngành: Công ngh ph n m m
- Khi nh i
ng d n:
c 1: Thi t k giao di
çë
c 2: Thi t l p thu u khi n trong c a s Properties
- label1:
Thu c tính Text
Thu c tính Size: 16
- label2:
Thu c tính Text
- label3:
Thu c tính Text
- textBox1:
Thu c tính Name: txtHoTen
Thu c tính Text
- textBox2:
Thu c tính Name: txtKhoa
Thu c tính Text
- textBox3:
Thu c tính Name: txtNoiDung
Thu c tính Text
Thu c tính Multiline: True
- groupBox1:
Thu c tính Text
- groupBox2:
Thu c tính Text n ngành h
- groupBox3:
Thu c tính Text
- button1:
Thu c tính Name: btnDangKy
- button2:
Thu c tính Name: btnThoat
- radioButton1:
Thu c tính Name: radNam
Thu c tính Checked: True
- radioButton2:
Thu c tính Name: radNu
- radioButton3:
Thu c tính Name: radCNPM
Thu c tính Checked: True
- radioButton4:
çê
Thu c tính Name: radKTMT
- radioButton5:
Thu c tính Name: radMMTTT
- radioButton6:
Thu c tính Name: radHTTT
c 3: Vi t mã l u khi n
- S ki n Click nút l nh btnDangKy:
privatevoid btnDangKy_Click(object sender, EventArgs e)
{
txtNoiDung.Text = "";
string str = "";
str = "H tên: " + txtHoTen.Text + "\r\nKhoa: " +
txtKhoa.Text + "\r\n";
if (radNam.Checked == true)
str = str + "Gi i tính: Nam\r\n";
if (radNu.Checked == true)
str = str + "Gi i tính: Nu\r\n";
str = str + "Chuyên ngành: ";
if (radKTMT.Checked == true)
str = str + " K thu t máy tính";
if (radMMTTT.Checked == true)
str = str + "M ng máy tính và truy n thông";
if (radHTTT.Checked == true)
str = str + " H th ng thông tin";
if (radCNPM.Checked == true)
str = str + " Công ngh ph n m m";
txtNoiDung.Text = str;
}
3.6.
Câu 1: Vi t m s t c a chu i trong TextBox có giao di
3.34.
çé
TextBox
TextBox
ListBox
çè
Hình 3.36: Giao di c hai
- Button s hi n th k t qu c ------
hi n th k t qu các TextBox s c thi t l p r i dùng có th nh p h
s c i.
- Thoát s .
Câu 4: Vi m s chính t dãy s nh p trong
TextBox (các s cách nhau b i kho ng tr ng). Giao di n g u khi n:
çç
TextBox
Label
ListBox1 ListBox2
ïđđ
- Button In th s hi n th h p tho i MessageBox v i n i dung là các món
n hi n th trong ListBox2
-
Câu 7: Vi p có giao di
txtTen
txtMatKhau
chkHienThi
Yêu c u:
i dùng nh p tên tài kho n và m t kh u trên TextBox txtTen và txtMatkhau.
- N c ch n thì TextBox txtMatkhau s hi n
d u * v i m i ký t i dùng gõ.
- N u c ch n thì TextBox txtMatkhau s hi n th
các ký t
Sau khi nh p và m t kh i dùng nh n Button
- N t kh t hi n
MessageBox v i n
- N u tên tài kho n và m t kh u không ph t hi n
MessageBox v i n
i dùng nh
Câu 8: Vi
Yêu c u:
- Khi nh b u th n th messageBox ch a thông tin:
H tên sinh viên mã s sinh viên. Khi nh n ch n Button OK trên messageBox
thì hi n th form Máy tính. Khi nh n ch n Button Cancel trên messageBox thì
.
- X lý ON/OFF
ïđï
o nh n ch n Button ON/OFF (ho c s l n nh n ch n là ch n) thì t t
ng lên các thành ph n còn l i trên form Máy
tính.
o Nh n ch n m t l n Button ON/OFF (ho c s l n nh n ch n là l ) thì m
ng lên các thành ph n còn l i trên form Máy tính,
ng th i xu t hi n cursor nh p nháy l ph i khung hi n th s n sàng làm
toán.
- X lý khung hi n th
o Không hi n th s c gõ t bàn phím c a máy tính mà ch hi n th s khi
nh n ch n vào các Button s trên form Máy tính. Nh n ch n Button nào thì
hi n th s ng v i nhãn c a Button Button nh p
d u cách ph n th p phân c a s th gõ d ng
c s th c A và B.
- X lý tính toán + , - , x , /
o Th c hi n phép toán gi a 2 s th c A và B. S A là s nh c khi nh n
ch n Button phép toán, n u khung hi n th tr ng thì hi u s A có giá
tr 0. S B là s nh p sau khi nh n ch n Button phép toán.
- nh n ch n But xu t k t qu phép toán lên khung hi n th .
- M i l n nh n ch n xoá m t kí s , xóa t bên ph i sang.
- nh n ch n C: xoá t t c trong khung hi n th .
ïđî
4: U KHI N C BI T
Tooltip
Tooltip Tooltip
Toolbox
u khi n Label
u khi n Tooltip
ïđí
ReshowDelay Th i gian mà Tooltip t t t
chu t ra kh u khi n, th i gian tính b ng
mili giây
ShowAlways
ToolTipIcon Bi ng xu t hi n bên c nh chu i khai báo
trong thu c tính TooltipTitle
ToolTipTitle Chu i hi n th bên c nh bi ng TooltipIcon
UseAnimation Thi t l p hi u ng c bi u di n khi
c hi n th
UseFading Thi t l p hi u ng m d c bi u di n khi
Tooltip hi n th
M ts ng dùng c a Tooltip:
B ng 4.2: B ng mô t c c a Tooltip
c Mô t
SetTooltip() Thi t l p chu i hi n th c u
khi n
GetTooltip() L y n i dung chu i hi n th trên Tooltip
Clear() Lo i b t t c u khi n
trên form
TextBox1
TextBox2
ïđ́
Yêu c u:
- Khi rê chu t vào TextBox1: hi n th p chu i ký không d u,
không kho ng tr
- Khi rê chu t vào TextBox2: hi n th p ít nh t 6 ký t , nhi u
nh t 10 ký t
- Khi nh n th MessageBox v i n
- Khi nh
ng d n:
c 1: Thi t k giao di Tooltip t
c a s Toolbox th vào Form1
ïđë
- button1:
Thu c tính Name: btnDangNhap
Thu c tính Text
- button2:
Thu c tính Name: btnThoat
Thu c tính Text
- toolTip1:
Thu c tính Name: ttpDangNhap
- toolTip2:
Thu c tính Name: ttpMatKhau
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnDangNhap:
- S ki n Load c a Form1:
ïđê
u khi n HelpProvider
u khi n HelpProvider
ïđé
- Find: Giúp hi n th n i dung tr giúp có chu i ký t
trùng v i t khóa trong thu c tính HelpKeyword.
- Index: Hi n th danh m c các ch m c trong t p tin tr
giúp.
ïđè
HelpString Hi n th chu i tr u khi n. N u thu c tính
HelpProvider c thi t l i dùng nh n
phím F1 s hi n th chu i tr giúp này
ShowHelp N u thi t l p giá tr True thì cho phép n i dung tr giúp hi n th
trên m u khi N u thi t l p giá tr False thì không
hi n th c
M ts ng dùng c a HelpProvider:
Các thu c tính HelpKeyWord, HelpNavigator, HelpString, ShowHelp có th
c thi t l p giá tr trong c a s Properties ho c có th s d
b thi t l p giá tr
B ng 4.5: B ng mô t các cc u khi n khi thêm HelpProvider
c Mô t
SetHelpKeyword Thi t l p giá tr cho thu c tính HelpKeyword
SetHelpNavigator Thi t l p giá tr cho thu c tính HelpNavigator
SetHelpString Thi t l p giá tr cho thu c tính HelpString
SetShowHelp Thi t l p giá tr cho thu c tính ShowHelp
u khi n ErrorProvider
ïđç
M t s thu ng dùng c a ErrorProvider:
B ng 4.6: B ng mô t các thu c tính c a HelpProvider
Thu c tính Mô t
Icon Ch n bi ng th hi n l i c u khi n
BlinkRate T nh p nháy c a bi ng trong thu c
tính Icon. T tính theo mili giây
BlinkStyle Ki u nh p nháy c a bi ng. N u thi t l p
giá tr NeverBlink thì bi ng s hi n th mà
không nh p nháy.
M ts ng dùng c a ErrorProvider:
B ng 4.7: B ng mô t các c c a HelpProvider
c Mô t
u khi n>, Giúp hi n th l i và thông báo l i c u
<Thông báo l i>) khi n. Thông báo l i hi n th i d ng Tooltip
Clear() Xóa bi ng ErrorProvider c u khi n
ng trên form.
GetError() L y chu i thông báo l i c u khi n.
Ví d 4.4: Vi u Textbox
nh p tên tài kho c có kho ng tr ng; Textbox m t kh u ph i là ký t s và
tr ng; Hi n th tr u khi n Textbox tên tài kho n, c th
khi nh n F1 s hi n tr giúp t o m t kh u t website:
http://phunutoday.vn/kham-pha-cong-nghe/cac-nguyen-tac-tao-mat-khau-an-toan-
33828.html
TextBox1
TextBox2
ïïđ
ng d n:
c 1: Thi t k giao di
ïïï
Thu c tính Name: LoiTenDN
- errorProvider2:
Thu c tính Name: LoiMatKhau
- helpProvider1:
Thu c tính Name: TroGiupMatKhau
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnThoat:
privatevoid btnThoat_Click(object sender, EventArgs e)
{
Close();
}
- S ki n Load c a Form1:
ïïî
- S ki n TextChanged c a TextBox txtTen:
4.2. và Timer
4.2.1.
u khi n ProgressBar
u khi n ProgressBar
ïïí
M ts ng dùng c a ProgressBar:
B ng 4.9: B ng mô t các c c a ProgressBar
c Mô t
PerformStep() ProgressBar. Giá tr
c thi t l p trong thu c tính
Step.
Increment(<giá tr >)
là tham s u vào <giá tr > c c.
Timer
Timer
u khi n Timer
u khi n Timer
ïḯ
M ts ng dùng c a Timer:
B ng 4.11: B ng mô t các c c a Timer
c Mô t
Start() Kích ho u khi n Timer ho
th ng v i vi c thi t l p giá thu c
tính Enable là True
Stop() D ng ho ng c u khi n Timer
th ng v i vi c thi t l p giá thu c
tính Enable là False.
M t s s ki n ng dùng c a Timer:
B ng 4.12: B ng mô t các s ki n c a Timer
S ki n Mô t
Tick S ki c g i trong m i chu k Interval
Ví d 4.5: Vi tr i dùng h c gi c nh t: ax + b
= 0. Thi t k giao di
ïïë
ng d n:
c 1: Thi t k giao di
textBox1
textBox2
textBox3
ProgressBar1
ïïê
Thu c tính Name: btnThoat
Thu c tính Text: Thoát
- ProgressBar1:
Thu c tính Name: ProGressTG
Thu c tính Minimum: 0
Thu c tiính Maximum: 30000
Thu c tính Step: 1000
Thu c tính Style: Blocks
- timer1:
Thu c tính Name: ThoiGian
Thu c tính Enable: True
Thu c tính Interval: 1000
c 3: Vi t mã l u khi n
- Khai báo các bi n
private int a=0;
private int b=0;
private float x = 0;
Random rd = new Random();
- S ki n Load c a Form1:
u khi n ListView
.
u khi n ListView
ïïè
Sau khi ch n thu c tính Items trong c a s Properties, c a s ListViewItem
Collection Editor s hi 4.14. L p trình viên có th thêm ho c xóa
ListViewItem trong ListView b ng cách nh n nút Add ho c Remove.
c thêm
Thu c tính
ListViewItem
ïïç
Sau khi ch n thu c tính SubItems trong c a s ListViewItem Collection Editor,
c a s ListViewSubItem Collection Editor 4.16 c hi n th cho phép l p
trình viên thêm ho c xóa các SubItem.
c thêm
Thu c
tính
SubItem
ïîđ
- LargeIcons: M t bi ng l n bi u di n cho m i
Item cùng v i m i icon. Các bi u
ng l c l y t u khi n ImageList, và
c thi t l p trong thu c tính LargeImageList c a
ListView.
ListView hi n th Item d ng LargeIcons
- List: M i Item s c hi n th t bi ng nh
v i m t nhãn bên ph i. Các bi ng trong
ListView c s p x p theo các c t.
ListView hi n th Item d ng List
ïîï
- Tiles: M i m t Item s hi n th v i bi ng có kích
c là t i m t label và các subitem s
hi n th các c t bên ph i.
ListView hi n th Item d ng Tiles
ïîî
FocusedItem.Index Tr v ch s c ch n trong ListView
SelectedIndices.Count Tr v s ng I c ch n trong ListView
SelectedIndices Tr v danh sách ch m c ch n.
Ví d 4.6:
myListView.SeletedIndices[0]: tr v ch m c c a Item
c ch c ch n
trong ListView
M ts ng dùng c a ListView:
B ng 4.14: B ng mô t các c c a ListView
c Mô t
Clear() Xóa t t c các Item và Column trong ListView
Sort() S p x p các Item trong ListView
GetItemAt(x,y) L y Item t i v tr to x và y (x và y có th l c thông
qua s ki n Click chu t)
M t s s ki ng dùng c a ListView:
B ng 4.15: B ng mô t các s ki n c a ListView
S ki n Mô t
SelectedIndexChanged S ki n phát sinh khi có s i v ch m c
ch n c a Item trên ListView
ItemSelectionChanged S ki n phát sinh khi có s i l a ch n m t Item
trên ListView
ItemCheck X y ra khi tr ng thái ch n c a Item i
ColumnClick S ki n phát sinh khi m t column trong ListView c
click
MouseClick S ki n phát sinh khi nh p chu t ch n m t Item trong
ListVIew
ïîí
Ví d 4.7: Thi t k giao di
textBox1 textBox2
listView1
ïî́
Thu Thêm l p h c
Thu c tính Size: 14
- label2:
Thu
- label3:
Thu c
- button1:
Thu
Thu c tính Name: btnThem
- listView1:
Thu c tính Name: myListView
Thu c tính View: Details
Thu c tính GridLines: True
- textBox1:
Thu c tính Name: txtTenLop
- textBox2:
Thu c tính Name: txtSoLuong
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnThem:
- S ki n Load c a Form1:
ïîë
4.4. u khi n TreeView
Hình 4.19: Bi u di c d ng ph n c p
u khi n TreeView
.
Hình 4.20 u khi n TreeView
ïîê
M t s thu ng dùng c a TreeView:
B ng 4.16: B ng mô t các thu c tính c a TreeView
Thu c tính Mô t
Node Tr v m ng thu c l p TreeNode
SelectedNode Tr v c ch n trong TreeView
ShowPlusMinus Hi n th d u + và c m i TreeNode
ShowRootLines Hi n th ng th ng n i gi a các Root Node
trong m t TreeView
ImageList Hi n th c m i node trong TreeView.
is d u khi n ImageList,
ng c u khi n ImageList
cho thu c tính ImageList c a TreeView
ImageIndex Giá tr c a thu c tính ImageIndex là ch s c a
u khi n ImageList. Khi gán ch s
cho thu c tính ImageIndex thì hình hi n th
c m i node s là hình có ch s ng.
i s d ng thu c
SelectedImageIndex Giá tr c a thu c tính SelectImageIndex là ch
s c u khi n ImageList. Khi
i dùng ch có
c tính
SelectedImageIndex ch nh
M ts ng dùng c a TreeView:
B ng 4.17: B ng mô t các c c a TreeView
c Mô t
GetNodeCount() m s node trong m t TreeView
ExpandAll() Hi n th t t c các node trên TreeView
CollapseAll() Thu g n t t c các node trên TreeView
GetNodeAt(x,y) L y m t node t i m t v trí có t (x, y) trên
màn hình.
ng s d ng s ki n MouseDown
ho c NodeMouseClick
M t s s ki n ng dùng c a TreeView:
B ng 4.18: B ng mô t các s ki n c a TreeView
S ki n Mô t
AfterCollapse Phát sinh khi thu g n m t TreeNode
AfterExpand Phát sinh khi hi n th các node trong TreeNode
ïîé
AfterSelect Phát sinh khi ch n m t TreeNode
NodeMouseClick Phát sinh khi ch n m t node
ïîè
treeView1 textBox1
c 1: Thi t k giao di
ïíđ
- S ki n Click c a nút btnXoaTaCa:
4.5.
4.5.1.
ïíï
u khi n DateTimePicker d ng l ch bi u
u khi n DateTimePicker
ïíî
khác v ngày tháng.
nh d u
Vi t Nam thì ki nh d ng ph i là
c tính format ph i thi t
l p là Cusom.
4.5.2. Calendar
ïíí
u khi n MonthCalendar
ïí́
i dùng có th ch n m MonthCalendar b ng cách nh p
chu t ch c ch n m t dãy nhi u ngày liên ti p b ng cách nh p chu t
ch u tiên và gi ng th i ch n ngày cu i cùng c a dãy. S ng
c ch n trong dãy ph i nh thi t l p trong thu c tính
MaxSeclectCount
M t s s ki ng dùng c a MonthCalendar:
B ng 4.24: B ng mô t các s ki n c a MonthCalendar
S ki n Mô t
DateChanged c phát sinh m t ngày m i ho c m t dãy các
ngày m c ch n
ng d n:
c 1: Thi t k giao di hình 4.27
u khi n
monthCalendar1
ïíë
Hình 4.27: Giao di u ví d 4.9
string strngay="";
DateTime i=new DateTime();
for ( i = MyMCalendar.SelectionStart;
i<= MyMCalendar.SelectionEnd; i=i.AddDays(1.0))
{
strngay += i.ToLongDateString() + "\n";
}
MessageBox.Show(strngay);
}
4.6.
Câu 1: Thi t k
ïíê
Hình 4.28: Giao di
Yêu c u:
- i dùng nh p giá tr trong TextBox txtIncrement; nh p giá tr trong TextBox
txtInterval.
- i dùng nh n nút Start ProgressBar1 s thu c tính Value lên
(trong kho ng t ng th i thu c gán
cho Label lbValue, m i l i giá tr b ng giá tr p trong
txtIncrement, c sau m i th c nh p trong txtInterval (/1000 giây) s
giá tr thu c tính Value lên. Khi thu c tính Value có giá tr >= Maximum thì
thu c tính Value s c gán b ng Minimum tr l i. Ngoài ra khi nh n nút Start
n h p l s chuy n sang tr ng thái ch c không cho
i dùng ch nh s a (Hình 02).
- i dùng nh n nút Stop s tr v tr u.
Câu 2: Thi t k
ïíé
Yêu c u:
- Khi b u ch n th m t MessageBox v i n i dung là B n có
mu n ti p t c Load Form? , chu i hi n th trên titlebar MessageBox là H tên - s
máy c a sinh viên d thi.
o N i dùng nh n ch n No thì d ng vi c l i,
o N i dùng nh n ch n Yes thì hi n Form v i giao di
- i dùng nh p m t chu i b t k vào TextBox txtChuoi i dùng nh n
Button Chu n Hóa s nh d ng l i chu i nh p theo yêu c u sau:
o Lo i b các kho ng tr ng th a (lo i b các kho ng tr ng u và cu i chu i,
làm sao gi a các t cách nhau m t kho ng tr ng.)
o D u câu n m sát t ng k c và cách t ng k sau m t kho ng tr ng.
(X lý các d u câu sau: d u ch u ph d u hai ch
d u ch uh u ch m ph
- Chu i sau khi chu n hóa s c hi n th TextBox txtChuoi . (Xem Hình 02)
- i dùng nh n Button Th ng Kê s th ng kê t n s xu t hi n c a các t
i ra ListView lvThongKe (không phân bi t ch hoa, ch ng
khi th ng kê). (Xem Hình 02)
- i dùng nh hi
Câu 3: Thi t k
TextBox1
TextBox2
TextBox3
Yêu c u:
- TextBox2 ph i nh nh d ng dd/mm/yyyy. N u nh p sai thì s
hi n thông báo l i
ïíè
Hình 4.31: Nh nh d ng ngày tháng
- TextBox3 ph i nh m trung bình là s . N u nh p sai thì s hi n thông báo
l i ps
Hình 4.42: Nh nh d ng s
Câu 4: Vi n th c trong máy tính. Giao di
ïíç
- Khi nh n th hi n th các th c m c có trong máy tính trên
TreeView.
- Khi nh
Câu 5: Vi ng h n t nh 4.44 (s d u khi n
Timer)
ḯđ
5: U KHI XÂY D NG MENU
5.1. ImageList
u khi n
ImageList
ḯï
L p trình viên có th thêm ho c xóa hình trong
ImageList b ng các nút Add và Remove trong c a
s Images Collection Editor
ng d n:
c 1: Thi t k giao di 3
ḯî
comboBox1 pictureBox1
ḯí
Hình 5.4: Thi t l p thu c tính Images c a ImageList1
ḯ́
5.2. u khi n MenuStrip
H th ng menu
c a Notepad
u khi n
MenuStrip
ḯë
- Hình th c Vertical 90:
- D ng Combobox:
- D ng TextBox:
ḯê
- Separator (G ch phân cách):
ḯé
- N u là False: Không bi ng CheckBox
ḯè
ShorcutKeys T h p phím t t ng v i menu
ḯç
Ví d 5.2: Thi t k giao di n th th
lblHienThi
Yêu c u:
Menu Ch : Ch c m c Thoát d ng i dùng nh n chu t trái
vào Thoát ho c nh n t h p phím Ctrl + T s
Menu N i dung hi n th : D ng ComboBox. ComboBox ch a hai m c ch n:
Hi n th th i gian: Giúp hi n th gi phút giây trên label lblHienThi
Hi n th ngày tháng: Giúp hi n th label lblHienThi
ng d n:
c 1: Thi t k giao di u khi n t c a s Toolbox
ïëđ
Thu c tính Name: lblHienThi
- timer:
Thu c tính Name: MyTime
Thu c tính Enable: True
Thu c tính Interval: 1000
- menuStrip1:
Thu c tính Name: MyMenu
Thu c tính DropDownItems c a MyMenu: Ch n thu c tính DropDownItems
trong c a s Properties s hi n th c a s Items Collection Editor c a
MyMenu. T i c a s này thêm hai menu có tên: itmChucNang (d ng
MenuItem) và cboChucNang (d ng ComboBox)
ïëï
Hình 5.10: C a s Items Collection Editor c a itmChucNang
c 3: Vi t mã l u khi n
- Khai báo bi n:
int chon=3;
DateTime dt = new DateTime();
- S ki n Tick c a MyTimer:
ïëî
- S ki n Click c a itmThoat:
- S ki n SelectedIndexChanged c a cboChucNang:
u khi n
ContextMenuStrip
ïëí
Gi ng nh u khi u khi
l p trình viên xây d ng menu theo 4 d ng: MenuItem, ComboBox, TextBox, Separator.
Các thu c và s ki n c a 4 d u khi n
ContextMenuStrip u khi n MenuStrip (xem m c 5.2 c a
Ví d 5.3: Vi t hi n th th i gian và t
5.13.
ïë́
Hình 5.13: Giao di hi n thì th i gian ví d 5.3
Yêu c u:
Khi ch n m n th th i gian: S hi n th gi phút giây trên label lblNoiDung.
Khi ch n m n th hi n th
lblNoiDung.
Khi ch n m c Thoát ho c nh n t h p phím Ctrl + T s ng trình.
ng d n:
c 1: Thi t k giao di uc
c 3: Vi t mã l u khi n
- Khai báo bi n:
int chon = 3;
DateTime dt = new DateTime();
- S ki n Click c a menuDisplayTime:
- S ki n Click c a menuDisplayDate:
private void menuDisplayDate_Click(object sender, EventArgs e)
{
chon = 1;
lblHienThi.Text = dt.Date.ToLongDateString();
}
ïëê
- S ki n Click c a menuExit:
- S ki n Tick c a MyTimer:
u khi n NotifyIcon cho phép l p trình viên trình bày bi ng trên System
Tray c a màn hình Desktop . V i vi c s d u khi n NotifyIcon,
i dùng di chuy n chu n bi ng thì chu i khai báo trong thu c tính
Text c u khi n NotifiIcon s Tooltip. u khi n NotifyIcon n m
trong nhóm Common Controls c a c a s 17
System Tray
u khi n
NotifyIcon
ïëé
M t s thu ng dùng c a NotifyIcon:
B ng 5.6: B ng mô t các thu c tính ng dùng c a NotifyIcon
Thu c tính Mô t
Icon Bi ng s xu t h i khay h th ng khi
form hi n th
Text Chu i xu t hi n khi di chuy n chu t vào bi u
i khay h th ng
ContextMenuStrip Menu Popup s xu t hi i dùng nh n
chu t ph i vào bi i khay h th ng
Visible Mang giá tr True: Hi n th bi u ng trên System
Tray
Mang giá tr False: Không hi n th bi ng trên
System Tray
hi n th m t NotifyIcon trên System Tray, l p trình viên b t bu c ph i thi t
l p m t bi c tính Icon và thu c tính Visible ph i mang giá tr
True.
M t s s ki ng dùng c a NotifyIcon:
B ng 5.7: B ng mô t các thu c tính ng dùng c a NotifyIcon
S ki n Mô t
MouseClick i dùng nh n chu t ch n vào bi u
c thi t l p trong thu c tính Icon
ng các bi c s d ng b ng s ki n
MouseClick c a chu t. V i s ki n MouseClick khi nh n chu t ph i s hi n th m t
ContextMenuStrip, khi nh n chu t trái s m c liên k t v i
NotifyIcon.
Ví d 5.4: Vi
Yêu c u:
Khi ch hi n th m t bi ng trên System Tray.
Khi nh p chu t ph i vào bi ng s hi n th m t ContextMenuStrip
ïëè
Hình 5.19: ContexMenuStrip trên bi ng c a NotifyIcon
ïëç
Hình 5.21: C a s Item Collection Editor ví d 5.4
c 3: Vi t mã l u khi n
- S ki n Click c a thoátToolStripMenuItem:
ïêđ
- S ki n MouseClick c a MyNotifyIcon:
private void MyNotifyIcon_MouseClick(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
MessageBox.Show("Khoa Công ngh ng
i h c L c H ng\nXin chào các b n");
}
u khi n
ToolStrip
ïêï
ToolStrip c nh không th t i b i
i dùng.
AllowMerge i dùng gi phím Alt và gi chu t trái
u khi n trên ToolStrip này và kéo th vào
m t ToolStrip khác.
c tính này ch có hi u l c khi thu c tính
AllowItemReoder là True
CanOverflow Mang hai giá tr True và False.
- N u là giá tr True: Khi s u khi n
t ra kh i ph m vi c
thì nh u khi n này s c thu nh trong
bi ng góc ph i c a ToolStrip.
nh trong bi ng góc ph i c a
Bottom
ïêî
ShowItemTooltips Mang hai giá tr True ho c False.
- N u là True: Cho phép hi n th chu i khai
báo trong thu c tính ToolTipText c a m i
u khi n ch a trong ToolStrip.
- N u là False: Chu i khai báo trong
ToolTipText c u khi n ch a trong
c hi n th .
ïêí
- ToolStripSeparator u khi hi n th d u g ch phân cách,
u khi n trong ToolStrip v hi n th m t
cách d nhìn
- ToolStripComboBox: u khi n ToolStripComboBox có các thu c tính,
c và s ki u khi n ComboBox c
t trên MenuStrip. D ng hi n th c a ToolStripComboBox
d Simple, DropDown ho c DropDownList.
- ToolStripTextBox u khi n TextBox t trên
MenuStrip i dùng có th gõ chu i ký t i
ký t c truy n vào cho thu c tính ToolStripTextBox.Text m
khác bi t chính c a ToolStripTextBox và TextBox u khi n
ToolStripTextBox không có thu c tính MultiLine n c a
ToolStripTextBox ch có m t dòng.
- ToolStripSplitButton u khi n k t h p ch a ToolStripButton
và ToolStripDropDownButton u khi n này hi n th m i
dùng có th nh th c thi mã l n th
m t menu theo d ng s xu a ToolStripDropDownButton. L p
trình viên có th s d ng s ki n ToolStripSplitButton vi t mã
l nh khi nh n nút b m ho c có th vi t mã l nh cho m i s ki n
ToolStripMenuItem.Click
Hi n th u khi n c a ToolStrip
i u khi n ToolStripButton, ToolStripSplitButton và
ToolStripDropDownButton có th hi n th hình, chu i mô t ho c c hai. B ng 5.9 mô
t các thu ng s d bi u di n hình và chu i mô t u khi n
ToolStripButton, ToolStripSplitButton, ToolStripDropDownButton c a ToolStrip
B ng 5.9: B ng mô t thu c tính c u khi n trên ToolStrip
Thu c tính Mô t
DisplayStyle G m các giá tr : None, Text, Image, ImageAndText
- None: Không hi n th u
khi n.
- Text: Ch hi n th chu i mô t c thi t l p
trong thu u khi n (không
hi n th hình).
- Image: Ch hi n th c thi t l p trong
thu u khi n (không hi n
th chu i mô t )
- ImageAndText: Hi n th c hình và chu i mô t
ïế
u khi n
Image Ch nh hình s hi n th u khi n
TextImageRelation Ki u hi n th c a Text và Image u khi n:
Overlay, ImageAboveText, TextAboveImage,
TextBeforeImage, ImageBeforeText
- ImageBeforeText:
- TextBeforeImage:
- ImageAboveText:
- TextAboveImage:
- Overlay:
5.5.2. ToolStripContainer
ïêë
ToolStripContainer). ToolStripContainer n m trong nhóm Menus & Toobars c a c a
s T
u khi n
ToolStripContainer
u khi n ToolStripContainer
ïêê
Có th lo i b 8 ho c thi t l p giá tr các thu c tính:
LeftToolStripPanelVisible, RightToolStripPanelVisible, TopToolStripPanelVisible,
TopToolStripPanelVisible
M t s thu ng dùng c a ToolStripContainer:
B ng 5.10: B ng mô t thu c tính c a ToolStripContainer
Thu c tính Mô t
Dock Ki u hi n th c a ToolStripContainer.
- Fill: Hi n th b ng v i kích thu c form
- Top: Hi n th n m sát c nh trên c a form
- Bottom: Hi n th n m sát c i c a
form
- Left: Hi n th sát c nh trái c a form
- Right: Hi n th sát c nh ph i c a form
ng thì thu c tính Dock c thi t
l p giá tr Fill
LeftToolStripPanelVisible Mang giá tr True ho c False.
- N u là True: Hi n th panel bên c nh trái
c a form
- N u là False: Không hi n th panel bên
c nh trái c a form
RightToolStripPanelVisible Mang giá tr True ho c False.
- N u là True: Hi n th panel bên c nh ph i
c a form
- N u là False: Không hi n th panel bên
c nh ph i c a form
TopToolStripPanelVisible Mang giá tr True ho c False.
- N u là True: Hi n th panel c nh trên c a
form
- N u là False: Không hi n th panel c nh
trên c a form
BottomToolStripPanelVisible Mang giá tr True ho c False.
- N u là True: Hi n th panel c ic a
form
- N u là False: Không hi n th panel c nh
i c a form
ïêé
Ví d 5.5: Thi t k 9.
Yêu c u sau khi nh a ch website trong TextBox c a ToolStrip và nh n Enter thì s
hi n th a ch v a nh p.
ng d n:
c 1: Thi t k giao di
- Kéo ToolStrip t c a s u khi n
30:
ToolStripLabel ToolStripTextbox
ïêè
- u khi n WebBrowser t c a s 1.
u khi n cho phép hi n th website trên form.
webBrowser1
ïêç
- S ki n KeyDown c a txtAddress:
u khi n
StatusStrip
ïéđ
B ng 5.11: B ng mô t thu c tính c a StatusStrip
Thu c tính Mô t
Item Qu n lý vi u khi n trên
StatusStrip StatusLabel, SplitButton,
DopDownButton, ProgressBar.
TextDirection Chi u hi n th c a chu i mô t trong thu ct tính
Text.
LayoutStyle V trí hi n th c a StatusStrip.
ng d n:
c 1: Thi t k giao di u khi n StatusStrip và Timer t
c as u khi n StatusLabel trên StatusStrip
ïéï
- toolStripStatusLabel1:
Thu c tính Name: MyStatusLabel
c 3: Vi t mã l u khi n
- S ki n Tick c a MyTimer:
5.7. Bài t p cu
ïéî
Câu 2: Vi t g m các bài t p có giao di n
Yêu c u:
Khi nh n F5 s c form hi n th p chu t ch n Menu s c các
MenuItem hi n th
- Khi ch n MenuItem Bài 01 s hi n th giao di
ïéí
- Khi nh n nút Thêm thì ki c nh p (H tên, H c
b ng) và ch n (L i dùng nh p, ch n
l c l i thì thêm các thông tin vào ListView lvDanhSach
- Khi nh sinh viên c p h c b ng vào m t t p tin
n (*.txt) v i d 5.39.
- Khi ch hi n th giao di
Yêu c u:
- i dùng ch n s thích và màu thích c a mình.
- Khi nh n nút S Thích C a B n thì xu t MesageBox các s c ch n
.
- Khi nh n nút Màu B n Thích thì xu c ch n
5.42.
ïé́
Hình 5.41: MessageBox s thích Hình 5.42: MessageBox n
- Khi ch hi n th giao di
Yêu c u:
- i dùng ch n giá tr trong DateTimePicker thì hi n th các giá tr
i.
- i dùng nh n LinkLabel s m ng d ng.
- Khi ch hi n th giao di
ïéë
6: U KHI N CH U KHI N KHÁC
ïéê
- N u là True: GroupBox t i
c có th hi n th h u
khi n ch a bên trong
- N u là False: GroupBox có kích c
p trình viên thi t l p.
AutoSizeMode nh cách th c u khi i kích
c.
- GrowAndShrink: GroupBox có th co và
giãn
- GrowOnly: M nh, ch giãn l n
Khi thi t l p giá tr thu c tính cho GroupBox trong b ng 6.1, thì nh u
khi u n có
nh ng giá tr thu a GroupBox.
Ví d 6.1: Vi nh d ng chu n, thi t k giao di
ïéé
textBox1
ïéè
Thu c tính Name: radDen
- radioButton4:
Thu c tính Name: radInDam
- radioButton5:
Thu c tính Name: radInNghieng
- radioButton6:
Thu c tính Name: radGachChan
- button1:
Thu c tính Name: btnThoat
Thu c
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnThoat:
- S ki n CheckedChanged c a radXanh:
- S ki n CheckedChanged c a radDo:
ïéç
- S ki n CheckedChanged c a radDen:
- S ki n CheckedChanged c a radInDam:
}
}
- S ki n CheckedChanged c a radInNghieng:
}
}
- S ki n CheckedChanged c a radGachChan:
}
}
ïèđ
6.2. u khi n Panel
ïèï
6.3. u khi n FlowLayoutPanel
ïèî
Hình 6.6: B u khi n t trái sang ph i v i WrapContents là True
ïèí
B ng 6.3: B ng mô t các thu c tính c a FLowLayoutPanel
Thu c tính Mô t
AutoScroll Mang giá tr True ho c False.
- N u là True: FLowLayoutPanel t ng xu t hi n thanh
c Panel không th hi n th h u
khi n ch a bên trong
- N u là False: FLowLayoutPanel s không hi n th thanh
t
BorderStyle Ki ng vi n c a FLowLayoutPanel khi hi n th . Có 3 giá
tr : None, FixedSingle và Fixed3D
- None: Không hi n th ng vi n
- FixedSingle:Quanh FLowLayoutPanel s hi n th m t
ng vi
- Fixed3D: Hi n th ng vi n c a FLowLayoutPanel
d ng 3 chi u.
FlowDirection Cách th c b u khi u khi n n m ngoài
ph m vi c a FLowLayoutPanel. Bao g m 4 giá tr : LeftToRight,
RightToLeft, TopDown, BottomUp
WrapContents Mang giá tr True ho c False.
- N u là True: u khi c
FLowLayoutPanel s t ng b trí trên m t dòng m i
ho c m t c t m i
- N u là False: FLowLayoutPanel s xu t hi t
hi n th u khi n ngoài kích thu c c a
FLowLayoutPanel (v i thu c tính AutoSroll là True).
N u thu c tính AutoSroll là Fals u khi n n m
cs b
ng dùng c a FLowLayoutPanel:
B ng 6.4: B ng mô t các c c a FLowLayoutPanel
c Mô t
Controls.Add th c có ch u khi n vào
FlowLayoutPanel
ïè́
Hình 6.10: Giao di n form hi n th hình ví d 6.2
ng d n:
c 1: Thi t k giao di u khi n FlowLayoutPanel,
- Form1:
Thu
- pictureBox1:
Thu c tính Name: myPictureBox
- flowLayoutPanel1:
Thu c tính Name: myFlowLayoutPanel
Thu c tính BorderStyle: FixSingle
Thu c tính AutoScroll: True
ïèë
Thu c tính WrapContents: False
- imageList1:
Thu c tính Name: myImageList
Thu c tính ImageSize: 256, 256
Thu c tính Images: Thêm m t s hình
c 3: Vi t mã l u khi n
- S ki n Load c a Form1:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < myImageList.Images.Count; i++)
{
PictureBox pic = new PictureBox();
pic.Image = myImageList.Images[i];
pic.Size = new Size(50, 50);
pic.Click += new EventHandler(Form1_Click);
myFlowLayoutPanel.Controls.Add(pic);
}
}
ïèê
- S ki n Click c a Form1:
private void Form1_Click(object sender, EventArgs e)
{
try
{
PictureBox pic = (PictureBox)sender;
myPictureBox.Image = pic.Image;
}catch (Exception ex) { }
}
ïèé
Hình 6.14: Thêm dòng và c t trên c a s Column and Rown Styles
ïèè
V i m i ô c a TableLayoutPanel, ch có th ch c m u khi n. Tuy
nhiên l p trình viên có th thêm nhi u khi n trong m t ô b ng cách thêm m u
khi n lo GroupBox, Panel a TableLayoutPanel
l p trình viên có th thêm nhi u khi n và u khi n lo i Containers n m trong ô
c a TableLayoutPanel.
TableLayoutPanel c cung c t (ScrollBar) khi thu c tính
AutoScroll là True.
TableLayoutPanel
BorderStyle CellBorderStyle
CellBorderStyle TableLayoutPanel
TableLayoutStyle
TableLayoutPanel
CellBorderStyle Single, Inset,
InsetDouble, Outset, OutsetDouble OutsetPartial.
M t s thu ng dùng c a TableLayoutStyle:
B ng 6.5: B ng mô t các thu c tính c a TableLayoutStyle
Thu c tính Mô t
AutoScroll Mang giá tr True ho c False.
- N u là True: TableLayoutStyle t ng
xu t hi c
Panel không th hi n th h u
khi n ch a bên trong
- N u là False: TableLayoutStyle s không
hi n th t
CellBorderStyle Ki ng vi n c a TableLayoutStyle khi hi n
th . Có 3 giá tr : None, Single và Inset,
InsetDouble, Outset, OutsetDouble,
OutsetPartial.
ColumnCount S c t c a TableLayoutPanel. L p trình viên có
th thêm ho c gi m s c t b i
giá tr thu c tính ColumnCount
Columns Thu c tính này giúp hi n th b ng Column and
thêm, s a ho c xóa c t.
GrowStyle Thu c tính ch nh vi c
c a nào. G m các
giá tr :
- FixedSize: C c, không
ïèç
i.
- AddRows: Thêm dòng m i
- AddColumns: Thêm c t m i
RowCount S c t c a TableLayoutPanel. L p trình viên có
th thêm ho c gi m s dòng b i
giá tr thu c tính RowCount
Rows Thu c tính này giúp hi n th b ng Column and
thêm, s a ho c xóa dòng.
ng dùng c a TableLayoutStyle:
B ng 6.6: B ng mô t các c c a TableLayoutStyle
c Mô t
Controls.Add th c có ch u khi n vào
TableLayoutStyle
6.5.
6.16.
Hình 6.16
TabPage:
TabControl là TabPage. TabControl
TabPage 6.17.
TabPage
ïçđ
TabControl
TabPage
Hình 6.17:
TabPage TabControl
TabPage
TabPage TabControl
TabPages
6.18.
TabPage
Các thu c
tính c a
TabPage
Hình 6.18
TabPage Panel. TabPage
AutoScroll
BorderStyle TabPage None,
FixedSingle, Fixed3D Panel là TabPage
ïçï
tính Text nh Text
TabPage:
- Button:
- FlatButtons:
ïçî
- Bottom:
- Left:
- Right:
ïçí
TabPages Ch a t p các các TabPage có trong TabControl
TabCount Tr v s ng TabPage mà TabControl có
SelectedTab Tr v u khi n TabPage c ch n
SelectedIndex Tr v v trí c a TabPage c ch n
Các s ki ng dùng c a TabControl:
B ng 6.8: B ng mô t các s ki n c a TabControl
S ki n Mô t
SelectedIndexChanged i dùng ch n m t TabPage
khác trên TabControl
6.3:
TagPage: TagPage TagPage
TagPage
TagPage
ïḉ
Hình 6.20: giáo viên
TagPage
Label, TextBox,
TabControl và ListView
tabControl1
textBox3
textBox1
textBox3
textBox2
listView
Hình
- Form1:
ïçë
Text
- label1:
Text
Size: 14
- label2:
Text
- label3:
Text
- label4:
Text
- label5:
Text
- textBox1:
Name: txtHoTenNV
- textBox2:
Name: txtLuongCBNV
- textBox3:
Name: txtChucVuNV
- textBox4:
Name: txtHeSoLuongNV
- button1:
Name: btnThoat
Text
- button2:
Name: btnThemNV
Text
- button3:
Name: btnCapNhatNV
Text
- button4:
Name: btnXoaNV
Text
- listView1:
Name: listNhanVien
View: Detail
FullRowSelect: True
MultiSelect: False
ïçê
Columns
c
o Text
o Text
o Text
o Text
Editor
- tabControl1:
myTabControl
TabPage
TabPage
Trên tabQuanLyNhanVien:
o Text
Trên tabQuanLyGiaoVien:
o Text
ïçé
Editor
- S ki n Click c a btnThoat:
private void btnThoat_Click(object sender, EventArgs e)
{
Close();
}
- S ki n Click c a btnCapNhatNV:
private void btnCapNhatNV_Click(object sender, EventArgs e)
{
foreach (ListViewItem lvi in listNhanVien.SelectedItems)
{
lvi.SubItems[0].Text = txtTenNV.Text;
lvi.SubItems[1].Text = txtChucVuNV.Text;
lvi.SubItems[2].Text = txtHeSoLuongNV.Text;
lvi.SubItems[3].Text = txtLuongCBNV.Text;
}
}
ïçè
- S ki n Click c a btnThemNV:
private void btnThemNV_Click(object sender, EventArgs e)
{
if (txtLuongCBNV.Text != "" && txtTenNV.Text != "" &&
txtHeSoLuongNV.Text != "" && txtChucVuNV.Text != "")
{
ListViewItem LVItem = new ListViewItem(txtTenNV.Text);
ListViewItem.ListViewSubItem LVSItemCV = new
ListViewItem.ListViewSubItem(LVItem,
txtChucVuNV.Text);
ListViewItem.ListViewSubItem LVSItemHSL = new
ListViewItem.ListViewSubItem(LVItem,
txtHeSoLuongNV.Text);
ListViewItem.ListViewSubItem LVSItemLCB = new
ListViewItem.ListViewSubItem(LVItem,
txtLuongCBNV.Text);
LVItem.SubItems.Add(LVSItemCV);
LVItem.SubItems.Add(LVSItemHSL);
LVItem.SubItems.Add(LVSItemLCB);
listNhanVien.Items.Add(LVItem);
txtLuongCBNV.Text = "";
txtTenNV.Text = "";
txtHeSoLuongNV.Text = "";
txtChucVuNV.Text = "";
}
else
MessageBox.Show("Ph i nh thông tin nhân viên");
}
- S ki n Click c a btnXoaNV:
private void btnXoaNV_Click(object sender, EventArgs e)
{
if (listNhanVien.SelectedIndices.Count > 0)
{
listNhanVien.Items.RemoveAt(listNhanVien.FocusedItem.Index);
}
else
MessageBox.Show("Ph i ch n nhân viên mu n ");
}
ïçç
- S ki n SelectedIndexChanged c a listNhanVien:
private void listNhanVien_SelectedIndexChanged(object sender,
EventArgs e)
{
foreach (ListViewItem lvi in listNhanVien.SelectedItems)
{
txtTenNV.Text = lvi.SubItems[0].Text;
txtChucVuNV.Text = lvi.SubItems[1].Text;
txtHeSoLuongNV.Text = lvi.SubItems[2].Text;
txtLuongCBNV.Text = lvi.SubItems[3].Text;
}
}
lý nhân viên.
6.6.
BorderStyle SplitContainer
îđđ
BorderStyle SplitContainer Panel: None, Fixed3D,
FixedSingle.
V Splitter
Orientation Orientation
SplitContair là: Vertical và Horizontal
Vertical Horizontal
Splitter
Panel IsSplitterFixed
SplitContainer
phép thay
FixedPanel IsSplitterFixed
îđï
c Panel2 là
i).
Panel SplitContainer
tính Panel1Collapsed v Panel
Panel
Panel1Collapsed và Panel2Collapsed là True. Khi Panel1Collapsed là True thì
Panel2Collapsed .
Các thu ng dùng c a SplitContainer:
B ng 6.10: B ng mô t các thu c tính c a SplitContainer
Thu c tính Mô t
BorderStyle Thiêt l ng viên cho SplitContainer. G m 3
giá tr : None, FixedSingle, Fixed3D.
FixedPanel C c c a các Panel trong
SplitContainer. G m 3 giá tr : None, Panel1,
Panel2.
IsSplitterFixed Mang hai giá tr True và False. N u là True, c
nh v ch phân cách Splitter
Orientation nh v ch phân cách Splitter s phân cách
theo chi u ngang hay d c. G m 2 giá tr : Vertical,
Horizontal.
Panel1Collapsed Mang hai giá tr True ho c False. N u là True s
n Panel1
Panel1MinSize L c nh nh t ho c thi t l c
nhò nh t cho Panel1
Panel2Collapsed Mang hai giá tr True ho c False. N u là True s
n Panel2
Panel2MinSize L c nh nh t ho c thi t l c
nhò nh t cho Panel2
SplitterDistance Tr v kho ng cách b ng pixel t n
c nh bên trái (n u hai Panel n m d n
c nh trên (n u hai Panel n m ngang)
SplitterWidth thi t l r ng c a v ch phân cách Splitter
6.4
îđî
ListView.
Hình
1
TextBox, Button, SplitContaner và ListView, WebBrowser
textBox1
SplitContainer1
webBrowser1
listView1
îđí
- Form1:
- label1:
textBox1:
- button1:
- button2:
- button3:
- button4:
- listView1:
- splitContainer1:
- S ki n Click c a btnThoat:
private void btnThoat_Click(object sender, EventArgs e)
{
Close();
}
îđ́
- S ki n Load c a Form1:
private void Form1_Load(object sender, EventArgs e)
{
myWebsite.Navigate("www.google.com");
}
- S ki n MouseClick c a listLinkWebsite:
private void listLinkWebsite_MouseClick(object sender,
MouseEventArgs e)
{
txtLink.Text = listLinkWebsite.FocusedItem.Text;
if (e.Button == MouseButtons.Left)
myWebsite.Navigate(listLinkWebsite.FocusedItem.Text);
}
6.7.
- hình 629.
-
îđë
Button
-
hình 6.31. R
îđê
Hình 6.31: MessageBox thông báo
Câu 2:
textBox1
textBox2
checkBox1
listView1
-
-
-
-
îđé
-
label1
flowLayoutPanel1
- N
-
- thì
îđè
7: U KHI N C
MESSAGE
7.1. L p MessageBox
System.Windows.Forms
hi n th h p tho i dùng ch c n s d a
l p MessageBox mà không c n ph i có b t c t ng l p
MessageBox.
c Show():
îđç
public enum MessageBoxDefaultButton
{
Button1 = 0,
Button2 = 0x100,
Button3 = 0x200
}
îïđ
L p trình viên có th s d ng DialogResult n
nút nào trên h p tho i MessageBox.
Ví d 7.1: Hi n th các d ng khác nhau c a h p tho iMessageBox.
- Hi n th h p tho i hi n th
Mã l nh:
MessageBox n v i Khoa Công ngh thông tin
- Hi n th h p tho i v trên
titlebar c a h p tho
îïï
Hình 7.3: H p tho i MessageBox v i hai nút Yes/ No
Mã l nh:
DialogResult r = MessageBox.Show("Tr l ,
"Ch ,
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question);
if (r == DialogResult.Yes)
MessageBox.Show("B n Yes");
else
if(r==DialogResult.No)
MessageBox.Show("B n No");
else
MessageBox.Show("B );
îïî
- Hi n th h p tho i có 2 nút Ok/ Cancel và có thêm bi ng d ng l i c nh
chu i hi n th trên MessageBox c Focus khi
h p tho i hi n th là nút Cancel.
Mã l nh:
DialogResult r = MessageBox.Show( i, b n mu n
thoát", "L ,
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button2);
if (r == DialogResult.OK)
MessageBox.Show("B );
else
if(r==DialogResult.No)
MessageBox.Show("B n Cancel, ti p t c ch y
);
îïí
u khi n
ColorDialog
îḯ
Ví d 7.2: Vi n màu ch và màu n n cho Label có giao di
hình 7.8.
Yêu c u:
i dùng ch i màu n n ho c màu ch c a Label có dòng ch
ngh ng cách ch n m t trong hai RadioButton
a ch i dùng nh hi n th ColoDialog
Box và ch n màu mu i cho Label.
ng d n:
c 1: Thi t k giao di u khi n Label, Button, Panel,
GroupBox và RadioButton t c a s Toolbox và 9.
panel1
îïë
Thu c tính Font Size: 14
Thu c tính Font style: Bold
Thu c tính AutoSize: False
Thu c tính Size: 428, 86
Thu c tính TextAlign: MiddleCenter
- panel1:
Thu c tính BorderStyle: FixedSingle
- groupBox1:
Thu c tính Text n màu ch ho c màu n
- radioButton1:
Thu c tính Text
Thu c tính Name: radMauChu
- radioButton2:
Thu c tính Text
Thu c tính Name: radMauNen
- button1:
Thu c tính Text
Thu c tính Name: btnChonMau
- button2:
Thu c tính Text
Thu c tính Name: btnThoat
c 3: Vi t mã l u khi n
- S ki n Click nút btnChonMau:
private void btnChonMau_Click(object sender, EventArgs e)
{
ColorDialog clDLog = new ColorDialog();
DialogResult rs = clDLog.ShowDialog();
if (rs == DialogResult.OK)
{
if (radMauChu.Checked == true)
{
lblHienThi.ForeColor = clDLog.Color;
}
if (radMauNen.Checked == true)
{
lblHienThi.BackColor = clDLog.Color;
}
}
}
îïê
- S ki n Click nút btnThoat:
private void btnThoat_Click(object sender, EventArgs e)
{
Close();
}
u khi n
FontDialog
îïé
Hình 7.11: Giao di n FontDialog Box
Mã l nh hi n th FontDialog Box:
FontDialog fontbox= new FontDialog();
fontbox.ShowDialog();
îïè
Hình 7.13: Giao di n form sau khi thêm Button
îïç
Hình 7.14: H p tho i OpenFileDialog
u khi n
OpenFileDialog
îîđ
Filter Thu c tính nh n giá tr là m t chu i. Chu i này ch a
r ng c a t p tin, giúp l c ra trên h p tho i
OpenFileDialog ch hi n th
chu i.
Ví d : Thi t l p chu i ch hi n th file hình
Thi t l p chu i hi n th t t c nh c
trên h p tho i:
N u mu n h p tho i khi hi n th l
u tiên thi t l p thu c tính FilterIndex có giá tr 1.
N u mu n h p tho i khi hi n th l
u tiên thi t l p thu c tính FilterIndex có giá tr 2.
InitialDirectory Giá tr thu c tính là m ng d nm c
ho c p tho c m lên
s hi n th n i dung c ng d u tiên.
RestoreDirectory Mang hai giá tr True ho c False, cho bi t h p tho i có
tr l ng d n cv am
c tính ch có hi u l c khi thu c tính
InitialDirectory mang giá tr r ng
MultiSelect Mang giá tr True ho c False.
- N i dùng ch n nhi u
t p tin ho c
- N u là False: Ch c ch n 1 t p tin ho c m t
c
CheckFileExists Mang hai giá tr True ho c False.
îîï
N u là True s cho phép h p tho i hi n th m t c nh báo
n i dùng ch nh m t t p tin không t n t i và
nh n nút Open.
ReadOnlyChecked Mang giá tr True ho c False.
- N u là True: Hi n th m t CheckBox v
i ComboBox Files
Of Types
îîî
Hình 7.16: Giao di n h p tho i SaveFileDialog
u khi n
OpenFileDialog
îîí
Filter Thu c tính nh n giá tr là m t chu i. Chu i này ch a
r ng c a t p tin, giúp l c ra trên h p tho i
OpenFileDialog ch hi n th
chu i.
Ví d : Thi t l p chu i ch hi n th file hình
Thi t l p chu i hi n th t t c nh c
trên h p tho i:
N u mu n h p tho i khi hi n th l
u tiên thi t l p thu c tính FilterIndex có giá tr 1.
N u mu n h p tho i khi hi n th l
u tiên thi t l p thu c tính FilterIndex có giá tr 2.
InitialDirectory Giá tr thu c tính là m ng d nm c
ho c p tho c m lên
s hi n th n i dung c ng d u tiên.
RestoreDirectory Mang hai giá tr True ho c False, cho bi t h p tho i có
tr l ng d cv am
ý: Thu c tính ch có hi u l c khi thu c tính
InitialDirectory mang giá tr r ng
CheckFileExists Mang hai giá tr True ho c False.
N u là True s cho phép h p tho i hi n th m t c nh báo
n i dùng ch nh m t t p tin không t n t i và
nh n nút Open.
CheckPathExists Mang hai giá tr True ho c False.
N u là True s ki ng d n t i t p tin có h p l
hay không.
AddExtension Mang hai giá tr True ho c False.
- N u là True s cho phép thêm vào tên m r ng
(jpg, gif, ..) vào t p tin.
îî́
- N u là False: Không cho phép
DefaultExt Thêm tên m r p tin n i
dùng không cung c p tên m r ng.
OverwritePrompt Mang hai giá tr True và False. N u là True s hi n c nh
tt nt i
CreatePrompt Mang hai giá tr True và False. N u là True s hi n
t t p tin m i
Ví d 7.4: Vi n th n s d ng OpenFileDialog
m t p tin và SaveFileDialog hình 7.18.
îîë
textBox1
îîê
- saveFileDialog1:
Thu c tính RestoreDirectory: True
Thu c tính Title
Thu c tính Filter
Thu c tính OverwritePrompt: True
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnMoTapTin:
îîé
u khi n
FolderBrowserDialog
Mã l nh t ng và hi n th h p tho i FolderBrowserDialog:
FolderBrowserDialog fd = new FolderBrowserDialog();
fd.ShowDialog();
îîè
M t s thu ng dùng c a FolderBrowserDialog:
Thu c tính Mô t
Name Thi t l p tên cho FolderBrowserDialog
SelectedPath Tr v ng d n cùng tên c i
dùng ch n
Description Thi t l p chu i mô t h p tho i, chu i mô t này
c hi n th i titlebar c a FolderBrowserDialog
ShowNewFolderButton Mang hai giá tr True ho c False.
- N u là True: S xu t hi n nút l
i bên trái nút l
l nh này cho phép i dùng t o m c
m n.
Yêu c u:
i dùng ch ng d c ch a hình. M t
ListView trên form s hi n th p tin d ng .JPG, Khi
îîç
i dùng ch n m t hình trên ListView ng hi n th trên
PictureBox.
pictureBox1
listview1
îíđ
Thu c tính Text N TH
Thu c tính Font Size: 14
Thu c tính Font Style: Bold
- button1:
Thu c tính Text ng d
Thu c tính Name: btnChon
- button2:
Thu c tính Text
Thu c tính Name: btnThoat
- listView1:
Thu c tính Name: listPath
Thu c tính View: Tile
Thu c tính MultiSelect: False
Thu c tính AllowDrop: True
- pictureBox1:
Thu c tính Name: picboxHienThi
Thu c tính SizeMode: StretchImage
- folderBrowserDialog1:
Thu c tính Name: myFolderBrowser
c 3: Vi t mã l u khi n
- S ki n Click c a nút btnChon:
îíï
- S ki n SelectedIndexChanged c a nút listPath:
7.7. Bài t p cu
îíî
- Sinh viên: Hi n th MessageBox bao g m các thông tin H tên Mã s sinh viên
c a sinh viên.
G i ý: kho ng tr ng th a là nh ng kho ng tr u và cu n,
nh ng kho ng tr ng sau m t kho ng tr ng khác, nh ng kho ng tr c
các d u ng u ph u ch u ch m ph u hai ch
d uh u ch
Câu 2: Thi t k
Yêu c u:
X lý s ki u khi n form hình 7.24:
- n lên m t l n nào ho c s l n kích lên nút là ch n
thì u ki n không s n sàng s d ng
ng lên các thành ph n khác trên form máy tính.
- M nh, RadioButton Có c ch n.
- B y l i nh p, ch cho nh p s vào hai TextBox txtSoA và txtSoB.
- TextBox k t qu i dùng nh p li u mà ch xu t k t qu c a
i dùng nh n các Button C ng , Tr , Nhân , Chia
c ch n s i màu n n.
N tr
v màu n u.
- Khi RadioButton Có c ,c m c k t qu thì
ghi toàn b t dòng d ng Giá tr A Tên phép toán Giá tri B
= K t qu tính vào t p tin GhiText.txt (xem hình 7.25 ng th i, cho tác
îíí
ng Button Xem File . File GhiText.txt ph t cùng v trí v i file ch y
(.exe) c
- Khi ch n RadioButton Không thì t p tin GhiText.txt hi n có s b ng
th ng lên Button Xem File .
- Kích Button Xem File cho phép hi n th form ghi chép phép toán (hình 7.25)
- Kích Button Làm l i s xóa s ch n i dung các ô nh p, ô k t qu và n i dung
t p tin GhiText.txt, ch th c hi n bài toán m i
îí́
Hình 7.26: Giao di Fibonacy
Yêu c u:
- /T t l n nào ho c s l n kích lên nút là
ch n thì t ng lên các thành ph n khác trên
form. N u s l n kích lên nút là l thì m ng lên các
thành ph n còn l i trên form.
- Nh p và tính k t qu :
Cách tính giá tr t ng s h ng trong dãy Fibonaci: F0=1, F1=1, Fn=Fn-1+Fn-2 (v i
n>=2)
o Hình 7.27: Giao di p s n, ch nh p s n. B y l i
nh p, ch cho nh p vào m t s n th
îíë
Hình 7.28: Giao di n khi nh p n th u ki n
- GroupBox Ghi t ng s h n :
o Khi radioButton Có c ch n, c m i giá tr n nh p h p l và ra
c k t qu thì ghi vào t p tin t ng s h ng t F0
Fn, m i s h ng ghi thành m t dòng d ng gi ng
th ng Button Xem File .
(T p tin GhiChep.txt ph t cùng v trí v i file ch y (.exe) c
trình.)
o Khi ch n vào radioButton Không thì t p tin GhiChep.txt hi n có s b
ng th ng lên Button Xem File .
o Nh n ch n Button Xem File cho hi n th form Dãy Fibonaci trên form
îíê
- Hình 7.30: Giao di n form hi n th k t qu Fibonacy t F0 n F10
îíé
8: LÀM VI C V U KHI N IN N
îíè
PrintDocument th c hi n ti n trình in n ph i thi t
l pm ng thu c l p PrintDocument cho thu c tính Document c.
u khi n PageSetupDialog n m trong nhóm Printing c a c a s
hình 8.2.
u khi n
PageSetupDialog
îíç
xu t hi n h p tho i cho phép ch n máy in.
- N u là False: Nút printer không có hi u l c
Document Mang giá tr là m ng thu c l p
PrintDocument.
c tính Document ph c gán giá tr
c khi h p tho i PageSetupDialog c hi n th
b c ShowDialog().
MinMargins c nh nh i dùng có th thi t l p
canh l i, trái hay ph i c a trang.
ShowHelp Mang hai giá tr True ho c False.
- N u là True: Trên h p tho i xu t hi n thêm nút
Help
- N u là False: Không xu t hi n nút Help trên h p
tho i
ShowNetwork Mang hai giá tr True ho c False.
- N u là True: Trên h p tho i xu t hi n nút Network.
i dùng có th ch n máy in
m ng.
- N u là False: Không hi n th nút Network
Hi n th h p tho i PageSetupDialog:
Lâp trình viên có th s d u khi n PageSetupDialog b u
khi n PageSetupDialog t c a s c khi hi n th h p
tho i PageSetupDialog b c ShowDialog(), l p trình viên c n ph i thi t
l p thu c tính Document b ng thu c PrintDocument .3.
î́đ
Thu c tính Name c a
nút là btnHienThi
u khi n
PageSetupDialog Thi t l p giá tr thu c tính
và PrintDocument ng
vào form printDocument1 v a kéo
t Toolbox vào form
î́ï
ti p trên gi y thì trang in s xu t ra trên m t giao di h c bi u di t
trang gi y c a h p tho i Print preview hình 8.4.
î́î
u khi n
PrintPreviewDialog
Hi n th h p tho i PrintPreviewDialog:
H p tho i PrinPreviewDialog hi n th b c ShowDialog() ho c
c Show(). c khi h p tho c hi n th l p trình viên c n
thi t l p thu c tính Document c a PrintPreviewDialog có giá tr là m ng
PrintDocument. L p trình viên có th t ng và hi n th h p tho i
PrintPreviewDialog b ng mã l :
private void btnHienThi_Click(object sender, EventArgs e)
{
PrintPreviewDialog preview = new PrintPreviewDialog ();
System.Drawing.Printing.PrintDocument printDoc = new
System.Drawing.Printing.PrintDocument();
preview.Document = printDoc;
preview.ShowDialog();
}
î́í
Hình 8.6: Giao di p
n
ng d n:
c 1: Thi t k giao di u khi n Button, Textbox,
PrintDocument và PrintPreviewDialog t c a s Toolbox vào form
textBox1
î́́
- Button1:
Thu c tính Name: btnXemBanIn
Thu c tính Text cb
Thu c tính Size: 296, 35
- printPreviewDialog1:
Thu c tính Document: printDocument1
c 3: Vi t mã l u khi n
- Xây d ng hàm DrawText:
î́ë
u khi n
PrintPreviewControl
î́ê
n th . Giúp trang hi n th trông
d ng ch này s làm
ch m.
- N u là False: Không s d ng ch lo i b
î́é
textBox1 printPreviewControl1
î́è
Thu
- button4:
Thu c tính Name: btnThuNho
Thu
- button5:
Thu c tính Name: btnIn
Thu
c 3: Vi t mã l u khi n
- Xây d ng hàm DrawText:
î́ç
- S ki n Click nút btnPhongTo:
îëđ
u khi n PrintDialog n m trong nhóm Printing c a c a s
8.13.
u khi n
PrintDialog
îëï
- N u là False: Không hi n th RadioButton
Selection
îëî
tr .
- PrintSettings.Resolutions: L y t t c phân gi i
mà máy in h tr .
- PrintSettings.Duplex = <True/ False>: Thi t l p
ch in m t m t hay hai m t c a trang gi y.
- PrintSettings.CanDuplex: Tr v giá tr True ho c
False, cho bi t máy in có h tr in hai m t c a
trang gi y hay không.
Ví d 8.3: Vi
i dùng ch n 1 hình nh trên máy tính và hi n th i
dùng có th s d g i h p tho i PrintDialog và in hình ra gi y
b ng máy in.
ng d n:
c 1: Thi t k giao di u khi n Button, PictureBox,
PrintDialog, PrintDocument và OpenFileDialog t c a s
hình 8.15.
îëí
pictureBox1
îë́
Thu c tính AllowSelection: True
Thu c tính AllowSomePages: True
Thu c tính Document: printDocument1
Thu c tính PrintToFile: True
Thu c tính ShowHelp: True
Thu c tính ShowNetwork: True
c 3: Vi t mã l u khi n
- Vi t hàm printPicture_PrintPage:
îëë
- S ki n Click nút btnIn:
Ho c có th t ng PrintDocument b ng mã l
PrintDocument prtDC= new PrintDocument();
îëê
S d u khi n PrintDocument:
Trong công vi c in in n i dung mà PrintDocument n m gi ra máy in ho c
ra t p tin, l p trình viên s d c Print() c a l p PrintDocument:
prtDC.Print();
îëé
- Th c hi n g i hàm v n ho c v hình nh lên trang gi y in ho c lên t p
tin trong s ki n PrintPage:
private void btnIn_Click(object sender, EventArgs e)
{
ng l p PrintDocument
PrintDocument printDC = new PrintDocument();
//S d ng hàm v n trong s ki n PrintPage. N u mu n v
//hình thì thay Drawtext b ng DrawPicture
printDC.PrintPage += new
PrintPageEventHandler(DrawText);
ng l p PrintPreviewDialog
PrintPreviewDialog printPrev = new PrintPreviewDialog();
printPrev.Document = printDC;
//Hi n th h p tho c trang in
if (printPrev.ShowDialog() == DialogResult.OK)
{
//N i dùng nh c Print s
//th c hi phát sinh s ki n PrintPage th c
//hi n công vi c v b n ho c v hình nh
printDC.Print();
}
}
îëè
Hình 8.17: Giao di n
textBox1
îëç
- button2:
Thu c tính Name: btnThoat
Thu
- textBox1:
Thu c tính Name: txtVanBan
Thu c tính Multiline: True
Thu c tính Size: 274, 234
- groupBox1:
Thu
Thu c tính Size: 308, 273
c 3: Vi t mã l u khi n
- Khai báo bi n:
îêđ
- Mã l nh hàm DrawText:
îêï
9: U KHI I DÙNG T T O
Ch n m c Add User
îêî
c 2: Nh n chu t c 1: Nh n chu t ph i
trái ch n m c Add trên tên c a d án
c 3: Nh n chu t trái
ch n m c User Control
Sau khi l p trình viên thêm m i m t User Control vào d án thì bên c a s
Toolbox s hi n th thêm m u khi n là User Control v a thêm trong nhóm
c
thêm trong Toolbox
c
thêm trong d án
îêí
c 1: Nh p chu t
ph i vào Toolbox
c 2: Nh p chu t trái
ch n m c Show All
UserControl
Ví d : T th UserControl vào
form.
îế
p
u
khi
c 1: Nh p
t trái
vào
c 2: Kéo Button,
Label, TextBox vào form
Hình 9.7: Giao di u khi n.
îêë
Thu c tính Name: txtMatKhau
- button1:
Thu c tính Name: btnDangNhap
Thu c tính Text
- button2:
Thu c tính Name: btnThoat
Thu c tính Text
t k xong UserControl1, ti n hành biên d
UserControl1 c p nh p trình viên kéo UserControl1t
c a s Toolbox vào form s c giao di
îêê
Hình 9.9: Giao di n c a s Add New Item
c 2: Vi t mã l nh cho l p MyTextBox
- Khai báo th a k n l p TextBox và thêm thu c tính NewValue:
using System;
Khai báo thêm
using System.Collections.Generic;
using System.Linq; không gian tên
using System.Text; Forms
using System.Windows.Forms;
namespace WindowsFormsApplication1
Th a k nl p
{
class MyTextBox:TextBox TextBox
{
string strNewValue;
public string NewValue
{
get
{
return strNewValue;
}
set
{
strNewValue = value;
}
}
c }3: Biên d , u khi n MyTextBox s xu t hi n trên c a s
}
îêé
u khi n
MyTextBox sau khi Thu c tính m i
biên d ch NewValue c a
u khi n
îêè
Hình 9.11: Mô t thu c tính NewValue
îêç
c 1: Ch n
lo i d án
t tên
User Control và
ch ng d n
c 3: Ch n OK
Hình 9.12: C a s New Project t o User Control d ng DLL.
Giao di n thi t k
User Control
îéđ
c 1: Ch n th
.NET Framwork Components
c 2: Nh n Browse và tìm
ng d n ch a t p tin
DLL v a t o
c 3: Ch n
Sau khi thêm User Control t c a s Toolbox vào form, l p trình viên có th truy
xu t t n khi n trên User Control thông qua thu c tính Controls.
Ví d mu n gán giá tr thu u khi n
Label có tên lblNhan c a UserControl1 c n th c hi
îéï
Ví d 9.3: Xây d ng ki m tra s nguyên t , giao di n xây d ng t User Control g m
u khi n Label, TextBox nh p s nguyên
textBox1
label1
Sau khi xây d ng xong User Control, ti n hành kéo User Control vào form. Trên form
ki m tra s nh p vào có ph i s nguyên t hay không và
m thoát
îéî
Hình 9.18: Giao di n u UserControl1
îéí
Thu c tính Name: btnThoat
Khi thi t l p xong thu c tính s c giao di
c 2: Vi t mã l u khi n
- Vi t hàm ki m tra s nguyên t :
bool kiemTraSoNguyenTo(int x)
{
bool kt = true;
for (int i = 2; i <= x / 2; i++)
if (x % i == 0)
kt = false;
return kt;
}
9.5. Bài t p cu
Vi tr i dùng h c gi c hai có giao di
hình 9.20.
îé́
SplitContainer1
PanelChinh
UC_Giaiphuongtrin
txtA
txtB
txtC
cboSoNghie
Panel2
îéë
- V i m i s l a ch n cboSoNghiem thì s hi n th các UserControl:
o N i d ng ch n m c
hi n th UserControl .
userControl2
o N i d ng ch có m t nghi
hi n th bên trong 3.
Trong có m u khi n TextBox cho
i dùng nh p nghi p
i dùng nh ki m tra k t qu . N u k t
qu hi n th MessageBox v i n
n u nh p sai s hi n th MessageBox v i n
userControl3
o N i d ng ch hi n
th
u khi n TextBox cho phép
i dùng nh p nghi p xong
i dùng nh ki m tra k t qu . N u k t qu
hi n th MessageBox v i n u
nh p sai s hi n th MessageBox v i n
îéê
userControl4
- Nh ng d hi n th
trên PanelChinh mô t cách gi
îéé
10: LÀM VI C V I MÀN HÌNH VÀ H TH NG
10.1. L p SystemInformation
îéè
s d ng ngu n tr c ti p.
- PowerStatus.PowerLineStatus: Tr v giá tr Online
n u máy tính có c n, c l i tr v Offline.
WorkingArea Cho bi t thông tin v kích c (Width và Height) vùng làm
vi c trên màn hình.
ng d n:
c 1: Thi t k giao di
îéç
Thu c tính Text
- label3:
Thu c tính Name: username
- label4:
Thu c tính Text
- label5:
Thu c tính Name: userdomainname
- label6:
Thu c tính Text
- label7:
Thu c tính Name: network
- label8:
Thu c tính Text
- label9:
Thu c tính Name: computername
- label10:
Thu c tính Text
- label11:
Thu c tính Name: bootmode
- label12:
Thu c tính Text:
- label13:
Thu c tính Name: workingarea
c 3: Vi t mã l u khi n.
- S ki n Load c a form:
îèđ
10.2. L p Screen
îèï
c 1: Thi t k giao di u khi n Label t c a s
îèî
Thu c tính Name: devicename
c 3: Vi t mã l u khi n
S ki n Load c a form:
private void Form1_Load(object sender, EventArgs e)
{
Rectangle rec = Screen.GetWorkingArea(this);
workingarea.Text = "Height = " + rec.Height + " Width =
" + rec.Width;
bits.Text =
Screen.PrimaryScreen.BitsPerPixel.ToString();
bounds.Text = "Height = " +
Screen.PrimaryScreen.Bounds.Height.ToString() + " Width
= " + Screen.PrimaryScreen.Bounds.Width.ToString();
devicename.Text =
Screen.PrimaryScreen.DeviceName.ToString();
}
10.3. L p SendKeys
ng h p mu n g i t h n ng d ng, l p
trình viên s g i m t chu i ký t ng trong
c Send.
Ví d : Mu n g i t i h n ng d ng,
l p trình viên ph i vi
M t s ký t c bi , %, ^, ~, (, ), [, ], {, } n u
îèí
mu n g n ng d ng ph t trong c p d u {}.
Ví d : Mu n g i ký t n ng d ng, l p trình viên
ph i vi
g n ng d ig ib ng.
B c mô t c th trong b ng 10.4.
G i các phím ch i b ng mã
c trong b ng 10.5.
SendWait(<Mã phím>) c hi n công vi c g i
phím ho c t h p n ng d ng hi
m khác bi t là
c SendWait s ch cho công vi cg i
khi g i phím b ng SendWait n ng d ng th c hi n
xong thì m i th c hi n các công vi
Flush() c Flush có ch qua nh ng th c thi
th c thi m t công vi c khác. C th n u
có m t ti n trình y và mu n ng d ng ngay
l p t c th c thi m t công vi c khác mà không ph i ch
ti n trình làm vi c xong thì c n g c
Flush().
B ng 10.5: B c bi t
Phím B ng mã
BACKSPACE {BACKSPACE}, {BS}, {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK]
DELETE {DELETE}, {DEL}
END {END}
ENTER {ENTER}
ESC {ESC}
HELP {HELP}
HOME {HOME}
INSERT {INSERT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
îè́
PAGE UP {PGUP}
DOWN ARROW {DOWN}
UP ARROW {UP}
LEFT ARROW {LEFT}
RIGHT ARROW {RIGHT}
PRINT SCREEN {PRTSC}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
ng h p mu n g i m t t h
l p trình viên có th s d ng mã c a các phím Shift, Ctrl và Alt ng trong b ng
10.6.
B ng 10.7: B ng mã các phím ch
Phím B ng mã
Ctrl ^
Shift +
Alt %
îèë
Ví d 10.3: Vi có giao di 5.
Label
îèê
Thu c tính AcceptButton: btnReset
- label1:
Thu ---
Thu c tính Name: lblHienthi
Thu c tính Font Size: 24
Thu c tính Font Style: Bold
- button1:
Thu
Thu c tính Name: btnReset
- timer1:
Thu c tính Interval: 1000
Thu c tính Enable: True
c 3: Vi t mã l u khi n
- Khai báo bi
int time = 0;
- S ki n Click c a btnReset:
- S ki n Tick c a Timer1:
10.4. L p PowerStatus
îèè
private void Form1_Load(object sender, EventArgs e)
{
PowerStatus pwts;
pwts = SystemInformation.PowerStatus;
string power = "BatteryChargeStatus: ";
power += pwts.BatteryChargeStatus.ToString();
power += "\nBatteryFullLifetime: " +
pwts.BatteryFullLifetime.ToString();
power += "\nBatteryLifePercent: " +
pwts.BatteryLifePercent.ToString();
power += "\nBatteryLifeRemaining: " +
pwts.BatteryLifeRemaining.ToString();
power += "\nPowerLineStatus: " +
pwts.PowerLineStatus.ToString();
lblHienThi.Text = power;
}
10.5. L p Application
îèç
tính AssemblyProduct c a t p tin AssemblyInfo.cs
ProductVersion Tr v phiên b n c a ng d c khai báo trong trong
thu c tính AssemblyVersion c a t p tin AssemblyInfo.cs
StartupPath Tr v ng d n ch a t p tin th ng d n này
không ch a tên c a t p tin th c thi.
Ví d :
C:\Users\PC_PHUC\Desktop\DuAnDauTien\DuAnDauTi
en\bin\Debug
UserAppDataPath thu c tính CommonAppDataPath,
UserAppDataPath Tr v ng d ng d
tr chia s i dùng khác s d ng.
Các c ng dùng c a l p Application:
B ng 10.9: B ng mô t các c c a l p Application
c Mô t
Exit() ng d ng.
ExitThread() n trình. M t ng d ng có th có nhi u ti n
trình ch y song c ExitThread() giúp
n trình hi n t i.
DoEvents() Có ch c Flush c a l p
SendKeys. có ch qua nh ng th
ch th c thi m t công vi c khác. C th n u có m t
ti n trình y và mu n ng d ng ngay l p t c
th c thi m t công vi c khác mà không ph i ch ti n
trình làm vi c xong thì c n g c DoEvents().
Restart() c Restart() th c hi n hai công vi
ng d ng l kh ng ng d ng
Run() h c Run() giúp kh ng m ng trong
ng d ng.
10.6. L p Clipboard
îçđ
Các c ng dùng c a l p Clipboard:
B ng 10.10: B ng mô t các c c a l p Clipboard
c Mô t
Clear() Cho phép xóa d li a trong Clipboard
SetText(<Chu i>) i> vào trong Clipboard
GetText() Tr v chu trong Clipboard
ContraintText() Tr v m t trong hai giá tr True ho c False.
- N u là True: Trong Clipboard có n i dung
- N u là False: Trong Clipboard không ch a m t
chu i nào c .
SetImage(<Image>) hình nh vào Clipboard
GetImage() Tr v trong Clipboart
ContraintsImage() Tr v m t trong hai giá tr True ho c False.
- N u là True: Trong Clipboard có ch a hình nh
- N u là False: Trong Clipboard không ch a hình
nh.
SetData(<Object>) ng <Object> vào Clipboard
GetData() Tr v trong Clipboard
ContainsData() Tr v m t trong hai giá tr True ho c False.
- N u là True: Trong Clipboard có ch ng
- N u là False: Trong Clipboard không ch i
ng
îçï
Yêu c u:
- Browse: Giúp ch n t p tin .txt trong h th ng và hi n th n i dung t p tin trên
TextBox txt1.
- SetText: Sao chép n n trong TextBox txt1 vào Clipboard
- GetText: Chép n n trong Clipboard vào TextBox txt2
- Clear: Xóa d li
-
ng d n:
c 1: Thi t k giao di u khi n Label, TextBox,
Button, OpenFileDialog t c a s Toolbox vào
TextBox1 TextBox2
îçî
Thu c tính Name: txt1
Thu c tính Size: 262, 126
- TextBox2:
Thu c tính Multiline: True
Thu c tính Name: txt2
Thu c tính Size: 262, 126
- button1:
Thu
Thu c tính Name: browse
- button2:
Thu
Thu c tính Name: settext
- button3:
Thu
Thu c tính Name: gettext
- button4:
Thu
Thu c tính Name: clear
- button5:
Thu c tính Text:
Thu c tính Name: exit
- openFileDialog1:
Thu File Text|*.txt
c 3: Vi t mã l u khi n
- S ki n Click c a Button SetText:
10.7. L p Cursors
Cursors.Default
Cursors.No
Cursors.SizeAll
Cursors.SizeNESW
Cursors.SizeNS
Cursors.SizeNWSE
Cursors.SizeWE
Cursors.WaitCursor
îḉ
Cursors.Hand
Cursors.Help
Cursors.NoMove2D
Cursors.NoMoveHoriz
Cursors.NoMoveVert
Cursors.PanEast
Cursors.PanNE
Cursors.PanNorth
Cursors.PanNW
Cursors.PanSE
Cursors.PanSouth
ng d n:
- Vi t mã l nh cho s khi n MouseMove c a
private void txt1_MouseMove(object sender, MouseEventArgs e)
{
Cursor.Current = Cursors.No;
}
îçë
11: BÀI T P T NG H P
Câu 1:
Vi c nghi m giúp h c ti
- Khi kh hi n th
o N p sai thi s hi
nh
o Nh hoàn t t vi
s p tin có tên TaiKhoan .
- T p v i tài kho n
admin và m t kh u tài kho n là admin thì s hi n th form o câu h i tr c
nghi m 11.3.
îçê
Hình 11.3: Giao di n form t o câu h i
îçé
Hình 11.5: Giao di n form làm bài tr c nghi m ti ng anh
îçè
Câu 2: Vi t
Th i gian ph i hoàn thành
s c n tìm
t m d ng
Thoát
i tìm s c n
tìm trong danh sách các s
- :
o Ch n ch
hi n th 100 s v trí
ng u nhiên b t k ph i tìm ki m s c n tìm
trong danh sách các s phát sinh các v trí ng
nh n vào s l p t c b chuy n
sang ch c ch c n a).
Th i gian ch m nh là 10 phút, n u h t 10 phút mà
c t t c 100 s c.
Ch t t i dùng s ch n s ch s mu n tìm, s ng
s trên m t hàng và th i gian ph i hoàn thành vi c tìm ki m. Giao
di 11.8.
îçç
Hình 11.8: Giao di t ch n
o Ch n s u ch hi n th
p tên vào.
Tu n t nh t s tìm s c, th tìm ra
m t s là 5 giây, n u h nh
ra s chuy hai.
V im il cs ms c
íđđ
m s hai
Câu 3: Vi
lblKQ
lblSoMot lblSoHai
btnDung btnSai
ProgressBar1 lblKetQua
Hình 11.11: Giao di n
Yêu c u:
íđï
- phát sinh ng u nhiên các s nguyên trong Label: lblSoMot,
lblSoHai, lblKQ.
- xem k t qu phát sinh bi u th c và ch n bi u th
sai.
o N t ch
ho c nh
o N u sai thì dùng chu t ch c
nh
- M i l n ch c c ng m m vào lblKetQua và ti p t c phát
sinh ng u nhiên 1 bi u th c m i. N u ch n sai s b .
- Th tính toán và ch t bi u th c th
hi n thanh ProgressBar.
íđî
TÀI LI U THAM KH O
íđí
[23] http://voer.edu.vn/c/ung-dung-windows-voi-windows-form/9f00d32d/43570247
[24] http://www.goclaptrinh.com/cach-chuyen-doi-kieu-du-lieu-trong-c.html
[25] http://www.doko.vn/tai-lieu/bai-giang-ve-lap-trinh-c-157004
[26] http://www.youtube.com/watch?v=UTuI-eWJQUY
[27] http://www.c10mt.com/2011/09/lab-lttq-bai54.html
[28] http://www.hoccungdoanhnghiep.com/tai-lieu/bai-6-dieu-khien-listview
[29] http://www.trithucsangtao.vn/tu-hoc-winform-c-qua-vi-du-listview-449.html
[30] http://www.hoccungdoanhnghiep.vn/tai-lieu/bai-2-dieu-khien-datetimepicker
[31] http://www.codeproject.com/Articles/20050/FireFox-like-Tab-Control
[32] http://www.thuvien-it.net/home/tinhoc/view.asp?threadid=730
[33] http://www.trithucsangtao.vn/tu-hoc-winform-c-qua-vi-du-listview-449.html
[34] http://www.dotnetperls.com/messagebox-show
[35] http://www.slideshare.net/hareesseni/chuong-3-windows-forms
[36] http://www.ddth.com/showthread.php/51653-What-s-Application-DoEventS()
[37]http://www.expressmagazine.net/development/717/su-dung-control-listview-
trong-c-using-listview-control-c
[38]http://www.trithucsangtao.vn/tu-hoc-winform-c-qua-vi-du-treeview-listview-
423.html
[39]http://www.codeproject.com/Articles/91387/Painting-Your-Own-Tabs-Second-
Edition
íđ́