Win Form

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 100

Chuyn 02: Cng ngh .

NET GV: Hong Quc Vit

I. FORM ***
1. Chc nng Form (hay cn gi iu khin Form) dng cha cc iu khin khc (Buttons, Label) 2. Mt s thuc tnh thng dng iu khin Form c mt s thuc tnh nh sau:
Tn Name AcceptButton ngha Tn ca Form. Trong mt Project tn ca cc Form phi khc nhau. Gi tr m thuc tnh ny nhn l tn ca mt Button trn Form (Nu Form c cha button). Khi nu bn nhn phm Enter th s kin Click ca Button m bn chn c thc thi m khng cn nhn chut vo Button . Nhn mt trong hai gi tr True hay False - True: Khng cho php thay i kch thc Form m che i cc iu khin khc cha trn Form - False: Ngc li Cho php thay i kch thc ca Form hay khng? (Khi di chuyn chut vo cc mp ca Form m hin nn biu tng l cho php). V nhn mt trong hai gi tr - GrowOnly: Cho php - v GrowAndShrink: Khng cho php Chn mu nn cho Form Chn nh lm nn cho Form Gi tr m thuc tnh ny nhn l tn ca mt Button trn Form (Nu Form c cha button). Khi nu bn nhn phm ESC th s kin Click ca Button m bn chn c thc thi m khng cn nhn chut vo Button (tng t nh thuc tnh AcceptButton ). Nhn mt trong hai gi tr True hay False - True: Cho php cc cc nt: MaximizeBox, MinimizeBox, Close trn Titlebar xut hin - False: Khng Cho php cc cc nt: MaximizeBox, MinimizeBox, Close trn Titlebar xut hin (Khi cc thuc tnh MaximizeBox, MinimizeBox ca Form cng mt i) Chn kiu Font ch cho Form (Khi tt c cc iu khin c thm vo Form s c thuc tnh Font ging nh thuc tnh Font ca Form) Tng t nh thuc tnh Font nhng p dng i vi mu ch Chn Style cho Form (C 7 la chn khc nhau). Nhn mt trong hai gi tr True hay False. -1-

Autosize

AutoSizeMode

BackColor BackGroundImage CancelButton

ControlBox

Font

ForeColor FormBorderStyle HelpButton

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit True: Cho php xut hin Buton c du ? trn Titlebar (Vi iu kin: hai thuc tnh MaximizeBox, MaximizeBox phi t gi tr l False) - False: Ngc li Thuc tnh ny s hay i km vi iu khin HelpProvider v sau Chn mt Icon (c ui m rng l .ico) trn my tnh ca bn thay cho Icon mc nh ca Form m VS to ra Nhn mt trong hai gi tr True hay False - True: Cho php cc s kin v bn phm ca Form (KeyUp, KeyDown, KeyPress ca Form) c hiu lc. - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Cho php nt MaximizeBox trn Titlebar c hiu lc - False: Ngc li Tng t nh thuc tnh MaximizeBox trong sut ca Form Nhn mt trong hai gi tr True hay False - True: Cho php xut hin Icon ca Form - False: Khng cho php xut hin Icon ca Form Nhn mt trong hai gi tr True hay False - True: Cho php hin Form di khay Taskbar - False: Ngc li V tr hin th ca Form so vi mn hnh h thng hay Form cha (5 la chn khc nhau) Gi tr Text ca Form Trng thi hin th ca Form khi chy (Khi bn nhn vo nt Run ca VS) (C 3 la chn khc nhau: n di khay Taskbar, m rng ht mn hnh).

Icon KeyPreview

MaximizeBox

MaximizeBox Opacity ShowIcon

ShowInTaskbar

StartPosition Text WindowState

3. S kin Mt s s kin thng dng


Tn AutoSizeChanged BackColorChanged Click ControlAdded ControlRemoved CursorChanged DoubleClick FontChanged ngha Xy ra khi thuc tnh Autosize ca Form chuyn t True False hay ngc li l False True. Xy ra khi thuc tnh BackColor ca Form thay i Xy ra khi ngi dng Click chut vo vng lm vic thuc Form Xy ra khi mt iu khin c Add vo Form Xy ra khi mt iu khin b xa khi Form Xy ra khi thuc tnh Cursor ca Form thay i Xy ra khi ngi dng DoubleClick vo vng lm vic ca Form Xy ra khi thuc tnh Font ca Form c s thay i -2-

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit ForeColorChanged FormClosed FormClosing Xy ra khi thuc tnh ForeColor ca Form c s thay i Xy ra khi Form ng (Nhn vo nt X mu trn Titlebar) Xy ra khi Form ang ng (2 s kin FormClosed v FormClosing thng dng trong lp trnh CSDL: khi xy ra s kin ny th ng kt ni CSDL) Xy ra khi ngi dng nhn mt phm hay mt t hp phm (ty thuc vo x l ca chng ta) Xy ra khi ngi dng nhn mt phm Xy ra khi ngi dng nh mt phm. Xy ra khi ngi dng nhn chut (mt trong 3 la chn: Tri, gia, phi) Xy ra khi ngi dng DoubleClick chut vo mt vng lm vic ca Form(mt trong 3 la chn: Tri, gia, phi) Xy ra khi ngi dng nhn chut Xy ra khi ngi dng di chuyn vo cc vng lm vic Form Xy ra khi di chuyn chut ra khi vng lm vic ca Form Xy ra khi di chuyn chut trn mt vng lm vic thuc Form (nu Form c cha mt iu khin no , khi di chuyn chut trn iu khin ny th khng xy ra s kin MouseMove ca Form). Xy ra khi ngi dng nh nhn chut (c th l chut tri, chut phi, chut gia - chut cun) Xy ra khi di chuyn Form (c s thay i v tr ca Form) Xy ra khi thuc tnh FormBorderStyle ca Form thay i Xy ra khi thuc tnh Text ca Form thay i.

KeyDown KeyPress KeyUp MouseClick MouseDoubleClick

MouseDown MouseHover MouseLeave MouseMove

MouseUp Move StyleChanged TextChanged

-3-

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

4. Minh ha mt s s kin ca Form (Code) (Vi Form c tn l frmForm) S kin FormClosed

//S kin FormClosed - S kin ny c gi khi Form ng private void frmForm_FormClosed(object sender, FormClosedEventArgs e) { MessageBox.Show("S kin FormClosed c gi", "FormClosed",MessageBoxButtons.OK,MessageBoxIcon.Information); }

S kin FormClosing

//S kin FormClosing xy ra khi Form ang ng private void frmForm_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Bn c mun ng Form li hay khng?", "FormClosing", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) e.Cancel = false;// ng Form li else e.Cancel = true;//Khng ng Form na }

4.3. S kin KeyPress

//S kin KeyPress private void frmForm_KeyPress(object sender, KeyPressEventArgs e) { //Nu khng ch r phm no c nhn th khi nhn bt c phm no s kin KeyPress ca Form u xy ra //Ch r phm no c nhn th pht sinh s kin KeyPress lm nh sau if (e.KeyChar = 'a') MessageBox.Show("S kin KeyPress xy ra khi bn nhn phm a"); }

//S kin KeyUp tng t nh s kin KeyPress

//S kin KeyDown xy ra khi nhn mt phm hay t hp phm -4-

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

4.4. S kin KeyDown

private void frmForm_KeyDown(object sender, KeyEventArgs e) { //khi nhn mt phm bt k trn bn phm th s kin KeyPress c gi //ng thi s kin KeyDown cng c gi KeyPress l trng hp ring ca KeyDown //p dng: Nhn mt t hp phm th s kin KeyDown mi c gi //Nh Windows Media: Nhn Ctrl+F di chuyn bi tip theo if (e.KeyCode == Keys.F && e.Modifiers == Keys.Control) MessageBox.Show("S kin KeyDown c gi khi bn nhn Ctrl + F"); }

4.5. S kin MouseClick

//S kin MouseClick private void frmForm_MouseClick(object sender, MouseEventArgs e) { //Nu bn khng mun bit ngi dng nhn chut TRI hay PHI hay GIA th khi nhn bt k //Chut no cng xy ra s kin MouseClick ca Form //Cn nu bn mun bt c s kin ngi dng nhn chut TRI, PHI, hay GIA lm th ny if (e.Button == MouseButtons.Left) MessageBox.Show("S kin MouseClick xy ra khi bn Click chut TRI"); else if (e.Button==MouseButtons.Middle) MessageBox.Show("S kin MouseClick xy ra khi bn Click chut GIA"); else if (e.Button==MouseButtons.Right) MessageBox.Show("S kin MouseClick xy ra khi bn Click chut PHI"); }

//Cc s kin MouseDoubleClick, MouseDown, MouseUp... X l tng t

-5-

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

TP HP (COLLECTION) ***
1. Khi nim Collection L mt kiu d liu dng lu tr nhiu phn t c cng c tnh. V d: Mng, Tp cc nt lnh cha trn Form, tp cc phn t (Item) ca Combobox, Listbox. 2. Mt bin thuc tp hp s c cc thuc tnh v cc phng thc sau - Count/Length: Ly v s phn t ca tp hp. - Add, AddRange: Thm phn t vo tp hp. - Remove, RemoveAt: Xa phn t khi tp hp. - Clear: Xa ton b cc phn t khi tp hp. - Insert: Chn mt phn t vo tp hp (Khc vi Add lun thm phn t mi vo cui tp hp, Insert thm vo mt v tr xc nh no trong tp hp). - Items[i]: Ly mt phn t th i trong tp hp. -

3. Duyt cc phn t trong Tp hp duyt cc phn t trong tp hp ngi ta thng s dng vng lp ForEarch

foreach (bin in bin_Tp_hp) {X l gi tr ly c}


4. Minh ha tp hp Gi s c mt Combobox c tn Combobox1. Chng ta s minh ha v tp hp thng qua cc phn t (Item) ca Combobox ny bng s kin Click ca mt Button c tn btCollection

-6-

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

4.1. Cc phng thc/Thuc tnh

private void btCollection_Click(object sender, EventArgs e) { //Mi u xa ht cc phn t s dng phng thc Clear() comboBox1.Items.Clear(); //Add thm mt phn t vo Combobox ->S dng phng thc Add //Phn t ny lun lun c a vo cui cng comboBox1.Items.Add("Phn t th 1"); //Add mt mng phn t string[] Mang = { "Phn t th 2", "Phn t th 3", "Phn t th 4" }; comboBox1.Items.AddRange(Mang); //Insert mt phn t vo -> Phn t chn vo v tr do ta ch nh ch khng phi vo cui cng //Trong v d ny: Phn t c chn vo v tr th 2 comboBox1.Items.Insert(2, "Phn th c chn"); //Ly ra s phn t ca Combobox int x = comboBox1.Items.Count; MessageBox.Show("S phn t ca Combobox l: "+x.ToString()); //Ly gi tr l mt phn t no string str = comboBox1.Items[2].ToString(); //Phn t s 3??? MessageBox.Show("Gi tr ca phn t s 3: " + str.ToString()); }

4.2. Duyt cc phn t trong tp hp

//Gi s chng ta duyt tt c cc nt Button trn mt Form (Tt nhin: trn Form phi c vi Button)

-7-

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit private void btForEach_Click(object sender, EventArgs e) { foreach (Control bt in this.Controls) { if (bt is Button) MessageBox.Show(bt.Text); } }

-8-

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

II. COMBOBOX ***


1. Chc nng Lu tr cc mc d liu (phn t) di dng danh sch 2. Mt s thuc tnh thng dng
ngha Anchor Xc nh v tr neo u ca iu khin so vi Form AutoCompleteCustomSource Xc nh cc phn t cho tnh nng AutoComplete ca Combobox (Tc l tnh nng AutoComplete ch p dng trn cc phn t ny - Nu thuc tnh AutoCompleteSource l CustomSource) AutoCompleteMode Kiu t ng tm kim cc phn t trong Combobox. C mt s la chn sau Suggest: Hin th kt qa ra bn di Append: T ng in vo Combobox v khng hin th ra bn di SuggestAppend=Suggest+Append AutoCompleteSource Chn ngun cc Item cho Combobox s dng tnh nng AutoComplete. Ch mt s la chn sau: HistoryList: Danh sch cc Url lu trong History ca IE ListItems: Cc phn t ca Combobox c thm vo thng qua thuc tnh Items CustomSource: Gi tr cc phn t trong thuc tnh AutoCompleteCustomSource BackColor Cursor DataSource Chn mu nn cho Combobox Hnh dng ca chut khi di chuyn vo Combobox Chn ngun d liu (ngun cc phn t) cho Combobox (C th l mt mng d liu kiu string, mt trng trong CSDL) V tr bm dnh ca Combobox Cho php Combobox c hiu lc hay khng? Chn Font cho Combobox Chn mu ch ca cc phn t (Item) ca Combobox Qun l cc phn t trong Combobox (thm cc phn t vo Combobox, xa i) Gi tr ng vi phn t ang c chn Nu chn l True: T ng sp xp cc phn t trong Combobox theo gi tr tng dn Get/Set ch s ca phn t ang chn Tn

Dock Enabled Font ForeColor Items Text Sorted SelectedIndex

-9-

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

Ch : Cc iu khin c rt nhiu thuc tnh ging nhau: Anchor, Dock, Font, ForeColor, Enabled, Visible, TabIndexCc thuc tnh ny l ging nhau vi tt c cc iu khin 3. Mt s phng thc
Tn Add AddRange ngha Thm mt phn t vo Combobox Thm mt mng cc phn t vo Combobox

. Tp cc Item c cc phng thc v thuc tnh ca Collection

4. Mt s S kin thng dng


Tn SelectedIndexChanged ngha Xy ra khi ngi dng chn phn t khc khc

Ch : Cc iu khin (Form, Label ,Button) c rt nhiu cc s kin ging nhau. ngha ca cc s kin ny l ging nhau vi cc iu khin 5. Minh ha s dng Textbox bng mt s Code

- 10 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

Minh ha thuc tinh Sorted

private void btCombobox_Click(object sender, EventArgs e) { //Mi u xa ht cc phn t trong Combobox (nu c) comboBox1.Items.Clear(); //Add mt s phn t vo: Dng phng thc Add hay AddRange comboBox1.Items.Add("5"); string[] MangString = { "1","3","8","4","7" }; comboBox1.Items.AddRange(MangString); //S th t ca cc pt l: 5,1,3,8,4,7 //Duyt cc phn t ca Combobox - Trc khi gi thuc tnh Sorted foreach (string str in comboBox1.Items) MessageBox.Show(str);// Th t in ra l : 5, 1,3,4,8,7 //Gi thuc tnh Sorted. comboBox1.Sorted=true; //Duyt cc phn t ca Combobox - Saukhi gi thuc tnh Sorted foreach (string str in comboBox1.Items) MessageBox.Show(str);// Th t in ra l : 1,3,4,5,7,8

Ly danh sch a vo Combobox - Minh ha thuc tnh DataSource


{

//Ly danh sch cc a vo Combobox: Minh ha cho phng thc AddRange hay thuc tnh DataSource ca mt Combobox private void btGetDriver_Click(object sender, EventArgs e) // thao tc vi File, Folder. Trong C# h tr lp Directory //Lp Directory l lp tnh v nm trong NameSpace: System.IO; //Mun dng lp ny phi khai bo: using System.IO; ^.^ //Kt qu Directory.GetLogicalDrives() tr v mt mng kiu string - 11 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit string[] MangDriver = Directory.GetLogicalDrives(); //a vo Combobox c th dng mt trong hai cu lnh sau //Cu lnh 1: comboBox1.DataSource = MangDriver; comboBox1.DataSource = MangDriver; comboBox1.SelectedIndex = 3; //Cu lnh hai: comboBox1.Items.AddRange(MangDriver); //Ch : Mun s dng cu lnh 2 th xa cu lnh 1 hay dng ch thch

CC IU KHIN LISTBOX, CHECKLISTBOX HON TON TNG T

- 12 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

III. WEB BROWSER


***
1. Chc nng Duyt cc trang Web, hin th cc File vi cc nh dng khc nhau. 2. Mt s thuc tnh thng dng
Tn ScrollBarsEnabled Ngha Nhn mt trong hai gi tr True hay False True: Cho php iu khin hin th thanh cun. False: Ngc li Gi tr m thuc tnh ny nhn l mt chui String (C th l tn mt Website, ng dn ti mt File) m WebBrowser s hin th

Url

3. Mt s phng thc thng dng


Tn Navigate Chc nng Hin th ni dung File vi tham s truyn vo VD: webBrowser1.Navigate("C:\\WindowsForrmInC#.ppt");

4. Minh ha s dng WebBrowser bng mt s Code Gi s c mt iu khin c tn webBrowser1 chng ta s minh ha s dng iu khin ny qua s kin Click ca mt Button c tn l: btWeb

- 13 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit //t thuc tnh Url thng qua m Code //webBrowser1 l tn iu khin WebBrowser private void btWeb_Click(object sender, EventArgs e) { Uri u = new Uri(@"http://mail.google.com/"); webBrowser1.Url = u; //Vit gp li nh th ny: webBrowser1.Url = new Uri(@"http://mail.google.com/"); //-> khi Click vo btWeb th WebBrowser hin th WebSite http://mail.google.com/ //Tt nhin my bn phi kt ni vi Internet }

Minh ha thuc tnh Url

4.2. Minh ha phng thc Navigate

//Hin th mt trang Web hay Mt File no -> S dng phng thc Navigate private void btWeb_Click(object sender, EventArgs e) { //Hin th Website webBrowser1.Navigate(@"mail.google.com");//(1) //<->webBrowser1.Url = new Uri(@"http://mail.google.com/"); //Ch : Mun s dng (1) phi cho (2) v (3)... vo dng ch thch //V mt lc webBrowser khng th hin th c Website, c nh, v file PPT //Hin th File PowerPoint //webBrowser1.Navigate(@"C:\NET.ppt");//(2) //Hin th nh //webBrowser1.Navigate(@"C:\viethqtk1.jpg");//(3) } //................................

- 14 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

4.3. Phng thc thng dng

//Phng thc hay dng x l vi WebBrowser to ra trnh duyt Web private void Navigate(String address) { if (address.Equals("about:blank")) return; if (!address.StartsWith("http://") && !address.StartsWith("https://")) { address = "http://" + address; } try { webBrowser1.Navigate(new Uri(address)); } catch (System.UriFormatException) { return; } }

Bi Tp: ng dng Combobox v WebBrowser vit mt trnh duyt Web n gin

- 15 -

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit

IV. TEXTBOX ***


1. Chc nng iu khin Textbox cho php bn nhp v hin th d liu. 2. Mt s thuc tnh thng dng
Tn AcceptsTab ngha Nhn mt trong hai gi tr True hay False - True: Khi nhn phm Tab th con tr (Focus) ch di chuyn bn trong Textbox (Vi iu kin thuc tnh Multiline=True). - False: Khi nhn Tab th Focus di chuyn qua li gia cc iu khin trn Form Thuc tnh ny hay t bng True trong cc ng dng son tho vn bn V tr neo u ca Textbox trn Form Ba thuc tnh ny ngha tng t nh ca thuc tnh ca iu khin Combobox t mu nn cho Textbox Chn kiu ng vin cho Textbox Chn Menu ng cnh khi nhn chut phi vo Textbox V tr bm dnh v in y ca Textbox vi Form Chn kiu Font ch cho Textbox Nhn mt trong hai gi tr True hay False - True: Khng cho php cc thuc tnh: SelectionStartc hiu lc. - False: Ngc li S lng k t ln nht cho php nhp vo Textbox Nhn mt trong hai gi tr True hay False - True: Cho php nhp v hin th gi tr ca Textbox trn nhiu dng (ngi dng c th nhn thy ton b gi tr Text ca n) - False: Cho php nhp/hin th gi tr ca Textbox trn mt dng Hin th gi tr ca Textbox di dng cc k t m bn thay th (k t do ngi dng nhp vo: *, #...) Cho php hin th thanh trt hay khng? (Vi iu kin thuc tnh Multiline=True mi nhn thy thanh cun) Cho php Textbox hin th hay khng? - 16 -

Anchor AutoCompleteCustomSource AutoCompleteMode AutoComplete Source BackColor BorderStyle ContextMenuStrip Dock Font HideSelection

MaxLenght Multiline

PasswordChar

ReadOnly ScrollBars

TabIndex Visible

Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit CanUndo Tr li hai gi tr True/False. - True: c th Undo li c (nh Word) - False: Ngc li Cc thuc tnh SelectionText o SelectedText o SelectionStart o SelectionLength o .

Ch : Cc iu khin c rt nhiu thuc tnh ging nhau: Anchor, Dock, Font, ForeColor, Enabled, Visible, TabIndexV ngha cc thuc tnh ny l ging nhau vi tt c cc iu khin 3. Mt s phng thc thng dng
Tn AppendText Copy Cut Paste Focus Clear Select SelectAll Undo ngha Ni mt chui (string) vo gi tr Text hin c ca Textbox X l phn ni dung bi en (nh Word)

Chuyn Focus (con tr) vo TextBox Xa ton b Textbox Ly ra mt chui trong Textbox (xem Code) Ly tt c gi tr ca Textbox X l Undo nh Word

4. Mt s s kin thng dng Tn


KeyPress

ngha

MouseClick TextChanged

Xy ra khi ngi dng nhn phm trn bn phm (tt nhin Textbox phi ang Focus p dng s kin ny x l khng cho php nhp ch vo Textbox) Xy ra khi ngi dng Click chut trn iu khin Textbox Xy ra khi gi tr Text ca Texbox (hay gi gi tr Textbox) thay i

5. Minh ha s dng Textbox bng mt s Code Gi s c mt Textbox c tn l Textbox1. Chng ta s minh ha Textbox qua s kin click ca mt Button c tn l btTextbox.

- 17 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5.1. Minh ha thuc tnh Text ca Textbox

private void btTextbox_Click(object sender, EventArgs e) { //Trc khi gn thuc tnh text MessageBox.Show("Gi tr textbox trc khi gn: "+ textBox1.Text); //Gn gi tr Text textBox1.Text = "Cho cc bn"; //Sau khi gn MessageBox.Show("Gi tr textbox sau khi gn: " + textBox1.Text); }

5.2. Minh ha thuc tnh SelectedText

private void btTextbox_Click(object sender, EventArgs e) { //Thuc tnh SelectedText ly ra mt chui m bn bi en (Chn) //Bn hy bi en mt vi t trong Textbox sau Click vo Button ny s hin th //Message thng bo t bn chn string str = textBox1.SelectedText; MessageBox.Show("T bn va chn (bi en) l: "+str); }

5.3. Minh ha thuc tnh SelectionStart v SelectionLength

private void btTextbox_Click(object sender, EventArgs e) { //Thuc tnh ny dng trong tm kim rt nhiu //Thuc tnh SelectionStart: V tr bt u Select //Thuc tnh SelectionLength: Chiu di ca vng la chn //Ch : t thuc tnh HideSelection=False //V d: Tm kim xem gi tr ca Textbox c t no l cho hay khng. Nu c th n t Bi en t string str = "cho"; int i; - 18 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit i = textBox1.Text.LastIndexOf(str); if (i >= 0) { textBox1.SelectionStart = i; textBox1.SelectionLength = str.Length; }

5.4. Minh ha thuc tnh CanUndo v phng thc Undo

private void btTextbox_Click(object sender, EventArgs e) { //Nu c th Undo (c ngha: Bn phi g vn bn vo Textbox ri sa, xa...) //Mi c th Undo li c if (textBox1.CanUndo) textBox1.Undo(); }

5.5. Minh ha phng thc Select

private void btTextbox_Click(object sender, EventArgs e) { //C php chung: txtNoiDung.Select(Start, Length); //Mc ch ly v mt chui t t v tr no v chiu di ca chui dc chn (tt nhin: bi en vng ny). //-> Phng thc ny tng ng vi s dng 2 thuc tnh SelectionStart v SelectionLength //V d: txtNoiDung.Select(10, 5); //<-> 2 cu lnh ny //textBox1.SelectionStart = 10; //textBox1.SelectionStart = 5;

- 19 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5.6. Minh ha phng thc AppendText

private void btTextbox_Click(object sender, EventArgs e) { //Gi tr Textbox trc khi gi phng thc MessageBox.Show("Trc: "+textBox1.Text); //Gi phng thc textBox1.AppendText("Khoa CNTT - UTEHY"); //Gi tr Textbox trc khi gi phng thc MessageBox.Show("Sau: " + textBox1.Text);

5.7. X l ch cho php Textbox nhp s (s kin KeyPress ca Textbox) Cch 1


private void txtNoiDung_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar >= '0' && e.KeyChar <= '9') e.Handled = false;//Handled: c x l else e.Handled = true; }

5.8. X l ch cho php Textbox nhp s (s kin KeyPress ca Textbox) Cch 2

private void txtNoiDung_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)) e.Handled = true; //Char.IsDigit(e.KeyChar) --> //kim tra xem phm va nhp vo textbox c phi l k t s hay khng, hm ny tr v kiu bool //Char.IsContro(e.KeyChar) --> - 20 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //kim tra xem phm va nhp vo textbox c phi l cc k t iu khin //(cc phm mi tn,Delete,Insert,backspace,space bar) hay khng, mc ch dng hm ny l cho php ngi dng xa s trong trng hp nhp sai. }

S dng Textbox vit chng trnh son tho vn bn n gin (tham kho Notepad)

- 21 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

V. RITCHTEXTBOX ***
1. Chc nng iu khin RitchTextBox dng lu tr v hin th vn bn theo nhiu nh dng khc nhau (nh dng chun l rtf) 2. Mt s thuc tnh thng dng iu khin RitchTextBox c rt nhiu cc thuc tnh ging Textbox ni ring v cc iu khin khc ni chung. ngha ca cc thuc tnh ny l ging nhau vi cc iu khin. y chng ta xt mt s thuc tnh khc ca RitchTextBox Tn
SelectedText SelectionStart, SelectionLength SelectionFont SelectionColor CanUndo

ngha
Ly v chui c la chn (chui m chng ta bi en) Ly v mt chui vi v tr bt u v chiu di, hai thuc tnh ny thng i vi nhau Ly thng tin v Font ca mt chui c la chn (bi en) Ly thng tin v Color ca chui c bi en c la chn Tr li hai gi tr True/False. - True: c th Undo li c (nh Word) - False: Ngc li Tng t nh thuc tnh CanUndo

CanRedo

3. Mt s phng thc thng dng Tn


AppendText Copy Cut Paste Find Focus LoadFile SaveFile Select SelectAll Redo Undo

ngha

Ni mt chui vo RitchTextBox X l phn ni dung bi en (nh Word)

Tm kim mt xu trong RitchTextBox Chuyn Focus vo RitchTextBox c ni dung mt file vo RitchTextBox Ghi ni dung ca RitchTextBox ra file Ly ra mt chui trong RitchTextBox (tng t TextBox) Ly tt c ni dung ca RitchTextBox X l Undo, Redo nh Word

- 22 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

4. Minh ha s dng RitchTextBox bng mt s Code Gi s c mt Textbox c tn l richTextBox1. Chng ta s minh ha RitchTextbox qua s kin click ca mt Button c tn l btrichTextBox. Vic s dng cc thuc tnh SelectedText, SelectionStart, SelectionLength, CanUndo, CanRedo tng t nh TextBox (Xem li Code phn iu khin TextBox)
private void btRichTextBox_Click(object sender, EventArgs e) { //S dng thuc tnh Font c th ly thng tin v Font ca vng Bi en (khng phi tt c) //Hoc: Thay i Font ca vng bi en //Trc ht ly thng tin v Font //InfoFont bao gm tt c cc thng tin: Style, Tn Font... string InfoFont = richTextBox1.SelectionFont.ToString(); MessageBox.Show(InfoFont); //Ch ly tn Font ca vng Bi en string FontName = richTextBox1.SelectionFont.Name.ToString(); MessageBox.Show("Vng bi en c Font l: " + FontName); //Ch ly Size ca vng Bi en string FontSize = richTextBox1.SelectionFont.Size.ToString(); MessageBox.Show("Vng bi en c Size l: " + FontSize); //...................................................

Minh ha thuc tnh SelectionFont

private void btRichTextBox_Click(object sender, EventArgs e) {

Chn Font cho vng bi en thng qua thuc tnh SelectionFont (Ch vng bi en)

- 23 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit FontDialog fo = new FontDialog(); //Hin th hp thoi if (fo.ShowDialog() == DialogResult.OK) { //Nu mun i Font mt on la chn th dng cu lnh ny richTextBox1.SelectionFont = fo.Font; //Cn nu mun i Font cho ton b RichTextBox th dng cu lnh ny //richTextBox1.Font = fo.Font;

private void btRichTextBox_Click(object sender, EventArgs e) { //Thuc tnh ny ly v mu ca vng c la chn //Tng t nh thuc tnh SelectionFont string Color = richTextBox1.SelectionColor.Name.ToString(); MessageBox.Show(Color); } private void btRichTextBox_Click(object sender, EventArgs e) { ColorDialog cl = new ColorDialog(); //Hin th hp thoi if (cl.ShowDialog() == DialogResult.OK) { //Nu mun i Font mt on la chn th dng cu lnh ny richTextBox1.SelectionColor = cl.Color; } - 24 -

Minh ha thuc tnh SelectionColor

t mu cho vng bi en thng qua thuc tnh SelectionColor

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit }

Vic s dng cc phng thc: AppendText, Select, SelectAll, Undo, Redo, Undo tng t nh Textbox
private void btRichTextBox_Click(object sender, EventArgs e) { //Load ni dung File C:\NET.rtf vo RitchTextBox //Tt nhin C ca bn phi tn ti file C:\NET.rtf richTextBox1.LoadFile(@"C:\NET.rtf"); } //-> Thng s dng cng vi iu khin OpenFileDialog m mt file trn my

Minh ha s dng phng thc LoadFile

private void btRichTextBox_Click(object sender, EventArgs e) { //Lu ni dung RitchTextBox ra file richTextBox1.SaveFile(@"C:\File.rtf") } //-> Thng s dng cng vi iu khin SaveFileDialog lu file vo mt ni bt k trn my

Minh ha s dng phng thc SavaFile

private void btRichTextBox_Click(object sender, EventArgs e) { //Tm kim mt chui trong RichTextBox -> nu c th bi en kt qu tm thy //Ch : t thuc tnh HideSelection=False //rtfNoiDung.Find("Cho", 0, 100, RichTextBoxFinds.Reverse); //-> ng dng trong tm kim vn bn - 25 -

Minh ha Phng thc Find

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit } richTextBox1.Find("cho", 0, 100, RichTextBoxFinds.MatchCase);

S dng RitchTextBox vit chng trnh son tho vn bn n gin(tham kho WordPad)

- 26 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

MT S IU KHIN XY DNG MENU *** I. NOTIFY ICON


5. Chc nng iu khin NotifyIcon cho php bn trnh by biu tng trn System Tray ca h iu hnh (nh biu tng ca Unikey, IDM, SQL Server). Mi khi ngi dng di chuyn chut n biu tng (icon) th chui khai bo trong thuc tnh Text ca iu khin NotifyIcon s xut hin (tng t nh mt tooltip ch gii). 6. Mt s thuc tnh thng dng iu khin Notify Icon c mt s thuc tnh nh sau:
Tn Icon Text ConTextMenuStrip ngha Icon s xut hin di khay h thng khi Form hin th Chui xut hin khi bn di chuyn chut vo Icon di khay h thng Menu Popup (menu ng cnh) s xut hin khi ngi dng nhn chut phi vo Icon di khay h thng

3. Minh ha s dng Notify Icon bng mt s Code Gi s chng ta c mt Form c tn l frmNotifyIcon. Bn thm mt iu khin NotifyIcon vo frmNotifyIcon(mc nh n c tn notifyIcon1) v thm mt iu khin ContextMenuStrip vo frmNotifyIcon (mc nh n c tn l contextMenuStrip1).

- 27 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

3.1. S dng iu khin NotifyIcon


Bc 1: Ko mt iu khin NotifyIcon vo form Bc 2: Ko mt iu khin ContextMenuStrip vo form v to ra vi menu ( gn vi NotifyIcon) Bc 3: t thuc tnh Icon cho iu khin NotifyIcon (tr ti mt icon no ). Bc 4: t thuc tnh Text cho iu khin NotifyIcon. Bc 5: t thuc tnh ContextMenuStrip ca iu khin NotifyIcon l iu khin ContextMenuStrip bc 2 Bc 6: Chy chng trnh thy kt qu

3.2. To v s dng NotifyIcon bng Code

//Bn vit trong s kin Load ca Form private void frmNotifyIcon_Load(object sender, EventArgs e) { //Khai bo i tng NotifyIcon NotifyIcon ni = new NotifyIcon(); //t cc thuc tnh cho i tng ny Icon ic = new Icon("CongNgheNet.ico");//Bn phi Copy mt Icon c tn m CongNgheNet vo th mc Bin ni.Icon = ic; ni.Text = "Chuyn : Cng ngh .NET"; ni.ContextMenuStrip = contextMenuStrip1;");//Bn phi xy dng mt iu khin ContextMenuStrip: contextMenuStrip1 ni.Visible = true; //t mt s thuc tnh cho Form this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = true; //Gi bn chy bit kt qu

3.3. To Icon ng di khay h thng

// to c Icon ng trc ht bn phi thm iu khin Timer vo form frmNotifyIcon //t mt s thuc tnh cho iu khin Timer ny nh sau: Interval=1000 (tng ng 1 giy) v Enabled = true //Khai bo i tng NotifyIcon bn ngoi - Ton cc - 28 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit NotifyIcon ni = new NotifyIcon(); int i = 1; //S dng s kin Tick ca iu khin Timer lm cc icon ng private void timer1_Tick(object sender, EventArgs e) { //Copy 6 Icon vo th mc bin: Icon1, Icon2, Icon3, icon4, icon5, Icon6 string FileIconName = "Icon" + i.ToString() + ".ico"; Icon ico = new Icon(FileIconName); ni.Icon = ico; ni.Visible = true; this.ShowInTaskbar = true; //Tng i i++; if (i > 6) i = 1;

3.4. To Icon ng di khay h thng (cch 2)

// to c Icon ng trc ht bn phi thm iu khin Timer vo form frmNotifyIcon //t mt s thuc tnh cho iu khin Timer ny nh sau: Interval=1000 (tng ng 1 giy) v Enabled = true //Khai bo i tng NotifyIcon bn ngoi - Ton cc NotifyIcon ni = new NotifyIcon(); //Khai bo mng Icon cha cc Icon Icon[] MangIcon; int Index = 0; //Load cc Icon vo mng Icon private void frmNotifyIcon_Load(object sender, EventArgs e) { - 29 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Copy 6 Icon vo th mc bin: Icon0, Icon1, Icon2, Icon3, icon4, icon5 MangIcon = new Icon[6]; MangIcon[0] = new Icon("Icon0.ico"); MangIcon[1] = new Icon("Icon1.ico"); MangIcon[2] = new Icon("Icon2.ico"); MangIcon[3] = new Icon("Icon3.ico"); MangIcon[4] = new Icon("Icon4.ico"); MangIcon[5] = new Icon("Icon5.ico");

//S dng s kin Tick ca iu khin Timer lm cc icon ng private void timer1_Tick(object sender, EventArgs e) { ni.Icon = MangIcon[Index]; ni.Visible = true; this.ShowInTaskbar = true; //Tng Index v Kim tra Index++; if (Index > 5) Index = 0;

- 30 -

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

II. IMAGE LIST ***


5. Chc nng iu khin ImageList dng qun l tp cc Image (Image, Icon). Thng s dng iu khin ImageList vi cc iu khin khc: ListView, TreeView, Toolbar, NotifyIcon 6. Mt s thuc tnh thng dng
Tn Images ngha Cha danh sch cc Image. C th a cc Image hay Icon vo thng qua giao din (Ca s Properties) hay m lnh (Tp cc Image trong ImageList l mt Collection nn n c y cc phng thc ca Collection). Truy xut ti mt Image trong ImageList theo c php: Tn_ImageList.Images[Index]; Kch c ca Image (Mc nh l 16x16)

ImageSize

BT: S dng iu khin ImageList kt hp vi iu khin NotifyIcon vit chng trnh to Icon ng (khng bit c lm c khng? ^_^).

31

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

III. MENU STRIP


*** 1. Chc nng iu khin MenuStrip cho php thit k h thng menu trn Form (menu mt cp hay nhiu cp). V d h thng menu ca chng trnh Word, Visual Studio 2008.MenuStrip cho php thit k menu vi cc iu khin: ToolStripSeparator (Gch phn cch) ToolStripMenuItem (Menu con). ToolStripCombobox (Combobox). ToolStripTextbox (Textbox)

2. Mt s thuc tnh thng dng ca MenuStrip


Tn TextDirection Items ngha Chn hnh thc trnh by Menu (quay ngc, quay 900) Thm cc menu con, kiu ca menu (Menu con, Textbox, Combobox, gch phn cch). Thng qua giao din ha bn c th thm cc menu vo (tp cc Items ny l mt Colleciton). Nhn mt trong hai gi tr Yes hay No - Yes: trnh by menu t phi qua tri - No: trnh by menu t tri qua phi

RightToLeft

3. Cc iu khin bn trong MenuStrip 3.1. ToolStripSeparator (Gch phn cch) iu khin ToolStripSeparator dng phn cch gia cc menu 3.2. ToolStripMenuItem 3.2.1. Mt s thuc tnh thng dng
Tn Checked ngha Nhn mt trong hai gi tr True hay False - True: cho php xut hin biu tng Checkbox bn cnh chui Text ca ToolStripMenuItem - False: Ngc li 32

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit CheckOnClick Nhn mt trong hai gi tr True hay False - True: Biu tng Checkbox xut hin bn cnh chui Text ca ToolStripMenuItem (MenuItem) mi khi ngi dng Click chn vo n - False: Ngc li CheckState Trng thi ca Checkbox bn cnh chui Text ca menu. V nhn mt trong 3 gi tr: UnChecked, Checked, Indeterminate (Ch : Thuc tnh Checked=True th thuc tnh ny mi c hiu lc. Hin nhin ri phi khng? ) DisplayStyle Hnh thc trnh by ca Menu v nhn mt trong 4 gi tr - None: Khng hin th g c (Text v Image) - Text: Ch cho php xut hin chui m t - Image: Ch cho php xut hin nh( hoc Icon) bn cnh Text (xut hin pha ngoi cng bn tri) - ImageAndText=Image+Text Image Hnh nh xut hin bn cnh chui Text (chui khai bo bn trong thuc tnh Text ca MenuItem) ImageScaling Chn hnh thc trnh by ca nh xut hin bn cnh chui. V nhn mt trong hai gi tr - None: Bnh thng - SizeToFit: Hin th ng kch c ca Image hay Icon. ShortcutKeyDisplayString Chui trnh by ng vi phm tt m t cho MenuItem (Ni vo Text ca MenuItem v d: Open Ctrl+O) ShortcutKeys Chn t hp phm tt ng vi MenuItem ShowShortcutKeys Nhn mt trong hai gi tr True hay False - True: Cho php trnh by chui t hp phm tt ca MenuItem (=True th thuc tnh ShortcutKeyDisplayString mi c hiu lc). - False: Ngc li Chui trnh by MenuItem, bn c th s dng k t & Text trc k t s dng vi phm Alt (phm nng - phm tt) TooltipText Chui tr gip khi ngi dng di chuyn chut n iu khin MenuItem Visible

3.2.2. Mt s s kin thng dng


Tn CheckedChange Click ngha Xy ra khi trng thi ca Checkbox thay i Xy ra khi ngi s dng Click vo MenuItem

3.3. ToolStripCombobox Cc thuc tnh, phng thc, s kin ca ToolStripCombobox ging vi iu khin Combobox Xem li iu khin Combobox

33

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

3.4. ToolStripTextbox (Textbox) Cc thuc tnh, phng thc, s kin ca ToolStripTextbox ging vi iu khin Combobox Xem li iu khin Textbox

34

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

IV. CONTEXT MENU STRIP ***


1. Chc nng iu khin ContextMenuStrip dng thit k menu popup (menu ng cnh menu xut hin khi ngi dng nhn chut phi. V d: khi ngi dng nhn chut phi vo Desktop xut hin mt menu chnh l menu ng popup) . xut hin cc menu Popup khi ngi dng nhn chut phi vo cc iu khin (form, button, label, textbox) bn ch cn khai bo thuc tnh ContextMenuStrip ca cc iu khin l mt iu khin ContextMenuStrip. iu khin ContextMenuStrip cho php thit k menu vi cc iu khin sau (tng t nh iu khin MenuStrip) ToolStripSeparator (Gch phn cch) ToolStripMenuItem (Menu con). ToolStripCombobox (Combobox). ToolStripTextbox (Textbox) 2. Mt s thuc tnh thng dng
Tn Items ngha Thm cc mnu con, kiu ca menu (Menu con, Textbox, Combobox, gch phn cch). Thng qua giao din ha bn c th thm cc menu vo (Collection) Nhn mt trong hai gi tr True hay False - True: Trnh by menu t phi qua tri (cn l l bn phi) - False: Trnh by menu t tri qua phi (cn l l bn tri) Hin th phn hnh nh?

RightToLeft

ShowImageMargin

3. Cc iu khin bn trong ContextMenuStrip Hon ton tng t cc iu khin bn trong iu khin MenuStrip (ToolStripSeparator (Gch phn cch), ToolStripMenuItem (Menu con), ToolStripCombobox (Combobox), ToolStripTextbox (Textbox))

Ch : Nhm cc iu khin menu cn c mt s iu khin: MainMenu (khng c sn trong hp cng c Toolbox), StatusStrip, ToolStrip.

35

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

MT S IU KHIN HP THOI (DIALOG) *** I. OPEN FILE DIALOG


1. Chc nng iu khin OpenFileDialog cho php bn chn (select) tp tin ang tn ti trn h thng, kim tra xem mt tp tin c tn ti hay khng. Trong trng hp bn c nhu cu chn mt Foder (ch khng phi File) th bn chn iu khin FolderBrowserDialog V d: Hp thoi m ra khi chng ta chn File Open ca chng trnh Word hay Notepad 2. Mt s thuc tnh thng dng
Tn AddExtension ngha Nhn mt trong hai gi tr True hay False - True: Cho php thm vo tn m rng (.txt, .jpg) vo file - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Xut hin hp cnh bo nu bn nhp vo mt tn file khng tn ti (nhp vo File name: trn hp thoi OpenFileDialog ) - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Kim tra ng dn ti file c hp l hay khng trc khi tr v. - False: Ngc li Chn tn m rng cho file (.txt, .jpg) mc nh nu ngi dng khng cung cp tn m rng cho tp tin. Chn b lc cho hp thoi (Ch chn File no). V d: File Text (*.txt)|*.txt| Word File (*.doc)|*.doc; Chn s th t cho b lc (b lc s hin th trong mc Files Of Types) Set or Get tn tp tin bn chn Set or Get mng cha tp tin chn (trong trng hp chn nhiu tp tin) ng dn mc nh khi hp thoi OpenFileDialog m ra Nhn mt trong hai gi tr True hay False - True: Cho php bn chn nhiu tp tin (v du: Chn nhiu bn nhc nghe) - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Check vo hp thoi Checkbox Open as ReadOnly bn di Combobox Files Of Types - False: Ngc li () (vi iu kin thuc tnh ShowReadOnly = True) 36

CheckFileExists

CheckPathExists

DefaultExt Filter FilterIndex FileName FileNames InitialDirectory Multiselect

ReadOnlyChecked

RestoreDirectory

ShowReadOnly

Title

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit Nhn mt trong hai gi tr True hay False - True: M li th mc va m ra ln trc, vi iu kin thuc tnh InitialDirectory khng t g - False: Khng m li th mc va m ln trc Nhn mt trong hai gi tr True hay False - True: Xut hin hp Checkbox Open as Read-Only bn di Combobox Files Of Types - False: Ngc li t tiu (xut hin trn Titlebar) cho hp thoi OpenFileDialog

3. Minh ha s dng hp thoi OpenFileDialog Gi s chng ta c mt form c tn: frmOpenFileDialog, trn form c mt iu khin Textbox c tn Textbox1v mt iu khin OpenFileDialog c tn openFileDialog1. Chng ta s dng hp thoi OpenFileDialog load ni dung mt tp text vo Textbox

37

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void frmOpenFileDialog_Load(object sender, EventArgs e) { //t mt s thuc tnh bng Code openFileDialog1.AddExtension = false; openFileDialog1.CheckFileExists = true; openFileDialog1.ReadOnlyChecked = true;//Check vo checkbox ->thuc tnh ShowReadOnly = true openFileDialog1.Filter = "File Text (*.txt)|*.txt| File Rtf (*.rtf)|*.rtf| All File|*.*"; openFileDialog1.FilterIndex = 0;//Chn b lc "File Text (*.txt)|*.txt" -> Ch chn file Text openFileDialog1.FileName = "";//thay cho chui openFileDialog1 xut hin trong hp FileName openFileDialog1.InitialDirectory = "C:\\"; //M C khi hp thoi ny hin th openFileDialog1.Multiselect = true; openFileDialog1.ShowReadOnly = true;//Xut hin Checkbox openFileDialog1.Title = "Cong nghe NET"; //Kin tra hp thoi c m ra khng //S dng phng thc ShowDialog() if (openFileDialog1.ShowDialog() == DialogResult.OK) { //Ly v File bn chn. Gi s ti chn File C:\CongNgheNET.txt string FileBanChon = openFileDialog1.FileName; //c file StreamReader sr = new StreamReader(FileBanChon); textBox1.Text = sr.ReadToEnd(); //ng lung c sr.Close(); }

38

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

II. SAVE FILE DIALOG ***


6. Chc nng iu khin SaveFileDialog cho php bn ghi mt ni dung ra mt tp tin (file) mi hay ghi ln tp tin ang tn ti trn h thng ca bn. V d: Hp thoi m ra khi chng ta chn File Save ca chng trnh Word, Notepad. 7. Mt s thuc tnh thng dng
Tn AddExtension ngha Nhn mt trong hai gi tr True hay False - True: Cho php thm vo tn m rng (.txt, .jpg) - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Xut hin hp cnh bo nu bn nhp vo mt tn file khng tn ti (nhp vo File name: trn hp thoi SaveFileDialog ) - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Kim tra ng dn ti file c hp l hay khng trc khi tr v. - False: Ngc li Chn b lc cho hp thoi (Ch chn File no). V d: File Text (*.txt)|*.txt| Word File (*.doc)|*.doc; Chn s th t cho b lc (b lc s hin th trong mc Files Of Types) Set or Get tn tp tin ng dn mc nh khi hp thoi SaveFileDialog m ra Nhn mt trong hai gi tr True hay False - True: M li th mc va m ra ln trc, vi iu kin thuc tnh InitialDirectory khng t g - False: Khng m li th mc va m ln trc t tiu (xut hin trn Titlebar) cho hp thoi SaveFileDialog Cho php xut hin Button Help (?) hay khng? Xut hin cnh bo nu bn ghi vo mt tp tin tn ti
Formatted: Justified, Indent: First line: 0.63 cm

CheckFileExists

CheckPathExists

Filter FilterIndex FileName InitialDirectory RestoreDirectory

Title ShowHelp OverwritePrompt

8. Minh ha s dng SaveFileDialog Gi s chng ta c mt form c tn: frmSaveFileDialog, trn form c mt iu khin Textbox c tn Textbox1v mt iu khin SaveFileDialog c tn saveFileDialog1. Chng ta s dng hp thoi SaveFileDialog ghi ni dung Textbox vo mt tp Text qua s kin Click ca mt Button c tn btSave

39

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void btSave_Click(object sender, EventArgs e) { //t mt s thuc tnh bng Code saveFileDialog1.AddExtension = true;//Cho php thm vo tn m rng saveFileDialog1.OverwritePrompt = true;//Xut hin cnh bo nu tp tin tn ti saveFileDialog1.DefaultExt = "txt";//Chy nu: saveFileDialog1.AddExtension = true saveFileDialog1.CheckPathExists = true;//Kim tra ng dn c hp l hay khng saveFileDialog1.FileName = ""; saveFileDialog1.Filter = "Text File (*.txt)|*.txt"; saveFileDialog1.FilterIndex = 0; //saveFileDialog1.InitialDirectory = "C:\\";//Chn ng dn khi hp thoi m ra saveFileDialog1.RestoreDirectory = true;//K khng t saveFileDialog1.InitialDirectory saveFileDialog1.ShowHelp = true; saveFileDialog1.Title = "Cong nghe NET"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { //Ly ni dung cn ghi string strNoiDung=textBox1.Text; //Ly ra tn file cn ghi string strFileSave = saveFileDialog1.FileName; //Ghi file StreamWriter sw = new StreamWriter(strFileSave); sw.Write(strNoiDung); //ng lung sw.Close(); }//v d rt n gin

40

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

IV. FOLDER BROWSER DIALOG


***
1. Chc nng iu khin FolderBrowserDialog cho php ngi dng chn (Select) th mc ang tn ti trong h thng, ng thi c th to mi th mc ngay trong th mc ang chn (Ch : iu khin OpenFileDialog ch cho php chn file). 2. Mt s thuc tnh thng dng
Tn Description RootFolder SelectedPath ShowNewFolderButton ngha Chui m t v hp thoi, xut hin bn di khung Title Th mc mc nh chn khi hp thoi m ra. Bao gm rt nhiu la chn c sn Tr v tn th mc (c ung dn y ) m ngi s dng chn (cc bn ch thuc tnh ny) Nhn mt trong hai gi tr True hay False - True: Xut hin Buttons Make New Folder cho php ngi dng to ra th mc mi trong th mc bn chn - False: Ngc li

Formatted: Numbered + Level: 1 + Numbering Style: I, II, III, + Start at: 4 + Alignment: Left + Aligned at: 0.63 cm + Tab after: 1.9 cm + Indent at: 1.9 cm

Minh ha s dng hp thoi FolderBrowserDialog Chng ta minh ha s dng iu khin FolderBrowsersDialog qua ng dng to Slide nh. Gi s chng ta c mt form c tn: frmFolderBrowserDialog, trn form c cha mt s iu khin sau: PictureBox c tn pictureBox1 hin th nh iu khin folderBrowserDialog c tn folderBrowserDialog1 dng chn th mc cha nh iu khin Timer c tn timer1 Button c tn btOpen XEM CODE TRONG PROJECT KM THEO (frmFolderBrowserDialog)

V.

41

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Khai bo mng string[] MangAnh = null; int Index = 0; int CountImage; //Load private void frmFolderBrowserDialog_Load(object sender, EventArgs e) { this.WindowState = FormWindowState.Maximized; pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; } //M th mc cha cc File nh private void btOpen_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { //Khai bo cc mng cha cc nh khc nhau: jpg, jpeg string[] MangAnhJpg = null, MangAnhJpeg = null, MangAnhBitmap = null; //Ly ra cc phn t ca mng bng cch dng lp Directory // y ti chn th mc: D:\Pictures cha rt nhiu nh ca ti MangAnhJpg = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpg");//CH CU LNH NY MangAnhJpeg = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpeg");//CH CU LNH NY MangAnhBitmap = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.bmp");//CH CU LNH NY //Ly ra chiu di mng int i = MangAnhJpg.Length; int j = MangAnhJpeg.Length; int k = MangAnhBitmap.Length; //Khai bo mng mi l t hp ca 3 mng MangAnh = new string[i+j+k]; //CH CU LNH NY 42

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //X l v mng Array.Copy(MangAnhJpg, 0, MangAnh, 0,i); //CH CU LNH NY Array.Copy(MangAnhJpeg, 0, MangAnh, i, j); //CH CU LNH NY Array.Copy(MangAnhBitmap, 0, MangAnh, i+j, k); //CH CU LNH NY //3 CU LNH NY NG LOGIC CHA????? //Ly ra s nh CountImage = MangAnh.Length; //Ht ForEach timer1.Enabled = true; ^_^

//Ch : t thuc tnh cho Timer //Enabled=true //Interval=2000 > sau 2 giy chuyn sang nh tip theo private void timer1_Tick(object sender, EventArgs e) { //Khai bo Image > Ch cu lnh ny Image img = Image.FromFile(MangAnh[Index]); //Hin th nn Picture pictureBox1.Image = img; //Chuyn n nh tip theo Index++; if (Index >= End) Index = 0;

43

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

V. FilE SYSTEM WATCHER ***


1. Chc nng Theo di s thay i ca File v Folder (thay i v tn, ni dung) ca cc a, cc th mc do bn ch nh 2. Mt s thuc tnh thng dng
Tn Path ngha ng dn cn theo di (c th l a hay mt th mc) (kt hp s dng vi iu khin FolderBrowserDialog theo di s thay i ca mt folder bt k do bn chn) B lc loi tp tin (theo di s thay i ca cc file Text, file doc hay tt c cc file) Nhn mt trong hai gi tr True hay False - True: Cho php cc s kin c hiu lc khi c thay i khng (thng chn l true) - False: ngc li Nhn mt trong hai gi tr True hay False - True: Theo di s thay i ca c cc th mc con ca th mc bn chn - False: Ngc li (tt nhin ri ) B lc i vi s kin Changed (thay i v tn, thuc tnh file, thi gian truy cp)

Filter EnableRaisingEvents

IncludeSubdirectories

NotifyFilter

3. Mt s phng thc thng dng


Tn Created Deleted Changed Renamed ngha s kin ny xy ra khi c to mi file hay folder

Tng t nh trn

4. Minh ha s dng iu khin FileSystemWatcher Gi s chng ta c form c tn: frmFileSystemWatcher. Trn form c cha: iu khin FolderBrowserDilog c tn folderBrowserDialog1 chn th mc bt k cn theo di, iu khin FileSystemWatcher c tn fileSystemWatcher1, mt listbox c tn lstFileSystemWatcher (mi khi c s thay i th dng thng bo c thm vo Listbox ny) v mt Button c tn btSelect chn th mc cn theo di. XEM CODE TRONG PROJECT KM THEO (frmFileSystemWatcher)

44

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Chn th mc cn theo di private void btSelect_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { string strFolderCanTheoDoi = folderBrowserDialog1.SelectedPath; //ng dn cn theo di fileSystemWatcher1.Path = strFolderCanTheoDoi; //B lc loi tp tin theo di <-> theo di tt c cc loi tp tin .txt, .doc..... fileSystemWatcher1.Filter = "*.*"; // Cho php s dng cc s kin khi c thay i fileSystemWatcher1.EnableRaisingEvents = true; //Theo di c cc th mc con trong th mc va chn fileSystemWatcher1.IncludeSubdirectories = true; //B lc i vi s kin Changed fileSystemWatcher1.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.Size; //X l cc s kin //Nu thuc tnh EnableRaisingEvents=False th cc cu lnh ny khng c hiu lc fileSystemWatcher1.Created += new FileSystemEventHandler(CreatedFileAndFolder); fileSystemWatcher1.Deleted += new FileSystemEventHandler(Delete); fileSystemWatcher1.Changed += new FileSystemEventHandler(Changed); fileSystemWatcher1.Renamed += new RenamedEventHandler(Renamed);

} } //Cc s kin //Phng thc thc thi khi c file hay folder c to ra

45

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit public void CreatedFileAndFolder(object sender, FileSystemEventArgs e) { lstFileSystemWatcher.Items.Add("Create: " + e.FullPath + "Va c to ra"); } //Phng thc thc thi khi c file hay folder c Xa i public void Delete(object sender, FileSystemEventArgs e) { lstFileSystemWatcher.Items.Add("Delete: " + e.FullPath + "Va c Xa i"); } //Phng thc thc thi khi c file hay folder thay i ni dung public void Changed(object sender, FileSystemEventArgs e) { lstFileSystemWatcher.Items.Add("Changed: " + e.FullPath + " Va mi thay i!"); } //Phng thc thc thi khi c file hay folder thay i tn public void Renamed(object sender, RenamedEventArgs e) { lstFileSystemWatcher.Items.Add("Renamed: " + e.OldName + " c i tn thnh: " + e.Name + "(" + e.OldFullPath + " -> " + e.FullPath + ")");

Ch : Nhm cc iu khin hp thoi (Dialog) cn c mt s iu khin: ColorDialog (Cho php chn mu), FontDialog (cho php chn font ch)

46

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

MT S IU KHIN KHC *** I. TOOLTIP


1. Chc nng iu khin Tooltip h tr cch s dng cc iu khin khc trn form bng cch trnh by ca s nh hnh ch nht vi cc din gii ngn gn khi ngi s dng di chuyn chut vo iu khin . 2. Mt s thuc tnh thng dng
Tn Active ngha Nhn mt trong hai gi tr True hay False - True: Cho php ca s Tooltip c xut hin - False: Khng cho php Chn mu nn cho ca s Tooltip (chnh l khung hnh ch nht hin ra) Thi gian tnh bng phn ngn giy p dng cho 3 thuc tnh di y: AutoPopDelay, InitiaDelay, ReshowDelay Khong thi gian m ca s iu khin tooltip xut hin k t lc ngi dng di chuyn chut vo iu khin cho n khi kt thc (1000=1s). (Ni gn gn: Khong thi gian m n s c xut hin khi ngi dng di chuyn chut vo iu khin) Khong thi gian m ca s iu khin tooltip s ch c xut hin k t khi ngi dng di chuyn chut vo iu khin (V d t thuc tnh l 1000 th sau khi di chuyn chuyn vo iu khin 1s th ca s tooltip s xut hin) Khong hi gian m ca s s tt k t khi ngi dng di chuyn chut ra ngoi iu khin Nhn mt trong hai gi tr True hay False - True: Ca s hnh ch nht bt nn vi cc gc bo trn - False: Ca s hin nn c hnh ch nht Biu tng xut hin trn hp Tooltip Chui xut hin bn cnh Icon trn(Khng phi l Tooltip)

BackColor AutomaticDelay

AutoPopDelay

InitialDelay

ReshowDelay IsBalloon

TooltipIcon TooltipTitle

3. S dng iu khin Tooltip


Khi ko mt iu khin Tooltip vo Form th mc nh tn ca n l: toolTip1. Khi cc iu khin trn Form (Textbox, Button hay Label..) t ng c thm mt thuc tnh na l: Tooltip on Tooltip1 (Vi Tooltip1 l tn ca iu khin va a vo - Thuc tnh mi ny nm trong hp thoi Properties). Bn ch cn t gi tr cho thuc tnh ny (thuc tnh Tooltip on Tooltip1 ca cc iu khin nh Textbox, Buttonch khng phi ca tooltip) l mt chui gi nhc no . Lc chy chng trnh khi tr chut vo iu khin hin nn thng bo (Chui va nhp thuc tnh Tooltip on Tooltip1) 47

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

II. ERROR PROVIDER ***


1. Chc nng iu khin ny cung cp giao tip gia ngi s dng vi cc thng tin li ca cc iu khin trn Form 2. Mt s thuc tnh thng dng
Tn BlinkRate BlinkStyle ngha Khong thi gian gia hai ln nhp nhy (1000=1s) Chn kiu hin th cho iu khin ErrorProvider. Nhn 1 trong 3 gi tr: - Khi c li mi nhp nhy (BlinkIfDifferentError - mc nh). - Nhp nhy lin tc (AlwaysBlink), - Khng bao gi nhp nhy (NeverBlink). Icon xut hin bn cnh iu khin, c th chn Icon bt k trn my tnh ca bn ch khng nht thit l Icon mc nh ca VS (hnh trn )

Icon

3. Mt s phng thc thng s dng


Tn SetError GetError Clear ngha Khai bo chui xut hin tng t nh thuc tnh Error on errorProvider1. Nhn chui t thuc tnh Error on errorProvider1 ca iu khin. Loi b tt c cc chui din gii cho cc iu khin

4. S dng iu khin ErrorProvider Khi ko mt iu khin ErrorProvider vo Form th mc nh tn ca n l: errorProvider1. Khi cc iu khin trn Form (Textbox, Button hay Label..) t ng c thm mt thuc tnh na l: Error on errorProvider1 (Vi errorProvider1 l tn ca iu khin Error Provider va a vo - Thuc tnh mi ny nm trong hp thoi Properties). Bn ch cn t gi tr cho thuc tnh ny l mt chui no (thuc tnh Error on errorProvider1 ca cc iu khin nh Textbox, Buttonch khng phi ca iu khin ErrorProvider). Lc chy chng trnh th c mt biu tng hnh trn bn cnh iu khin m bn t thuc tnh Error on errorProvider1, khi tr vo s xut hin dng thng bo trn). V d: Chng ta c mt form: frmErrorProvider. Trn form c 2 iu khin Textbox c tn l: txtUser, txtPass v mt button c tn btLogin. Khia nhn vo nt btLogin nu gi tr ca 2 txtUser v txtPass trng () th xut hin iu iu khin ErrorProvider bn cnh cc iu khin ny

48

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void btLogin_Click(object sender, EventArgs e) { //Chng ta c th ko mt iu khin ErrorProvider vo form v t cc thuc tnh //Cho cc iu khin txtUser, txtPass v iu khin ErrorProvider bn va to ra // y khai bo i tng ErrorProvider bng code //Khai bo i tng thuc kiu ErrorProvider ErrorProvider ep = new ErrorProvider(); //t cc thuc tnh ep.Clear(); ep.BlinkRate = 300; ep.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError; //t cho mt mt iu khin (Textbox) s dng phng thc SetError if (txtUser.Text == "") ep.SetError(txtUser, "User khng c trng"); if (txtPass.Text == "") ep.SetError(txtPass, "Pass khng c trng");

49

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

III. PROGRESSBAR ***


1. Chc nng iu khin ProgressBar dng trnh by thi lng thc hin cng vic (v d: thanh tin trnh trn trnh duyt IE). 2. Mt s thuc tnh thng dng
Tn Maximum Minimum Value Style ngha Gii hn trn (cc i) ca iu khin ProgressBar Gii hn di (cc tiu) ca iu khin ProgressBar Gi tr hin hnh ang x l trn iu khin ProgressBar Kiu trnh by ca ProgressBar v nhn 1 trong 3 gi tr: - Blocks: T tng khi (cc khi c cch nhau) mu xanh t tri qua phi - Continuous: T mu xanh (lin nhau) t tri qua phi - Marquee: Cun mu xanh chy t tri qua phi Bc nhy ca ProgressBar

Step

3. V d n gin v ProgressBar Gi s chng ta c form: frmProgresBar. Trn form c mt iu khin ProgressBar c tn progressBar1, mt iu khin timer c tn timer1 v mt label c tn l label1. Chng ta minh ha s dng ProgressBar qua v d n gin sau:
int i = 1; private void frmProgresBar_Load(object sender, EventArgs e) { //t mt s thng s cho ProgressBar progressBar1.Maximum = 100; progressBar1.Minimum = 0; //t mt s thng s cho Timer timer1.Interval = 1000; //1 giy timer1.Enabled = true; } //S kin Tick ca Timer private void timer1_Tick(object sender, EventArgs e) { progressBar1.Value = 10 * i; label1.Text = i.ToString(); i = i + 1; if (i > 10) i = 1; } 50

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

IV. LISTVIEW ***


1. Chc nng iu khin ListView dng trnh by cc phn t dng danh sch vi nhiu hnh dng khc nhau. 2. Mt s thuc tnh thng dng
Tn CheckBoxes ngha Nhn mt trong hai gi tr True hay False (mc nh l False) - True: Hin th mt checkbox bn cnh phn t u tin ca mi hng (1 hng = 1 ListviewItem) trong Listview - False: Ngc li Tp cc ct trong ListView l mt Collection. Thng qua thuc tnh ny c th thm cc ct vo Listview (C th thm cc ct vo Listview thng qua giao din ha hay c th vit Code. Ch : Phi t thuc tnh View l Detail th bn mi c th nhn thy cc ct ny) Gn mt menu ng cnh vi iu khin ListView (khi nhn chut phi vo Listview th s hin th menu ny) Nhn mt trong hai gi tr True hay False - True: Cho php chn (bi en) c hng (ca phn t ang c chn. Ch : Thuc tnh View = Detail) - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Hin th li bao quanh v ngn cch cc hng (Ch c hiu lc nu thuc tnh View = Detail) - False: Ngc li Khai bo nhm phn loi cc phn t sau khi trnh by trn iu khin Listview y l thuc tnh cho php chn Style cho Listview trong ch View l Report L mt Collection. Cho php to ra cc gi tr cho cc hng, ct trong Listview (tt nhin c th dng giao din ha hay vit Code) Nhn mt trong hai gi tr True hay False - True: Cho php thay i (sa) Text ca cc phn t (cc ). - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Chui HSPKTHY t ng xung hng khi chiu di khng trnh by - False: Ngc li Nhn mt trong hai gi tr True hay False - True: Cho php chn nhiu hng (ListviewItem). Mc nh l True - False: Khng cho php chn nhiu hng i tng ImageList cha danh sch cc Image theo ch s (Index) t 0 n n-1. c s dng nu thuc tnh View 51

Columns

ContextMenuStrip FullRowSelect

GridLines

Group HeaderStyle Items

LabelEdit

LabelWap

MultiSelect

LargeImageList

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit l LargeIcon SmallImageList i tng ImageList cha danh sch cc Image theo ch s (index) t 0 n n-1. c s dng nu thuc tnh View l SmallIcon Nhn mt trong hai gi tr True hay False - True: Cho php xut hin thanh trt trong Listview (Khi s ListViewItem nhiu v vt qua chiu cao ca ListView) - False: Ngc li Sp xp gi tr cc hng (ListViewItem) trong ListView (Ch c hiu lc nu thuc tnh View l Detail). Thuc tnh ny nhn mt trong cc gi tr sau None: Khng Sp xp Ascending: Sp xp tng

Scrollable

Sorting

Descending: Sp xp gim
SelectedItems CheckedItems View Tr v danh sch cc phn t c chn (bi en) Tr v danh sch cc phn t c check (tt nhin thuc tnh CheckBoxes = True) Cc kiu Hin th trn ListView. Thuc tnh View c th nhn mt s gi tr sau: LargeIcon SmallIcon List Detail Title Mc nh l: LargeIcon

3. Mt s phng thc thng dng


Tn Clear RemoveAt ngha Xa tt c ListView Xa b mt ct c ch s ( v tr) no

4. Mt s s kin thng dng


Tn SelectedIndexChanged ItemActivate ItemChecked ngha Xy ra khi ngi s dng thay i phn t c chn trong ListView Xy ra khi chn phn t trn ListView Khi Check vo biu tng Checkbox ca mi phn t trn iu khin ListView

52

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5. Mt s khi nim lin quan n ListView

Hnh 1: Minh ha v ListView

Hnh 2: Ct trong ListView

53

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Hnh 3: Khi nim ColumnHeader

Hnh 4: Khi nim ListViewItem

54

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Hnh 5: Khi nim SubItems

Hnh 6: Minh ha v Group

6. Minh ha ListView
55

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Gi s chng ta c mt iu khin ListView c tn l LV (thuc tnh Name=LV), v c thuc tnh View=Detail. Chng ta minh ha ListView qua mt s bc sau: Bc 1: ListView khi cha lm g.

Bc 2: Thm mt ct vo ListView
LV.Columns.Add("Name",100,HorizontalAlignment.Left); //Hoc 3 cu lnh di y //ColumnHeader ch = new ColumnHeader("clName"); //ch.Text = "Name"; //LV.Columns.Add(ch);

Bc 3: Thm ct th 2 vo ListView
LV.Columns.Add("Size",100,HorizontalAlignment.Left); //Hoc 3 cu lnh di y //ColumnHeader ch = new ColumnHeader("clSize"); //ch.Text = "Size"; //LV.Columns.Add(ch);

56

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 4: To hng mi v Add cc gi tr vo hng mi


ListViewItem lvi; lvi= new ListViewItem("TK4.doc"); lvi.SubItems.Add("30Kb"); LV.Items.Add(lvi); ////Hoc s dng 3 cu lnh sau //string[] HangMoi = new string[] { "TK4.doc", "30Kb" }; //ListViewItem lvi = new ListViewItem(Them); //LV.Items.Add(lvi);

57

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

7. S dng iu khin ListView qua mt s Code Gi s chng ta c mt form c tn: frmListView. Trn c cha mt s iu khin sau: iu khin ListView c tn listView1 (Chng ta tt c cc thuc tnh ca listView1 vi gi tr mc nh). Button btCheck: minh ha vic duyt cc hng c check trn ListView Buttonbt RemoveAtColumns: Minh ha xa mt ct trong ListView Buttonbt RemoveAtItems: Minh ha xa mt hng trong ListView Buttonbt ShowFile: Minh ha hin th tt c cc file trong mt th mc nn ListView Button btGroup: Minh ha v Group trong ListView Chng ta s minh ha s dng ListView qua s kin Click ca cc button trn. 7.1. To cc ct, hng cho ListView bng code
private void frmListView_Load(object sender, EventArgs e) { //t mt s thuc tnh cho iu khin ListView1 bng code //Bn ch c th nhn thy cc ct nu t thuc tnh View=Detail listView1.View = View.Details; listView1.GridLines = true; listView1.CheckBoxes = true;//Hin th checkbox: cc bn xem kt qu hinhg minh ha. //Thm 4 ct vo Listview //C th thm ct vo ListView theo cch ny listView1.Columns.Add("H v tn", 100, HorizontalAlignment.Center); listView1.Columns.Add("Qu qun", 100, HorizontalAlignment.Center); listView1.Columns.Add("Lp", 100, HorizontalAlignment.Center); //Cch 2: C th thm vo theo cch ny: S dng ColumnHeader ColumnHeader ch = new ColumnHeader("chNgaySinh"); 58

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit ch.Text = "Ngy sinh"; ch.TextAlign = HorizontalAlignment.Center; ch.Width = 100; listView1.Columns.Add(ch); //Thm hng th nht vo ListView string[] Them = new string[] { "Nguyn Vn Hi", "Hng Yn", "TK4N1", "29-03-1987" }; ListViewItem lv = new ListViewItem(Them); listView1.Items.Add(lv); //Thm hng th 2 string[] Them2 = new string[] { "Nguyn Vn Hnh", "H Ni", "TK4N1", "24-04-1987" }; ListViewItem lv2 = new ListViewItem(Them2); listView1.Items.Add(lv2); //Thm hng th 3 string[] Them3 = new string[] { "Phm Th Hnh", "Hi Dng", "TK4N1", "04-10-1988"}; ListViewItem lv3 = new ListViewItem(Them3); listView1.Items.Add(lv3); //Thm hng th 4 string[] Them4 = new string[] { "V Th Ho", "Bc Ninh", "TK4N1", "25-12-1987" }; ListViewItem lv4 = new ListViewItem(Them4); listView1.Items.Add(lv4); } Sau khi chy c hnh nh sau:

59

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

7.2. Duyt xem nhng hng no c Check

private void btCheck_Click(object sender, EventArgs e) { //Bn phi to ra mt Listview nh mc 7.1 trc MessageBox.Show("Tn cc sinh vin c Check l","Check",MessageBoxButtons.OK); //Duyt cc phn t c Check thng qua thuc tnh CheckedItems {

foreach (ListViewItem lvi in listView1.CheckedItems)


//Ly v phn t th my ( th my) ca ListViewItem (ca 1 hng): s dng SubItems //DataGridView <-> ListView MessageBox.Show(lvi.SubItems[0].Text);

} //Gi th bn chy v check th vi hng thy r kt qu

7.3. Xa mt Ct ti v tr no
60

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void btRemoveAtColumns_Click(object sender, EventArgs e) { //Ch : Tp cc column trong Listview l mt Collection nn c y cc phng thc ca mt Collection. //V d: Xa mt ct v tr no //Tt nhin bn phi to ra mt listview vi cc gi tr nh mc 7.1 listView1.Columns.RemoveAt(1); } //Gi th bn chy v nhn vo Button ny thy kt qa xem cc kt qu

Hnh 7.2: Columns Collection 7.4. Xa mt hng ti mt v tr no Hon ton tng t nh xa mt ct


61

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void btRemoveAtItems_Click(object sender, EventArgs e) { //Ch : Tp cc Items trong Listview l mt Collection nn c y cc phng thc ca mt Collection. //V d: Xa mt ct v tr no (tt nhin bn phi to ra mt listview vi cc gi tr nh mc 7.1) listView1.Items.RemoveAt(1); } //Gi th bn chy v nhn vo Button ny xem cc kt qu

Hnh 7.4: Items Collection 7.5. Duyt tt c cc file trong mt th mc v hin th nn ListView
private void btShowFile_Click(object sender, EventArgs e) {

62

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Listview (listView1) ny hin th tt c cc File trong C:\WINDOWS //Bn c th dng hp thoi FolderBrowserDialog duyt file trong th mc bt k m bn chn //Phng thc Clear xa ton b Listview listView1.Clear(); //Chn mt s thuc tnh cho Listview thng qua m lnh listView1.View = View.Details; listView1.FullRowSelect = true;//Cho php chn c hng nh hnh kt qu di listView1.GridLines = true; //Add cc ct vo Listview bng m lnh //Mi file c cc c tnh ca file: Tn, kch thc, kiu file (ReadOnly, System...) nn chng ta to ra cc ct tng ng listView1.Columns.Add("Number", 100, HorizontalAlignment.Left); listView1.Columns.Add("Name", 300, HorizontalAlignment.Left); listView1.Columns.Add("Size", 150, HorizontalAlignment.Left); listView1.Columns.Add("Type", 100, HorizontalAlignment.Left); //Nn khai bo i tng DirectoryInfo duyt file //DirectoryInfo l mt lp nm trong System.IO DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS"); //Khai bo i ly v S th t file: 1, 2, 3.... int i = 0; //Khai bo mt ListviewItem - Mt Hng ListViewItem lvi; //Duyt File () {

foreach (FileInfo f in dir.GetFiles("*.*"))


//Tng gi tr i nn 1 i++; 63

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Gn cc thnh phn cho lvi qua thuc tnh SubItems.Add lvi = new ListViewItem(i.ToString()); lvi.SubItems.Add(f.Name); lvi.SubItems.Add(f.Length.ToString()); lvi.SubItems.Add(f.Attributes.ToString()); //Sau khi gn phi Add vo Listview listView1.Items.Add(lvi);

} //Ht

Hnh 7.5: Kt qu sau khi nhn vo Button Show File 7.6. lm vic vi Group trong ListView
private void btGroup_Click(object sender, EventArgs e) { // tng: Chng ta mun a tt c cc file c cng thuc tnh vo mt nhm //lm vic vi nhm cc bn ch i tng ListViewGroup 64

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Xa Listview trc listView1.Clear(); //t mt s thuc tnh bng Code listView1.View = View.Details; //Khai bo 3 nhm ListViewGroup gArchive; ListViewGroup gSystem; ListViewGroup gNormal; //Add cc ct vo Listview bng m lnh listView1.Columns.Add("Number", 100, HorizontalAlignment.Left); listView1.Columns.Add("Name", 300, HorizontalAlignment.Left); listView1.Columns.Add("Size", 150, HorizontalAlignment.Left); listView1.Columns.Add("Type", 100, HorizontalAlignment.Left); //Add 3 nhm - Group vo Listview gArchive = new ListViewGroup("Archive"); gSystem = new ListViewGroup("System"); gNormal = new ListViewGroup("Normal"); listView1.Groups.Add(gArchive); listView1.Groups.Add(gSystem); listView1.Groups.Add(gNormal); //Listview ny hin th tt c cc File trong C:\WINDOWS //Nn khai bo i tng DirectoryInfo DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS"); //Khai bo i ly v S th t file: 1, 2, 3.... int i = 0; string ThuocTinhFile = ""; 65

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Khai bo mt ListviewItem-Mt Hng ListViewItem lvi; //Duyt file v a vo Group cc file cng thuc tnh foreach (FileInfo f in dir.GetFiles("*.*")) { i++; //Gn cc thnh phn cho lvi qua thuc tnh SubItems.Add lvi = new ListViewItem(i.ToString()); lvi.SubItems.Add(f.Name); lvi.SubItems.Add(f.Length.ToString()); //Ly v thuc tnh tp tin v x l ThuocTinhFile = f.Attributes.ToString(); lvi.SubItems.Add(ThuocTinhFile); //Nhm tp tin Archive if (ThuocTinhFile.StartsWith("Archive")) gArchive.Items.Add(lvi); //Nhm tp tin Archive if (ThuocTinhFile.StartsWith("System")) gSystem.Items.Add(lvi); //Nhm tp tin Archive if (ThuocTinhFile.StartsWith("Normal")) gNormal.Items.Add(lvi); //Sau khi gn phi Add vo Listview listView1.Items.Add(lvi); } //Ht- Kt qu xem hnh di

66

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Hnh 7.6: Group

7.7. Ly v gi tr ca mt (SubItems) bt k no trn ListView (s kin listView1_ItemActivate) Gi s chng ta c hnh nh sau:

67

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Chng ta mun ly thng tin v sinh vin Phm Th Hnh bn c th s dng on code sau:
private void listView1_ItemActivate(object sender, EventArgs e) { ListViewItem lvi = listView1.FocusedItem; MessageBox.Show(lvi.Text);//Ly ra gi tr text u tin //Ly v ct th 1 - Ct Qu qun (Ct trng ListView c ch s bt u = 0) string Cot1 = lvi.SubItems[1].Text; MessageBox.Show("Gi tr ct th 1: " + Cot1); //Ly v ct th 2 - Ct Lp string Cot2 = lvi.SubItems[2].Text; MessageBox.Show("Gi tr ct th 2: " + Cot2); //Gi th bn chy v Click vo mt hng xem xem kt qu //ng dng: Thng ng dng trong lp trnh CSDL: Hin h tt c cc cc thng tin (sinh vin ch hn) //nn ListView. khi ngi dng chn mt hng trn ListView th hin th cc gi tr tng ng nn 68

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //Cc Textbox. khi bn c th chnh sa cc thng tin v Update vo CSDL.... //................

69

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

V. DATAGRID VIEW ***


1. Chc nng iu khin DataGridView dng hin th d liu. 2. Mt s thuc tnh thng dng
Tn AutoSizeColumnsMode AutoSizeRowsMode BackGroundColor BorderStyle CellBorderStyle ColumnHeadersBorderStyle ColumnHeadersHeight ColumnHeadersVisible Nhn mt trong hai gi tr True hay False - True: Cho php hin th tiu cc ct - False: Khng cho php hin th tiu cc ct Lm vic vi ct (t tiu cho Headers, la chn kiu ct (Checkbox, Button, Image). Trong DataGridView mt ct c th l: Ct cc Button, Ct cc Checkbox Chn c s d liu hin th nn DataGridView Chn ngun d liu cho DataGridView (hai thuc tnh DataSource v DataMember hay i vi nhau) Chn mu cho li (cc hng, cc ct c ngn cch nhau bi li) Cho php/Khng cho php chn nhiu dng? Nhn mt trong hai gi tr True hay False - True: Cho php thay i gi tr cc cc phn t (cc hay cc Cell). - False: khng cho php thay i gi tr cc phn t. Chn kiu vin cho cc Hng (Rows). Nhn mt trong hai gi tr True hay False - True: Cho php hin th Headers ca hng(Ct u tin mp ngoi bn tri) - False: Ngc li ngha Cc kiu la chn vi Ct (t cc ch khc nhau) Cc kiu la chn vi Hng (t cc ch khc nhau) Chn mu nn cho DataGridView t kiu ng vin ngoi bao quanh cho DataGridView t ng vin cho cc

Columns

DataMember DataSource GridColor MultiSelect ReadOnly

RowHeadersBorderStyle RowHeaderVisible

70

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

3. Mt s s kin thng dng


Tn CellClick ngha Xy ra khi ngi dng nhn chn mt bt k no trn DataGridView (tt nhin DataGridView phi c d liu) Ch : Trong DataGridView th khi nim Cell

4. Mt s khi nim lin quan n DataGridView

Hnh 1: V d v DataGirdView

Hnh 2: Khi nim Columns trong DataGridView

71

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Hnh 3: Khi nim v Rows trong DataGridView

Hnh 4: Khi nim v Cells trong DataGridView

DataGridView Mng 2 chiu


C 2 cch truy xut n mt ( ly gi tr) trong DataGridView (cc bn ch hai cu lnh ny) Cch 1: Tn_DataGridView[Ch_s_ct, Ch_s_hng].Value Cch 2: Tn_DataGridView.Rows[Ch_s_hng].Cells[Ch_s_Ct].Value

72

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

V d: C mt DataGridView nh sau:

Chng ta mun ly gi tr ca mt bi en (Phm Th Hnh) chng ta c th s dng cu lnh sau (tn ca DataGridView l: dgSinhVienTK4): string str = dgSinhVienTK4[0, 2].Value.ToString(); Hoc string str = dgSinhVienTK4.Rows[2].Cells[0].Value.ToString();

73

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5. S dng iu khin DataGridView qua mt s Code Gi s chng ta c mt form c tn: frmDataGridView. Trn c cha mt s iu khin sau: iu khin DataGridView c tn dataGridView1(Chng ta tt c cc thuc tnh ca dataGridView1vi gi tr mc nh). Button btCreate: minh ha vic to DataGridView vi s hng v s ct xc nh Button btRemove: Minh ha xa mt ct, mt hng trong DataGridView Button btGet: Minh ha vic ly s hng v s ct trong DataGridView Button btAddCombobox: Minh ha vic Add mt ct l Combobox vo DataGridView Button btAddCheck: Minh ha vic Add mt ct l Checkbox vo DataGridView Giao din ca chng trnh nh sau:

Chng ta s minh ha s dng DataGridView qua s kin Click ca cc button trn. 5.1. To cc ct trong DataGridView (bng Code)
74

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //S kin Load ca Form private void frmDataGridView_Load(object sender, EventArgs e) { //t thuc tnh cho DataGridView thng qua m lnh dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;//Ch thuc tnh ny // thm cc ct vo DataGridView bn c th thm thng qua thuc tnh COLUMNS trn hp thoi Properties //Hoc bn c th thm bng Code dataGridView1.Columns.Add("clName", "H v Tn"); dataGridView1.Columns.Add("clQueQuan", "Qu qun"); dataGridView1.Columns.Add("clLop", "Lp"); dataGridView1.Columns.Add("clNgaySinh", "Ngay sinh"); //Thm mt hng mi vo (hng mi ny cha c d liu g) dataGridView1.Rows.Add(); //a d liu vo hng mi va to ra (t gi tr cho mt ) -> Cc bn ch c hai cch nh th ny dataGridView1[0, 0].Value = "Nguyn Vn Hi"; dataGridView1.Rows[0].Cells[1].Value = "Hng Yn"; dataGridView1[2, 0].Value = "TK4N1"; dataGridView1.Rows[0].Cells[3].Value = "29-03-1987"; } //Ht

sau khi chy chng trnh: form frmDataGridView s c kt qu nh sau:

75

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5.2. t s hng v s ct cho DataGridView

//S kin Load ca Form private void btCreate_Click(object sender, EventArgs e) { //t s hng v s ct cho DataGridView (V d: thit k trong chi c Caro) //V d: To mt DataGridView vi 50 hng v 50 Ct dataGridView1.ColumnCount = 50; //Ch thuc tnh ny dataGridView1.RowCount = 50; //Ch thuc tnh ny //Thit lp rng cho cc for (int i = 0; i < 50; i++) { dataGridView1.Columns[i].Width = 15; dataGridView1.Rows[i].Height = 15; } } // xong ri. Gi th bn chy xem no

5.3. Xa mt hng (hay 1 ct, hay tt c cc hng cc ct) ca DataGridView


76

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void brRemove_Click(object sender, EventArgs e) { //Tp cc hng, cc ct trong DataGridView l mt Collection //Nn n c y cc thuc tnh v phng thc ca mt Collection //Xa hng th 1 (c ch s l 0) dataGridView1.Rows.RemoveAt(0); //Xa tt c cc hng: dataGridView1.Rows.Clear(); //Tt nhin nu chng ta c 2 hng th chng ta khng th thc hin cu lnh: dataGridView1.Rows.RemoveAt(2); //Xa ct th 2 (c ch s l 1) dataGridView1.Columns.RemoveAt(1); //Xa tt c cc Ct: dataGridView1.Columns.Clear();

Rows Collection

77

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Columns Collection

5.4. Ly v s hng v s ct hin c ca DataGridView

private void btGet_Click(object sender, EventArgs e) { //Ly v s hng v s ct int i = dataGridView1.Rows.Count; //Ly v s hng int j = dataGridView1.Columns.Count;//Ly v s ct //Thng bo string HC = "S hng: " + i.ToString() +'\n' + "S ct: " + j.ToString(); MessageBox.Show(HC);

5.5. Add thm mt ct l Combobox vo DataGridView


78

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit private void frmDataGridView_Load(object sender, EventArgs e) { //t thuc tnh cho DataGridView thng qua m lnh dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;//Ch thuc tnh ny // thm cc ct vo DataGridView bn c th thm thng qua thuc tnh COLUMNS trn hp thoi Properties //Hoc bn c th thm bng Code dataGridView1.Columns.Add("clName", "H v Tn"); dataGridView1.Columns.Add("clQueQuan", "Qu qun"); dataGridView1.Columns.Add("clLop", "Lp"); dataGridView1.Columns.Add("clNgaySinh", "Ngay sinh"); //Thm mt hng mi vo (hng mi ny cha c d liu g) dataGridView1.Rows.Add(); //a d liu vo hng mi va to ra (t gi tr cho mt ) -> Cc bn ch c hai cch nh th ny dataGridView1[0, 0].Value = "Nguyn Vn Hi"; dataGridView1.Rows[0].Cells[1].Value = "Hng Yn"; dataGridView1[2, 0].Value = "TK4N1"; dataGridView1.Rows[0].Cells[3].Value = "29-03-1987"; } //Phng thc a d liu vo Combobox private static void AddData(ref DataGridViewComboBoxColumn comboboxColumn) { { comboboxColumn.Items.AddRange( new string[] { "SV1", "SV2", "SV3"}); } } 79

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

// Add thm mt ct l Combobox vo DataGridView!!!


private void btAddCombobox_Click(object sender, EventArgs e) { //Khai bo mng lm DataSource cho Combobox string[] Mang = { "SV1", "SV2", "SV3" };

//Khai bo mt ct thuc kiu Combobox DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn(); //t thng s v a d liu vo Combobox comboboxColumn.HeaderText = "Ct Combobox"; AddData(ref comboboxColumn);// Cu lnh ny<->comboboxColumn.DataSource = Mang; //Cu lnh Insert ny a ct vo v tr u ca DataGridView dataGridView1.Columns.Insert(0, comboboxColumn); // Add mt ct vo v tr cui cng ca DataGridView (Cha c d liu). comboboxColumn = new DataGridViewComboBoxColumn(); comboboxColumn.HeaderText = "Ct Combobox "; dataGridView1.Columns.Add(comboboxColumn); //S dng phng thc Add m cha c thng s comboboxColumn.DisplayIndex = 3; //Th mc nh a vo cui DataGridView cn nu c //comboboxColumn.DisplayIndex = 3; th a vo ct 3

Sau khi chy c kt qu nh sau:

80

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5.5. Add thm mt ct l Checkbox vo DataGridView

//S kin Load ca Form private void frmDataGridView_Load(object sender, EventArgs e) { //t thuc tnh cho DataGridView thng qua m lnh dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;//Ch thuc tnh ny // thm cc ct vo DataGridView bn c th thm thng qua thuc tnh COLUMNS trn hp thoi Properties //Hoc bn c th thm bng Code dataGridView1.Columns.Add("clName", "H v Tn"); dataGridView1.Columns.Add("clQueQuan", "Qu qun"); dataGridView1.Columns.Add("clLop", "Lp"); dataGridView1.Columns.Add("clNgaySinh", "Ngay sinh"); //Thm mt hng mi vo (hng mi ny cha c d liu g) dataGridView1.Rows.Add(); 81

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //a d liu vo hng mi va to ra (t gi tr cho mt ) -> Cc bn ch c hai cch nh th ny dataGridView1[0, 0].Value = "Nguyn Vn Hi"; dataGridView1.Rows[0].Cells[1].Value = "Hng Yn"; dataGridView1[2, 0].Value = "TK4N1"; dataGridView1.Rows[0].Cells[3].Value = "29-03-1987";

//Add private void btAddCheckbox_Click(object sender, EventArgs e) { DataGridViewCheckBoxColumn ch = new DataGridViewCheckBoxColumn(); { ch.HeaderText = "Check"; //Chn v tr hin th ca ct: Ct th 0, 1 hay 2... ch.DisplayIndex = 3; //C cho php Chn nhiu hay khng? (Ch Check c vo mt Checkbox) ch.FalseValue = true; //Nu cho php chn nhiu th dng lnh ny: ch.TrueValue = true;

} //Chn vo DataGridView dataGridView1.Columns.Add(ch); // <-> dgSinhVienTK5.Columns.Insert(3,ch);

Sau khi chy c kt qu nh sau:

82

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

5.6. Ly gi tr ca mt bt k bn chn trn DataGridView Gi s chng ta c mt DataGridView c cc gi tr nh sau:

Yu cu: Chng ta mun ly ra gi tr ca mt (Cells) bt k m bn chn Gii quyt: S dng s kin CellClick ca iu khin DataGridView nh sau:
83

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit //CC BN HC CNG NGH NET HY NH ON M NY private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //Ly v v tr ca Hng v ct ang c chn //Hai cu lnh ny QUAN TRNG cc bn ch int Hang = e.RowIndex; //<-> int HangHienTai = dataGridView1.CurrentRow.Index; int Cot = e.ColumnIndex; //Ly ra v tr (Hng v ct) m bn chn string ViTriBanChon = '\n' + "Hng: " + Hang.ToString() + '\n' + "Ct: " + Cot.ToString(); MessageBox.Show("V tr ang chn: " + ViTriBanChon); //Ly ra gi tr ca (Cells) m bn chn string GiaTri = dataGridView1[Cot, Hang].Value.ToString(); //Hoc: string GiaTri = dataGridView1.Rows[Hang].Cells[Cot].Value.ToString(); MessageBox.Show(" bn chn c gi tr: "+GiaTri); //Gi cc bn chy th xem no? ^.^

5.7. Bt s kin SelectedIndexChanged ca ct l combobox


//Khai bo kiu ct DataGridViewComboBoxColumn cbcl; private void frmDataGridView_Load(object sender, EventArgs e) { //t mt s thuc tnh thng qua Code (sau khi Add cc ct vo) dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; ///t s ct //dataGridView1.ColumnCount = 10; //dataGridView1.RowCount = 10; 84

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit ///Add thm cc ct vo dataGridView1.Columns.Add("clMaSV", "M SV"); dataGridView1.Columns.Add("clTen", "Tn"); dataGridView1.Columns.Add("clLop", "Lp"); dataGridView1.Columns.Add("clNgaySinh", "Ngy sinh"); dataGridView1.Columns.Add("clQuequan", "Qu qun"); ///Add thm mt ct vo DataGridView (Cha c gi tr) dataGridView1.Rows.Add(); dataGridView1[0, 0].Value = "M01"; dataGridView1[1, 0].Value = "Nguyn Tun Anh"; dataGridView1[2, 0].Value = "Tk4N1"; dataGridView1[3, 0].Value = "13-02-1986"; dataGridView1[4, 0].Value = "Hng Yn"; //Thm mt hng mi - Cch 2 string[] str = new string[5] { "M02", "Nguyn Th Bch", "TK4N2", "14-02-1985", "Hng Yn"}; dataGridView1.Rows.Add(str); ///Phnng thc Add, remove...Mt ct hay hng ///Ly gi tr ca mt bt k: S kin CellClick ///Ly ra gi tr ca mt v hin th nn cc textbox ///Ly s kin ca ct l Combobox ///----------------------------------------------------------------------------------//Add thm mt ct l combobox vo string[] Mang = new string[5] { "M01", "M02", "M03", "M04", "M05" }; // cbcl= new DataGridViewComboBoxColumn(); 85

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit cbcl.HeaderText = "Ct Combobox"; cbcl.Items.AddRange(Mang); dataGridView1.Columns.Add(cbcl);//Add vo v tr cui cng (Ct cui cng) cbcl.DisplayIndex = 2; //Add+DisplayIndex th a vo v tr ch nh <->Insert (nhng # Insert ch: ch s vn l cui cng) //Cn hin th so ta ch nh //Add thm mt ct vi v tr ch nh: Insert cbcl = new DataGridViewComboBoxColumn(); cbcl.HeaderText = "Ct Combobox2"; cbcl.Items.AddRange(Mang); dataGridView1.Columns.Insert(0, cbcl);

//-----------------------------------------------------------------------------------------------------------------//Ly v s kin ca Combobox (Ct trong DataGridView) ComboBox Combo; int i = 1; void SuKien(object sender, EventArgs e) { string str = Combo.Text; if(i==1) { MessageBox.Show(str); i = 0; } } //Quan trng private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { 86

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit if (e.Control is ComboBox) { Combo = (ComboBox)e.Control; Combo.SelectedIndexChanged += new EventHandler(SuKien); i = 1; } } //S kin CellClick ly v gi tr ca mt private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { int Cot = e.ColumnIndex; int Hang = e.RowIndex; if (dataGridView1[Cot, Hang].Value != null) { } MessageBox.Show(dataGridView1[Cot, Hang].Value.ToString());

} //End

87

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

DEPLOYMENT ***
1. Cc bc to b ci t vi Setup Wizard (VS2008)
Bc 1: M Project (vit bng C# hay VB.NET) m bn mun to b ci t. Bc 2: Add thm mt Project vo bng cch:

88

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 3: Chn loi Project nh di y (C th l Setup Wizard hay Setup Project u c). y ti chn l Setup Wizard

89

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 4: Trnh Wizard s xut hin. Lm ln lt theo cc bc nh hnh di y:

90

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

91

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Nhn Finish kt thc qu trnh Wizard Bc 5: Giao din s nh hnh di. Trong khung thoi ny ch cc folder: Application Folder: Mi th cha trong Folder khi ci t (bng file Setup c to ra) th s c trong th mc ci t trong C:\Program File\Tn_Folder_Ci_t C th to ra cc th mc mi v thm vo cc file vo trong th mc ny (Nht l vi cc ng dng v CSDL th phi lm nh vy mi gii quyt vn ng dn ng ca CSDL). Users Desktop: Dng to ra Shortcut ca ng dng trn Desktop. Users Programs Menu: Dng to ra cc folder v Icon trn menu Start Programs

92

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

93

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 6: Cu hnh mt s thng s (Xem hnh):

94

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 7: To Shortcut cho ng dng, Shortcut ny s hin ra Desktop khi ng dng ci t xong.

Bc 8: Di chuyn Icon va to vo th mc Userts Desktop


95

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 9: To th mc con bn trong th mc Users Programs Menu v Lp li vic to Shortcut sau di chuyn Shortcut vo th mc con va to trn.

96

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 10: To ra cc Folder trong th mc Application Folder v Add cc file (CSDL, Text) vo cc th mc ny (v d nu CSDL t trong Debug\FolderCSDL\CSDL.mdb th to folder FolderCSDL sau Add file CSDL.mdb vo Folder ny th l gii quyt vn ng dn ng CSDL khi to b ci t)

97

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 11: La chn th mc ci t

98

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 12: Ty bin cc ci t (Version, Tn tc gi...)

99

Chuyn 02: Cng ngh .NET GV: Hong Quc Vit

Bc 13: Bin dch:

2. Cc bc to b ci t vi Setup Project Hon ton tng t so vi Setup Wizard

100

You might also like