Professional Documents
Culture Documents
Win Form
Win Form
Win Form
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
ControlBox
Font
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
ShowInTaskbar
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.
-3-
//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 }
//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"); }
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"); }
//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"); }
-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
-6-
Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit
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()); }
//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
-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
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
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 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
- 12 -
Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit
Url
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 }
//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
//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; } }
- 15 -
Chuyn 02: Cng ngh .NET Gio vin: Hong Quc Vit
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
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 -
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); }
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); }
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; }
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(); }
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 -
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);
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 -
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
ngha
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 -
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); //...................................................
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 -
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
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
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 -
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 -
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 -
//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
// 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;
// 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 -
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
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.3. ToolStripCombobox Cc thuc tnh, phng thc, s kin ca ToolStripCombobox ging vi iu khin Combobox Xem li iu khin Combobox
33
3.4. ToolStripTextbox (Textbox) Cc thuc tnh, phng thc, s kin ca ToolStripTextbox ging vi iu khin Combobox Xem li iu khin Textbox
34
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
CheckFileExists
CheckPathExists
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
CheckFileExists
CheckPathExists
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
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
Filter EnableRaisingEvents
IncludeSubdirectories
NotifyFilter
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
BackColor AutomaticDelay
AutoPopDelay
InitialDelay
ReshowDelay IsBalloon
TooltipIcon TooltipTitle
Icon
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
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
Columns
ContextMenuStrip FullRowSelect
GridLines
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
52
53
54
6. Minh ha ListView
55
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
57
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
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 {
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
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 () {
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
67
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
Columns
RowHeadersBorderStyle RowHeaderVisible
70
Hnh 1: V d v DataGirdView
71
72
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
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
75
//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
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
Columns Collection
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);
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
//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
80
//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;
82
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? ^.^
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
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
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
90
91
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
93
94
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
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
Bc 11: La chn th mc ci t
98
99
100