Professional Documents
Culture Documents
Slide bi ging
Ch
Ci t mi trng VS 2005/2008 To ng dng mu Thay i thng tin ng dng S dng th vin MSDN Build/Run 1 ng dng. Thao tc trn mn hnh View
Slide 2
Ci t VS 2005/2008
Ci t VS 2005/2008 Ci t th vin MSDN 2005/2008
Ci t VS 2005/2008
Slide 3
Slide 4
Ci t VS 2005/2008
To ng dng mu
Bc 1: Chy mi trng .NET 2005
Slide 5
Slide 6
To ng dng mu
Bc 2: To 1 project
To ng dng mu
Slide 7
Slide 8
To ng dng mu
Cu trc 1 ng dng (Solution)
To ng dng mu
Cu trc 1 Project
Solution
Project 1 Project 2 Project 2
Exam01
ConsoleApplication1
Th mc Class files
Class files
Slide 10
To ng dng mu
Solution View: Xem cu trc ng dng
To ng dng mu
Solution view
Slide 11
Slide 12
To ng dng mu
Class view :
Xem cch t chc bn trong ca 1 ng dng
To ng dng mu
Class View:
View Class View
Solution
Project Preferences Namespace Namespace Class Class
Slide 13 Slide 14
To ng dng mu
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Console Project
Project Template l Console Application Chy trn mi trng DOS Cc lp s dng: System.Console
Console.Write() : Dng xut ra mn hnh gi tr. V d 1/ System.Write(Hello World); 2/ int x = 10; System.Console.Write(x); 3/ int x = 10, y = 20; System.Console.Write({0} + {1} = {2}, x, y, x+y);
Slide 21 Slide 22
Console Project
Console.WriteLine(): In v xung hng Console.Read() : c tng k t v tr v m ASCII ca k t : V d: int kt = Console.Read(); //Nhp a th kt=97. Console.ReadLine(): c mt chui k t
Slide 23
Console Project
V d: string str = Console.ReadLine(); //c chui d liu Console.Write(str.Length); //In chiu di ca chui for (int i = 0; i < str.Length; i++) //Xut tng k t Console.Write(str[i]); int x = int.Parse(str); //p kiu chui v s nguyn Console.Write(x);
Slide 24
Slide 26
Biu tng
Slide 28
Slide 29
Slide 30
Slide 31
Slide 32
Slide 34
Slide 35
Slide 36
Tham kho
Slide bi ging C#, H KHTN TpHCM H Hon Kim Slides C# Slides, Aptech
Slide 37
Slide 38
Ni dung
Khi nim c bn C#
Lng Trn Hy Hin hienlth@hcmup.edu.vn
Gii thiu C# Nhng c s ngn ng C# Cu trc Lp v i tng Tha k v a hnh Giao din Array, Indexer v Collection X l li & exception (bit l)
Slide 2
Gii thiu C#
C# l mt ngn ng n gin:
Loi b nhng phc tp c trong Java hay C++ nh macro, template, a k tha, virtual base class Ging v din mo c php C v C++ nhng c ci tin n gin hn (V d : :: , . , ch cn .
Gii thiu C#
C# l ngn ng hng i tng:
ng gi (encapsulation) K tha (inheritance) a hnh (polymorphism)
C# l mt ngn ng hin i:
C y cc tnh nng : X l ngoi l, thu gom b nh t ng, kiu d liu an ton, bo mt m Slide 3 ngun
Gii thiu C#
C# c t t kho :
Nhng c s ngn ng C#
Cc ghi ch : // (1 dng) , /* (nhiu dng) */ #region : T kho using: gip s dng lp c sn ca khng gian tn no tin li hn
VD : using System.IO; T s dng c cc lp lm vic vi lung d liu, tp tin, th mc a v.v
Nhng c s ngn ng C#
Phn bit ch hoa ch thng C cc kiu :
Dng sn : byte, char, sbyte, int, float, double Hng : const int PI = 3.1416; Lit k : enum Ngay {Hai,Ba,Tu,Nam,Sau,Bay,CN};
Khai bo hng:
const int a = 20;
Slide 9
Kiu d liu
Value Type - Kiu d liu c bn: kiu d liu khc lp i tng Reference Type - Kiu tham chiu: kiu d liu l lp i tng
- j vn cn trong phm vi
Slide 11
Slide 12
short
System.Int16
-2,147,483,648:2,147,483,647 (-231:231-1)
long
System.Int64
13
14
V d
Significant Figures Range (approxi mate)
1.5 10-45 to 3.4 1038 5.0 10-324 to 1.7 10308 1.0 10-28 to 7.9 1028
Float
System.Single
Double decimal
System.Double System.Decimal
long x = 0x12ab;// ghi theo hexa uint ui = 1234U; long l = 1234L; ulong ul = 1234UL; float f = 12.3F; decimal d = 12.30M ; //c th vit decimal d = 12.30m;
15
Slide 16
char
System.Char
Reference Type
Lp i tng Object (System.Object): l lp tru tng, l lp cha ca tt c cc lp. Khi nh ngha mt lp A. Mc nhin A s ly Object lm lp cha. Reference Type:
Kiu lp: Object, String, CHocSinh, CLopHoc,
Namespace
Namespace cung cp cho cch t chc quan h gia cc lp v cc kiu khc. Namespace l cch m .NET trnh n vic cc tn lp, tn bin, tn hm trng tn gia cc lp lp.
namespace CustomerPhoneBookApp {
using System; public struct Subscriber { // Code for struct here... }
Slide 20
Nhng c s ngn ng C#
To vng tn (namespace)
Namespace
T kho using gip gim vic phi g nhng namespace trc cc hm hnh vi hoc thuc tnh. VD: using Wrox.ProCSharp; Ta c th gn b danh cho namespace C php : using alias = NamespaceName;
Slide 21
Slide 22
Console I/O
Console.Write() - Vit mt gi tr ra ca s window Console.WriteLine() - tng t trn nhng s t ng xung hng khi kt thc lnh Console.ReadLine() c mt chui t console
Cu lnh iu kin
Cu lnh iu kin:
if: ging C/C++ switch: ging C/C++
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Vng lp
Vng lp:
do while: ging C/C++ while: ging C/C++ for: ging C/C++ foreach: khc C/C++
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc cu trc iu khin
Cc ton t
Category Arithmetic Logical String concatenation Increment and decrement Bit shifting Comparison Assignment Operator +-*/% & | ^ ~ && || ! + ++ -<< >> == != < > <= >= = += -= *= /= %= &= |= ^= <<= >>=
Cc ton t (tt)
Category Member access (for objects and structs) Indexing (for arrays and indexers) Cast Conditional (the Ternary Operator) Object Creation Type information Overflow exception control Indirection and Address Operator . [] () ?: new sizeof (unsafe code only) is typeof as checked unchecked * -> & (unsafe code only) []
Cc ton t (tt)
Shortcut Operator x++, ++x x--, --x x += y x -= y x *= y x /= y Tng ng x=x+1 x=x-1 x=x+y x=xy x=x*y x=x/y
Cc ton t (tt)
Shortcut Operator x %= y x >>= y x <<= y x &= y x |= y x ^= y Tng ng x=x%y x = x >> y x = x << y x=x&y x=x|y x=x^y
Phng thc
Khai bo phng thc (hm) Truyn tham s dng in () Truyn tham s dng out Truyn tham s dng ref
TinhDiemTrungBinh(ref hs);
Chuyn i kiu
Chuyn i kiu chui sang cc kiu d liu khc
<Kiu d liu>.Parse(chui) V d: string s; s ="123.45"; float f = Single.Parse( s); double d = Double.Parse(s2); short i = Int16.Parse(s); int j = Int32.Parse(s); long k = Int64.Parse(s);
Chuyn i kiu
Chuyn i kiu d liu s sang kiu chui
Nguyn tc <tn bin>.ToString( ) ; V d
int i = 231 ; float j = 34.56f ; //ngm nh l double !!! String kq; kq = " i= "+ i.ToString() + " va j = "+ j.ToString(); Console.WriteLine(kq);
V d
string S = hello woRld; string u = S.ToUpper(); char c = S[1]; // c = e int l = S.Substring(0,4).Length ; //thay v ghi (S.Substring(0,4)).Length
Mng
Mng 1 chiu Mng 2 chiu Mng nhiu chiu Mng Jagged Array
Mng 1 chiu
C php: type[ ] array-name; V d: int[] integers; // mng kiu s nguyn integers = new int[32]; integers[0] = 35;// phn t u tin c gi tr 35 integers[31] = 432;// phn t 32 c gi tr 432 string[] myArray = {"first element", "second element", "third element"};
Mng 2 chiu
C php: type[,] array-name; V d: int[,] myRectArray = new int[2,3]; int[,] myRectArray = new int[,]{ {1,2},{3,4},{5,6},{7,8}}; //mng 4 hng 2 ct string[,] beatleName = { {"Lennon","John"}, {"McCartney","Paul"}, {"Harrison","George"}, {"Starkey","Richard"} };
Struct
Struct l kiu Value Type khng phi l Reference Type c th khng cn s dng t kha new. Trong Struct c th nh ngha cc phng thc (ging Class). Trong Struct, trnh bin dch lun lun cung cp mt constructor khng tham s mc nh, v khng cho php thay th. Struct khng h tr tha k.
Struct
struct StrHocSinh { public int MaSo; public string HoTen; public double Toan; public double Van; public double DTB; public StrHocSinh(int ms, string ht, double t, double v) { MaSo = ms; HoTen = ht; Toan = t; Van = v; DTB = (t+ v)/2; } }
Cu Trc
Slide 68
Lp v i tng
OOP in C#
Lng Trn Hy Hin hienlth@hcmup.edu.vn http://fit.hcmup.edu.vn/~hienlth
Slide 69
Slide 70
Lp v i tng
Phng thc thit lp (Constructor) Phng thc thit lp sao chp Phng thc hu S dng using (hm hu t ng gi trong thi gian sm nht)
Slide 72
Slide 71
Slide 73
Slide 74
Phng thc hy
C# cung cp c ch thu dn (garbage collection) v do vy khng cn phi khai bo tng minh cc phng thc hy. Phng thc Finalize s c gi bi c ch thu dn khi i tng b hy. Phng thc kt thc ch gii phng cc ti nguyn m i tng nm gi, v khng tham chiu n cc i tng khc.
Slide 75
Slide 76
Hm hy
class MyClass : IDisposable {
public void Dispose() { // implementation }
Hm hy (tt)
Lp s thc thi giao din System.IDisposable, tc l thc thi phng thc IDisposable.Dispose(). Khng bit trc c khi no mt Destructor cgi. C th ch ng gi thu dn rc bng cch gi phng thc System.GC.Collect(). System.GC l mt lp c s .NET m t b thu gom rc v phng thc Collect() dng Slide 78 gi b thu gom rc.
Slide 77
Con tr this
T kha this dng tham chiu n th hin hin hnh ca mt i tng
public void SetYear( int Nam) {
this.Nam = Nam;
Thamchiu this ny c xem l con tr n n tt cc phng thc khng c thuc tnh tnh trong mt lp.
Slide 79
Tham chiu
Tham chiu
Trong lp Time
S dng
S dng Property:
Nguoi A = new Nguoi(); A.HoTen = Lng Trn Hy Hin; n; string tentoi = A.HoTen; //t gi tr //ly gi tr
Slide 81
Slide 82
Hng i tng
public class BankAccount{ protected string ID; protected string Owner; protected decimal _Balance; public BankAccount(string ID, string Owner) { this.ID = ID; Fields this.Owner = Owner; this._Balance = 0; } public void Deposit(decimal Amount) { _Balance+=Amount; } public void Withdraw(decimal Amount) { _Balance-=Amount; } public decimal Balance { get { return _Balance; } } }
Thuc tnh ch c
Slide 84
Slide 83
Hng i tng
class Program {
static void Main(string[] args) { BankAccount acc= new Account(1606201007676", Hy Hien"); acc.Deposit(1000); acc.Withdraw(100); Console.WriteLine("Balance: {0}", acc.Balance); //myAcct.Balance=10000; Console.ReadLine(); }
Chng hm (overload)
Khng chp nhn hai phng thc ch khc nhau v kiu tr v. Khng chp nhn hai phng thc ch khc nhau v c tnh ca mt thng s ang c khai bo nh ref hay out.
}
85 Slide 86
S tha k
1 class ch c th k tha t 1 class c s 1 class c th k tha t nhiu Interface T kha sealed c dng trong trng hp khai bo class m khng cho php class khc k tha.
a hnh
to mt phng thc h tnh a hnh:
khai bo kha virtual trong phng thc ca lp c s
Slide 87
Slide 88
Gi cc hm lp c s
C php: base.<methodname>() class CustomerAccount { public virtual decimal CalculatePrice() { // implementation } } class GoldAccount : CustomerAccount { public override decimal CalculatePrice() { return base.CalculatePrice() * 0.9M; } }
Slide 90
Lp c s tru tng
abstract class Building { public abstract decimal CalculateHeatingCost(); // abstract method }
Abstract class
public abstract class BankAccount { public abstract bool IsSufficientFund(decimal Amount); public abstract void AddInterest(); }
Mt lp abstract khng c th hin v mt phng thc abstract khng c thc thi m phi c overriden trong bt k lp tha hng khng abstract no Nu mt lp c phng thc abstract th n cng l lp abstract Mt phng thc abstract s t ng c khai bo Slide 91 virtual.
Lp Object
L lp c bn ca .NET, mc nh mi lp nu khng ni g th hiu l k tha t Object
Cho php nhng i tng cung cp ring nhng hm bm cho s dng tp hp GetType() Cung cp kiu ca i tng ToString() Cung cp chui th hin ca i tng Finalize() Dn dp cc ti nguyn MemberwiseClone() To mt bn sao t i tng Slide 93
Mt interface c nh ngha nh mt hp ng, do , nu mt class hoc mt struct ci t 1 interface th phi ci t tt c cc tnh nng c khai bo trong interface . C th hiu interface nh l mt lp tru tng hon ton (tt c cc phng thc u tru tng). Khi mt class ci t 1 interface th coi nh n c k tha t lp tru tng ni trn. Slide 94
Giao din
To mt giao din
Giao din
Cch s dng :
Ton t is: is: kim tra xem i tng c c h tr giao din hay khng (VD doc is IStorable) Ton t as: as: Kim tra v gn
Slide 95
Slide 96
X l li
Chng trnh no cng c kh nng gp phi cc tnh hung khng mong mun
ngi dng nhp d liu khng hp l a cng b y file cnm b kha i s cho hm khng hp l
X l nh th no?
Mt chng trnh khng quan trng c th dng li Chng trnh iu khin khng lu? iu khin my bay? Slide 100
Slide 99
X l li truyn thng
X l li truyn thng thng l mi hm li thng bo trng thi thnh cng/tht bi qua mt m li
Bin ton cc (chng hn errno) Gi tr tr v
int remove ( const char * filename );
Exception (ngoi l)
Exception ngoi l l c ch thng bo v x l li gii quyt c cc vn k trn Tch cphn x l li ra khi phn thut ton chnh Cho php 1 hm thng bo v nhiu loi ngoi l
Khng phi hm no cng phix l li nu c mt s hm gi thnh chui, ngoi l ch ln c x l ti mt hm l
Khng th b qua ngoi l,nu khng, chng trnh s kt thc Tm li, c ch ngoi l mm do hn kiu x l li truyn thng
Slide 102
X l ngoi l
C# cho php x l nhng li v cc iu kin khng bnh thng vi nhng ngoi l. Ngoi l l mt i tng ng gi nhng thng tin v s c ca mt chng trnh khng bnh thng Khi mt chng trnh gp mt tnh hung ngoi l mt ngoi l. Khi mt ngoi l c to ra, vic thc thi ca cc chc nng hin hnh s b treo cho n khi no vic x l ngoi l tng ng c tm thy Mt trnh x l ngoi l l mt khi lnh chng trnh c thit k x l cc ngoi l m chng trnh pht sinh
Slide 103
X l ngoi l
Nu mt ngoi l c bt v c x l:
chng trnh c th sa cha c vn v tip tc thc hin hot ng in ra nhng thng ip c ngha in ra nhng thng ip c ngha
Slide 104
Exception
Slide 105
Slide 106
V d 02 - Throw
Slide 107
Slide 108
V d 02 Throw (tt)
Slide 109
Slide 110
V d:
class Test { static void Main(string[] args) { Test t = new Test(); t.TestFunc(); } public double DoDivide(double a, double b) { if (b == 0) throw new System.DivideByZeroException(); if (a == 0) throw new System.ArithmeticException(); return a / b; } //Cn tip }
V d (tt)
public void TestFunc() { try { double a = 5; double b = 0; Console.WriteLine("{0} / {1} = {2}", a, b, DoDivide(a, b)); } catch (System.DivideByZeroException) { Console.WriteLine("DivideByZeroException caught!"); } catch (System.ArithmeticException) { Console.WriteLine("ArithmeticException caught!"); } catch{ Console.WriteLine("Unknown exception caught"); } }
Slide 111
Slide 112
Cu lnh finally
on chng trnh bn trong khi finally c m bo thc thi m khng quan tm n vic khi no th mt ngoi l c pht sinh
try
try-block
catch
catch-block
3. 4.
finally
finally-block
Slide 113
5.
Trng thi li c x l trong khi catch vo cui ca khi catch, vic thc thi c chuyn mt cch t ng n khi finally Slide 114 khi finally c thc thi
Tham kho
Slide bi ging C#, H KHTN TpHCM H Hon Kim Slides C# Slides, Aptech
To ngoi l :
Slide 115
Slide 116
Windows Form
Lng Trn Hy Hin hienlth@hcmup.edu.vn
Slide 2
Window Form
To
Window Form
Namespace: System.Windows.Forms
3 4
Window Form
ch Design Form ( 1 ): ToolBox 2 cho ta chn a vo Form tt c cc control mong mun Solution Explorer: cho bit cu trc mt solution Properties: cho bit thuc tnh ca tng control Error List: hin th cc danh sch li khi bin dch F5: Start Debugging; Ctrl + F5: Start Without Debugging
Slide 5
Slide 6
Properties
1 2
Slide 7
Slide 8
Form
Thm mi mt Windows Form
Slide 9
Slide 10
To i tng
Slide 12
Slide 13
Slide 14
Phn x l
Khi click vo Add -> cng 2 gi tr v xut kt qu Thc hin
Button Add cung cp s kin click Form s c cnh bo khi Add c click Form s ly d liu t 2 textbox v cng -> kt qu
C ch event
Button a ra s kin click: i tng publish Form quan tm n s kin click ca button, Form c s phn x l ngay khi button click. Phn x l ca form gi l Event Handler Form ng vai tr l lp subscribe
Slide 15
Slide 16
S kin click
Vit phn x l
Phn x l ca Form1 khi button click
Ly gi tr ca 2 textbox, cng kt qu v xut ra MeesageBox
Slide 19
Slide 20
Mu nn ca control nh nn ca control Mu hin th text trn form Xc nh khi control trng thi enable Xc nh khi control nhn focus Font hin th text trn control Th t tab ca control Nu true, user c th s dng tab select control Text hin th trn form Canh l text trn control Xc nh hin th control
Enable: thit lp trng thi truy cp ca control Visible: n control trn form, c th dng phng thc Hide Anchor:
Neo gi control v tr xc nh Cho php control di chuyn theo v tr
Visible
Form Properties
Tn thuc tnh BackColor/ForeColor BackGroundImage AcceptButton CancelButton Controls nh nn Nt c chn kch hot s kin click khi ngi dng click Enter Nt c chn kch hot s kin click khi ngi dng click Esc Danh sch cc control con ca n. Cho php ngi dng thm hoc xa ng controls Chn loi window form m ca window form
Slide 23
Form Properties
ngha Tn thuc tnh AutoSize CauseValidation ngha Cho php ko dn form Cho php cc control con ca n c th pht sinh s kin Validate. Dng kim tra d liu hp l. Cho php Form hin trn tt c cc form khc {Normal, Minimized, Maximized}. Th hin ca Form khi xut hin Thit lp con tr chut Thit lp Icon ca form
Mu nn / Mu ch
FormBorderStyle Opacity
Form Method
Tn hm Show() ShowDialog() ngha Sau khi dialog hin ln, ngi dng c th chn focus vo control khc Sau khi dialog hin ln ngi dng khng th focus vo cc control khc. Kiu d liu tr v: DialogResult. ng Dialog ng dialog v tr v kt qu tng ng OK ng dialog v tr v kt qu tng ng Cancel.
Form Event
Tn hm Load() ngha S kin c kch hot khi Form load xong cc control. S kin ny c bt khi ngi dng mun khi to bin hoc gi tr trong Form S kin ny c gi khi Form thc hin v li. (Di chuyn chut, phng to, thu nh,..) (S trnh by chi tit trong GDI +) Cc s kin v phm Cc s kin chut
Slide 26
Paint()
Form Event
Click Click DoubleClick KeyDown MouseHover Paint Resize
Slide 27
FormBorderStyle
Fixed3D
FixedDialog
FixedSingle
Slide 28
Button t do
Slide 30
Slide 31
Slide 32
Dock = Top
TextBox
Right Bottom Dock = Fill TextBox.Multiline = True
Left
Fill
Dock = Bottom
None
Slide 33 Slide 34
Cc lp c s
System.Windows.Forms.Control - cha chc nng c bn ca thao tc x l bn phm v nhp t chut v x l tin nhn window. System.Windows.Forms.ButtonBase - Lp ny h tr chc nng c bn ca mt nt System.Windows.Forms.TextBoxBase - cung cp chc nng v thuc tnh thng thung cho cc lp tha hng. C hai lp TextBox v RichTextBox s dng chc nng cung cp bi TextBoxBase. System.Windows.Forms.ScrollableControl - qun l s pht sinh v hin th ca cc thanh cun n ngi dng truy cp n gc ca mt hin th. System.Windows.Forms.ContainerControl - Lp ny qun l chc nng yu cu cho mt control hnh ng System.Windows.Forms.Panel - c th cha cc control thm vo, nhng khc vi lp ContainerControl, n phn loi cc control mt cch n gin. System.Windows.Forms.Form -To bt k loi ca s no: standard, toolbox, borderless, modal dialog boxes v multi-document interfaces. System.Windows.Forms.UserControl - to mt custom control n vic Slide 35 c dng trong mt ni phc tp trong mt ng dng hay t chc
Standard Control
Mt i tng control k tha trc tip / gin tip t System.Windows.Forms.Control C cc dng control sau:
iu khin thng thng:
Label, TextBox, Combobox, ListBox, CheckBox, RadioButton, Button
iu khin c bit :
Tooltip, HelpProvider, ErrorProvider, ProgressBar, ListView, TreeView, DateTimePicker, MonthlyCalender
Standard Control
Buttons: Button, CheckBox, RadioButton Time and Date: DateTimePicker, MonthCalender Labels and Pictures: GroupBox, Lablel, LinkLabel, PictureBox Text editing: TextBox, RichTextbox, NumericUpDown, DomainUpDown Lists and Data: ListBox, ComboBox, ListView, TreeView, PropertyGrid, DataGrid Position and ProgressBar: HScrollBar , VScrollBar, TrackBar, ProgressBar Layout: Tab Control, Splitter, StatusBar, ToolBar
Slide 37
Label
Trnh by, ch gii tiu C hai loi Label v LinkLabel
Thuc tnh thng dng Font Text TextAlign ForeColor Visible Font hin th ca text Ni dung text hin th Canh l text Mu text Trng thi hin th
TextBox
Cho php nhp d liu Hai dng l TextBox v MaskedTextBox Cc hnh thc nhp ca TextBox l : PasswordChar v Multiline MaskedTextBox: c nhiu dng c sn Numeric, Phone Number, Date, Time v.v Ly ni dung nhp : [ObjectName].Text
Slide 39
Slide 40
Textbox
Cc s kin TextBox
Tn thuc tnh ngha TextChanged S kin pht sinh khi ngi dng thay i ni dung text. Validating Khi mt focus th s kin ny pht sinh kim tra d liu hp l. Tham s: object sender, CancelEventArgs e KeyPress Bt s kin g phm Tham s: object sender, KeyPressEventArgs e
Slide 43
Button
Dng chut nhn thao tc C th show Icon trn button
Button
Thuc tnh thng dng Text Click Chui hin th trn b mt button Kch hot khi user kch vo button, khai bo mc nh khi ngi lp trnh kch p vo button trong mn hnh Design Slide 44 View ca Form. Event thng dng
Chuyn thnh ch hoa S kin pht sinh khi textbox nhn focus v user nhn 1 phm
Slide 46
S kin KeyPress
Slide 45
MaskedTextBox
Slide 47
Combobox, ListBox
Lit k danh sch phn t cho php ngi dng chn mt hay nhiu C cc thuc tnh chung quan trng sau : DataSource: chn tp d liu in vo iu khin (VD string [] , ArrayList l tp d liu a vo) SelectedText, SelectValue, SelectedItem, SelectedIndex ly gi tr hay i tng chn Thuc tnh ring: Combobox: DropDownStyle ( DropDown: cho php nhp thm chui ; DropDownList : ch cho php chn chui c ) ListBox: SelectionMode (True: cho php chn nhi u ) 49 Slide
Combobox
Combobox: chn Items thm d liu
Slide 50
ComboBox
Kt hp TextBox vi mt danh sch dng drop down Cho php user kch chn item trong danh sch drop down
Items
DropDownStyle ComboBox
ComboBox
DropDownStyle
Sorted
MaxDropDownItems AutoCompleteMode DropDownHeight
Text
Slide 51
Slide 52
ComboBox
ComboBox
ComboBox
AutoComplete
Listbox
G N
AutoCompleteMode AutoCompleteSource
Slide 55
Slide 56
ListBox
Method & Event
ListBox
Thuc tnh Items cho php thm item vo ListBox
Method
ClearSelected GetSelected SetSelected FindString
ListBox
Event
SelectedIndexChanged SelectedValueChanged
Slide 57
ListBox
ListBox hin th dng Multi Column
ListBox
Demo ListBox
Hin th nhiu ct
Slide 59
Kim tra xem chui nhp c trong list box? - Nu c: select item - Ngc li: thm chui mi vo list box
Slide 60
ListBox
S kin SelectedIndexChanged
Mi khi kch chn vo item trong listbox s xa item c chn tng ng
SelectedIndexChanged
Slide 61
CheckBox
Slide 63
Slide 64
CheckBox
ThreeState = true : cho php thit lp 3 trng thi:
Checkstate = Indeterminate: khng xc nh CheckState= Checked: chn CheckState= Unchecked: khng chn
RadioButton
Cha chn
Slide 65
Slide 66
RadioButton
CheckListBox
Phng thc Add cho php thm d liu. Hoc dng Properties Items
CheckListBox
Thuc tnh c bn: Items S kin c bn: SelectedIndexChanged
CheckedListBox
MultiColumn = true
Cc item c t chc theo nhiu ct
Slide 69
Slide 70
CheckedListBox
S kin SelectedIndexChanged
Slide 71
Khi xa mt GroupBox th cc control cha trong n b xa theo Thit lp gi tr ca GroupBox s nh hng n cc control m n cha Lp GroupBox k tha t System.Windows.Forms.Control
Panel
Cha nhm cc control Khng c caption C thanh cun (scrollbar)
Xem nhiu control khi kch thc panel gii hn
Panel Thuc tnh thng dng Xut hin khi panel qu nh hin th ht AutoScroll cc control, mc nh l false Bin ca panel, mc nh l None, cc tham BorderStyle s khc nh Fixed3D, FixedSingle Danh sch control cha trong panel Controls
Slide 73
Slide 74
Slide 75
Slide 76
TabControl
Dng container cha cc control khc Cho php th hin nhiu page trn mt form duy nht Mi page cha cc control tng t nh group control khc.
Mi page c tag cha tn ca page Kch vo cc tag chuyn qua li gia cc page
TabControl
TabControl c thuc tnh TabPages
Cha cc i tng TabPage
TabPage
TabControl TabPage
ngha:
Cho php th hin nhiu control trn mt form Cc control c cng nhm chc nng s c t Slide 77 chc trong mt tab (page)
Slide 78
TabControl
Thuc tnh Appearance
Normal
TabControl
Thuc tnh, phng thc & s kin thng dng
Properties
TabPages
Buttons FlatButton
Method
SelectTab DeselectTab
Event
SelectedIndexChanged
Slide 80
Slide 79
TabControl
Thm/Xa TabPage
Kch chut phi
TabControl
Chnh sa cc TabPage
Chn thuc tnh TabPages ca TabControl S dng mn hnh TabPage Collection Editor chnh sa
Thm/Xa TabPage
Slide 81
Slide 82
TabControl
B sung Control vo TabControl
Chn TabPage cn thm control Ko control t ToolBox th vo TabPage chn
Chn TabPage cn thm
TabControl
S dng code thm cc TabPage vo TabControl
private void AddTabControl() { TabControl tabControl1 = new TabControl(); TabPage tabPageGeneral = new TabPage("General"); TabPage tabPageView = new TabPage("View"); tabControl1.TabPages.Add(tabPageGeneral); tabControl1.TabPages.Add(tabPageView); tabControl1.Location = new Point(20, 20); this.Controls.Add(tabControl1);
Slide 83
Slide 84
PictureBox
S dng hin th nh dng bitmap, metafile, icon, JPEG, GIF. S dng thuc tnh Image thit lp nh lc design hoc runtime. Cc thuc tnh
Image: nh cn hin th SizeMode:
Normal StretchImage AutoSize CenterImage Zoom
Slide 86
PictureBox
ImageList
Cung cp tp hp nhng i tng image cho cc control khc s dng
5 pictureBox vi cc SizeMode tng ng
ListView TreeView
Slide 87
Slide 88
ImageList
Cc bc s dng ImageList
Ko control ImageList t ToolBox th vo Form Thit lp kch thc ca cc nh: ImageSize B sung cc nh vo ImageList qua thuc tnh Images S dng ImageList cho cc control
Khai bo ngun image l image list va to cho control Thng l thuc tnh ImageList Thit lp cc item/node vi cc ImageIndex tng ng Vic thit lp c th mn hnh design view hoc code view
Slide 89
ImageList
To ImageList
Slide 90
ImageList
S dng ImageList trong ListView
listView1
ImageList
Thm Item
ImageList
Demo
Mi item s c nh theo ng th t ImageIndex c khai bo trong ImageList
Slide 93
NumericUpDown
Cho php user chn cc gi tr trong khong xc nh thng qua
Nt up & down Nhp trc tip gi tr
NumericUpDown
on code thm control NumericUpDown
public void AddNumericUpDown() { NumericUpDown numUpDn = new NumericUpDown(); numUpDn.Location = new Point(50, 50); numUpDn.Size = new Size(100, 25); numUpDn.Hexadecimal = true; numUpDn.Minimum = 0; numUpDn.Maximum = 255; numUpDn.Value = 0xFF; numUpDn.Increment = 1; Controls.Add(numUpDn); }
Slide 95 Slide 96
Cc thuc tnh
Minimum Maximum Value Increment
S kin
ValueChanged
// hin th dng hexa // gi tr nh nht // gi tr ln nht // gi tr khi to // bc tng/gim // thm control vo ds control ca form
Phng thc
DownButton UpButton
NumericUpDown
Demo
Tng gim gi tr
DomainUpDown
Cho php user chn item trong s danh sch item thng qua
Button Up & Down Nhp t bn phm
Hin th gi tr Hexa
Properties
Items: danh sch item ReadOnly: true ch cho php thay i gi tr qua Up & Down SelectedIndex: ch mc ca item ang chn SelectedItem: item ang c chn Sorted: sp danh sch item Text: text ang hin th trn DomainUpDown.
Event
Slide 97
SelectedItemChanged
Slide 98
DomainUpDown
Nhp item cho DomainUpDown
DateTimePicker
Cho php chn ngy trong khong xc nh thng qua giao din ha dng calendar Kt hp ComboBox v MonthCalendar Properties
Format: nh dng hin th
long, short, time, custom
CustomFormat:
dd: hin th 2 con s ca ngy MM: hin th 2 con s ca thng yyyy: hin th 4 con s ca nm (xem thm MSDN Online)
MaxDate: gi tr ngy ln nht MinDate: gi tr ngy nh nht Value: gi tr ngy hin ti ang chn
Slide 100
DateTimePicker
private void AddDateTimePicker() { DateTimePicker DTPicker = new DateTimePicker(); DTPicker.Location = new Point(40, 80); DTPicker.Size = new Size(160, 20); DTPicker.DropDownAlign = LeftRightAlignment.Right; DTPicker.Value = DateTime.Now; DTPicker.Format = DateTimePickerFormat.Custom; DTPicker.CustomFormat = "'Ngy' dd 'thng' MM 'nm' yyyy"; this.Controls.Add(DTPicker); }
DateTimePicker
Demo
nh dng xut: 'Ngy' dd 'thng' MM 'nm' yyyy
MonthCalendar
Cho php user chn mt ngy trong thng hoc nhiu ngy vi ngy bt u v ngy kt thc. Mt s thuc tnh thng dng
MaxDate, MinDate SelectionStart: ngy bt u chn SelectionEnd: ngy kt thc
RichTextBox
Chc nng m rng t TextBox, c th hin th text dng rich text format (RTF) Cc text c th c cc font ch v mu sc khc nhau. on text c th c canh l C th cha cc nh ng dng WordPad l dng RichTextBox Sinh vin t tm hiu thm
Slide 104
Menu Strip
Shortcut key
Slide 106
MenuStrip
Cch to menu
Trong ToolBox ko control MenuStrip th vo form Thanh menuBar xut hin trn cng ca form Trong mn hnh design d dng to lp cc menu item
Nhp tn menu MenuBar
MenuStrip
t k t & trc k t lm phm tt To menu item mi bng cch nhp vo textbox
ToolStripMenuItem MenuStrip
Slide 107 Slide 108
Menu
Thit lp Shortcut Key cho menu item
MenuStrip
Menu item c th l TextBox hoc ComboBox
Chn nt dropdown trn textbox nhp item hin th cc dng menu item khc
Slide 109
Slide 110
MenuStrip
Thuc tnh ca MenuStrip, ToolStripMenuItem MenuStrip Items MdiWindowListItem ToolStripMenuItem Checked Index DropDownItems ShortcutKeys Text ShowShortcutKeys Xc nh trng thi check ca menu item Ch mc menu item trong menu cha Cha nhng menu item con Phm tt Tiu menu item Xc nh trng thi hin th phm tt bn cnh menu item Cha nhng top menu item Chn top menu item hin th tn cc ca s con
MenuStrip
S kin cho Menu Item thng dng l Click Trong mn hnh Design View kch p vo menu item VS s t ng to trnh x l cho menu item
Slide 112
Context Menu
Xut hin khi user kch chut phi Thng thng menu ny xut hin ty thuc vo i tng trong vng kch chut phi. Trong ToolBox ko ContextMenuStrip th vo form
Context Menu
Kch vo ContextMenuStrip son tho cc menuitem ContextMenuStrip tm thi th hin trn cng ca form
Khi run th s khng hin th cho n khi c gi
Son tho Context Menu tng t nh Menu bnh thng
select
Slide 113 Slide 114
Context Menu
Khai bo s dng Context Menu Mi control u c property l: ContextMenuStrip
Khai bo thuc tnh ny vi ContextMenuStrip
Khi user kch chut phi ln control th s hin th context Menu ci t sn
Context Menu
Demo: to context Menu hin th trong ListBox c menu item Remove, cho php xa item ang c chn. To Form c m t nh sau
ListBox hin th cc item
Slide 116
Context Menu
Ko ContextMenuStrip th vo Form
Context Menu
Kch vo ContextMenuStrip thit k menu
To mt menu item Remove nh hnh m t
Slide 117
Slide 118
Context Menu
Lin kt ContextMenu vi ListBox
Trong ca s properties ca ListBox
Khai bo thuc tnh ContextMenuStrip = ContextMenuStrip1
Context Menu
Khai bo trnh x l s kin Click cho menu item
Slide 119
Slide 120
Context Menu
Demo
ToolStrip
Namespace: System.Windows.Forms
Dng ToolBar cha nhiu cc controls khc nhau Xut hin ngay di thanh Menu
Slide 121
Slide 122
ToolStrip
Cch to button trn ToolStrip
Ko ToolStrip th vo form Add ToolStripButton
To button
ToolStrip
ToolStripMenuItem l 1 Menu Item ca Menu Strip
Mt s thuc tnh c bn Text Image Checked DropDownItems Mt s s kin c bn Click
Slide 124
ToolStrip
Mi button c th l
ToolStripButton ToolStripSplitButton ToolStripDropDownButton ToolStripComboBox ToolStripTextBox ToolStripSeperator ToolStripProgressBar
ToolStrip
B sung image cho button
S dng thuc tnh Images thit lp
Thuc tnh c bn
Items
Slide 125 Slide 126
ToolStrip
ToolStrip
ToolStrip
Khai bo trnh x l s kin Click cho ToolStripButton
Khai bo tng t nh cc button
Kch p vo button trong Design View
Split bar
Cc button
Thng thng cc button l cc chc nng thng s dng cha trong menu
VD: cc button New, Open, Save Do c th khai bo cng trnh x l s kin cho cc button v menu item cng chc nng.
VD: Menu item Open cng trnh x l vi ToolStripButton Open
Slide 127 Slide 128
StatusStrip
StatusStrip
Hin th thng tin trng thi ca ng dng Nm bn di cng ca Form. Cc lp lin quan
StatusStrip: l container cha control khc ToolStripStatusLabel: control c th add vo StatusStrip
Slide 130
StatusStrip
To cc item cho StatusStrip
StatusStrip
V d to s kin Tick ca Timer c mi giy kch hot v hin th gi trn StatusStrip
Ko Timer th vo Form
Thit lp s kin Tick cho Timer vi Interval l 1000 ms
Slide 131
Slide 132
StatusStrip
Demo
StatusStrip
VD: b sung hin th mt hyperlink trn StatusStrip v open hyperlink khi user kch chut
ToolStripStatusLabel
StatusStrip
To trnh x l s kin khi user kch vo item Label th 3 cha hyperlink
Trong mn hnh design kch p vo item th 3, VS.NET s pht sinh ra trnh x l s kin
StatusStrip
Demo
Kch vo m web
Slide 136
Timer
Advanced Controls
Luong Tran Hy Hien hienlth@hcmup.edu.vn
http://sites.google.com/a/hcmup.edu.vn/hienlth
B nh thi gian, thit lp mt khong thi gian xc nh (interval) v khi ht khong thi gian Timer s pht sinh s kin tick.
Methods
Properties
Enabled Stop
Events
Interval
Slide 138
Tick
Timer
Multitasking Qun l v thng bo cc trng thi Autosave Demo version Game
X l s kin Timer
Theo l thuyt thng ip thi gian do Windows cung cp l chnh xc n mili giy nhng thc t khng hon ton nh vy. S chnh xc cn ph thuc vo ng h ca h thng v cc hot ng hin thi ca chng trnh.
Slide 139
Slide 140
Timer
Hin th gi h thng
Hin th thi gian
Timer
S kin Tick
Slide 141
Slide 142
Timer
Demo
ProgressBar
Hin th tin thc hin ca mt cng vic no Cc thuc tnh
Mi giy s kin Tick pht sinh. Trnh x l ca Tick s ly gi h thng v hin th ln Label Minimum: gi tr nh nht Maximum: gi tr ln nht Step: s bc tng khi gi hm PerformStep Value: gi tr hin ti Style: kiu ca progress bar
Phng thc
PerformStep(): tng thm step Increment(int value): tng v tr hin ti ca tin vi gi tr xc nh
Slide 143 Slide 144
ProgressBar
Khai bo thanh tin 0-100, step = 10
ProgressBar
Step = 10
Slide 145
Slide 146
ProgressBar
Demo
ToolTip
Cung cp chc nng hin th mt khung text nh khi user di chuyn chut vo control bt k Khung text cha ni dung m t ngha ca control Cch s dng
T ToolBox ko ToolTip th vo form Kch chn control mun thm tooltip Trong ca s Properties ca control s c thuc tnh ToolTip. Thm text vo thuc tnh ny hin th khi tooltip xut hin.
Slide 147 Slide 148
ToolTip
To ToolTip
ToolTip
Khai bo Tooltip cho textbox trong Design View
Ni dung Tooltip
Slide 149
Slide 150
ToolTip
Khai bo tooltip cho button
ToolTip
Khai bo tooltip cho listbox bng code
Slide 151
Slide 152
ToolTip
Demo
TrackBar
Cho php user thit lp gi tr trong khong c nh cho trc Thao tc qua thit b chut hoc bn phm
Properties
ToolTip xut hin khi user di chuyn chut vo vng control
Minimum
Maximum
ValueChanged
Scroll
TickFrequency TickStyle
Slide 153
Value
SetRange
Slide 154
TrackBar
public void AddTrackBar() { TrackBar tb1 = new TrackBar(); tb1.Location = new Point(10, 10); tb1.Size = new Size(250, 50); tb1.Minimum = 0; tb1.Maximum = 100;
To th hin
TrackBar
B sung Label hin th gi tr ca TrackBar
Thit lp khong: 0 - 100 S v tr di chuyn khi dng phm mi tn S v tr di chuyn khi dng phm Page Kiu stick bn di/bn phi track S khong cch gia cc tick mark
Slide 155
Slide 156
ScrollBar controls
Properties
ListView
List View
Dng control ph bin hin th mt danh sch item
Cc item c th c cc item con gi l subitem
List View
Properties
Sorting SmallImageList Columns LargeImageList Items MultiSelect
Slide 159
GridLines
FullRowSelect
Slide 160
List View
Cc dng th hin ca ListView
List View
Large Icons
Details
Small Icons
Mi item xut hin vi 1 icon kch thc ln v mt label bn di
List Tile
Large Icons
Slide 161
Slide 162
List View
Small Icons Mi item xut hin vi icon nh v mt label bn phi
List View
List Mi item xut hin vi icon nh vi label bn phi, item c sp theo ct nhng khng c tiu ct
Slide 163
Slide 164
List View
Tile Mi item xut hin vi icon kch thc ln, bn phi c label cha item v subitem
List View
Detail Mi item xut hin trn mt dng, mi dng c cc ct cha thng tin chi tit
Slide 165
Slide 166
List View
To cc ct cho ListView Details qua
Ca s properties Columns to. S dng code trong chng trnh.
ColumnHeader columnHeader1 = new ColumnHeader(); ColumnHeader columnHeader2 = new ColumnHeader(); ColumnHeader columnHeader3 = new ColumnHeader(); columnHeader1.Text = "Name"; columnHeader2.Text = "Address"; columnHeader3.Text = "Telephone Number"; listView1.Columns.Add(columnHeader1); listView1.Columns.Add(columnHeader2); listView1.Columns.Add(columnHeader3);
List View
Dialog son tho ct
Slide 167
Slide 168
List View
Thm cc item vo ListView
Thm item trong mn hnh thit k form Thm item thng qua code
ListView
Minh ha thm item qua code
ListViewItem item1 = new ListViewItem ListViewItem(); (); ListViewItem.ListViewSubItem subitem1; subitem1 = new ListViewItem ListViewItem.ListViewSubItem .ListViewSubItem(); (); item1.Text = HCMUP HCMUP"; "; HCMc"; subitem1.Text = 280 An Duong Vuong, HCMc"; item1.SubItems.Add(subitem1); listView1.Items.Add(item1); Thm subitem vo item
Cc lp nh ngha Item
System.Windows.Forms.ListViewItem ListViewItem Mi item trong ListView c cc item ph gi l subitem
Lp ListViewItem.ListViewSubItem ListViewSubItem nh ngha cc subitem ca ListView Lp ListViewSubItem l inner class ca ListViewItem
ColumnHeader1 ColumnHeader2 ColumnHeader3
item 1
Subitem[0]
Subitem[1]
Subitem[2]
Slide 169
Slide 170
ListView
S kin SelectedIndexChanged
ListView
Thuc tnh CheckBoxes: Xut hin CheckBox bn cnh tng phn t trn iu khin
Slide 171
Slide 172
TreeView
iu khin TreeView dng trnh by danh sch phn t phn cp theo tng nt (Node) hnh cy. Thc hin: ta ko th iu khin vo Form t hp Toolbox
TreeView
Thuc tnh Nodes: Khai bo s Node (c header) ca iu khin TreeView
Slide 173
Slide 174
TreeView
Thuc tnh ShowPlusMinus: Chn gi tr True th biu tng du + v xut hin trn mi Node, mc nh l True.
TreeView
Thuc tnh ImageList: Cha i tng ImageList. Thuc tnh ImageIndex: Tt c cc Node c th hin bi hnh nh m thuc tnh ny chn.
V tr trong ImageList
Chn ImageList
Slide 175
Slide 176
TreeView
Thuc tnh SelectedImageIndex: Node c chn s c dng hnh nh ny. Thuc tnh CheckBoxes: Xut hin CheckBox bn cnh Node
TreeView
Phng thc:
CollapseAll(): Trnh by tt c cc Node trn diu khin TreeView treeView1. CollapseAll(); ExpandAll(): Thu gn tt c cc Node trn iu khin TreeView treeView1. ExpandAll(); Clear(): Xa tt c cc Node ang tn ti.
Slide 177
Bi tp
S dng TreeView v ListView m phng chng trnh Windows Explorer
Tham kho
Slide bi ging C#, H KHTN, TpHCM Nguyn H Giang, Slide bi ging C#, H KTCN, TpHCM MSDN
Slide 179
Slide 180
Slide 2
Gii thiu
Tm hiu cc thng ip pht sinh t bn phm hay thit b chut vit cc x l tng ng B nh thi gian: Windows cung cp c ch ny truyn thng vi ng dng theo nh k.
ng dng cn khai bo b nh thi gian vi mt khong thi gian cho trc Khi ng dng hot ng th h thng s truyn mt tn hiu cho ng dng theo tng khong thi gian nh k c khai bo.
Gii thiu
Bn phm v chut l 2 thit b nhp liu quan trng nht ca my tnh. Hu ht cc chc nng Windows u h tr dng bn phm v chut Bn phm v chut c x l qua c ch thng ip ca Windows Mi s kin i vi bn phm v chut c Windows gi n chng trnh thng qua cc thng ip.
Slide 4
Slide 3
Bn phm
Khi nhn phm c th xy ra trng hp sau:
Nhn 1 phm k t Nhn 1 phm iu khin (Enter, Esc, F1 F12) Nhn Shift hoc Ctrl hoc Alt hoc t hp no ca 3 phm ny vi cc k t.
Slide 5
X l s kin bn phm
M hnh x l s kin bn phm ca Windows
X l s kin bn phm
Khi ngi dng nhn hoc nh mt phm bt k t bn phm cc driver bn phm s nhn c m bn phm v m qut (scan code) ca phm tng ng. M qut ny s c chuyn thnh m phm o (Virtual keycode) v mt thng ip bn phm tng ng (bao gm c scan code, virtual keycode v mt s thng tin khc) s c gi n cho System message queue. Cc s kin bn phm ch c gi n cho ca s ang gi focus hin hnh. H thng gi hai s kin bn phm khc nhau khi ngi dng nhn phm v nh phm.
Slide 7 Slide 8
X l s kin bn phm
Cc phm c nhn c chia lm 4 nhm sau:
Toggle keys: Caps Lock, Num Lock, Scroll Lock Shift keys: Shift, Ctrl, Alt Noncharacter keys: cc phm chc nng nh cc phm di chuyn, Pause, Delete Character keys: cc phm k t, phm s,
Keyboard Event
Pht sinh khi mt phm c nhn hoc th C 3 s kin
KeyPress KeyUp KeyDown
Slide 9
KeyPress pht sinh km theo vi m ASCII ca phm c nhn KeyPress khng cho bit trng thi cc phm b sung {Shift, Alt, Ctrl} S dng KeyUp & KeyDown xc nh trng Slide 10 thi cc phm b sung.
Keyboard Event
S kin vi tham s kiu KeyEventArgs KeyDown KeyUp KeyPress KeyChar Handled Pht sinh khi phm c nhn Pht sinh khi phm c th S kin vi tham s kiu KeyPressEventArgs Khi to khi phm c nhn Thuc tnh ca lp KeyPressEventArgs Cha k t ASCII ca phm c nhn Cho bit s kin KeyPress c c x l cha Thuc tnh ca lp KeyEventArgs Alt, Control, Shift Trng thi cc phm b sung Handled Cho bit s kin x l
Slide 11
Keyboard Event
Thuc tnh ca lp KeyEventArgs (tt) KeyCode KeyData KeyValue Modifier Tr v m k t c nh ngha trong Keys enumeration Cha m k t vi thng tin phm b sung Tr v s int, y chnh l m Windows Virtual Key Code Tr v gi tr ca phm b sung
Slide 12
Keyboard Event
Keys Enumeration
Key Enumeration
Kiu Keys c nh ngha lit k tt c cc phm. Bng lit k gi tr 26 k t Latin c m t trong bng sau:
Slide 13
Slide 14
Key Enumeration
Keyboard Event
Minh ha cc s kin: KeyPress, KeyDown, KeyUp
Khi user nhn mt phm
Bt s kin KeyPress: xut ra phm c nhn Bt s kin KeyDown: xut ra cc tham s trong KeyEventArgs
lblChar: hin th k t c nhn trong KeyPress Slide 16 lblKeyInfo: hin th cc thng tin ca KeyEventArgs khi KeyDown
Keyboard Event
Bc 1: to Windows Form nh hnh m t
Label cha k t c nhn trong s kin KeyPress
Keyboard Event
Bc 2:
To KeyPress Event Handling cho form
Slide 17
Slide 18
Keyboard Event
Bc 3:
To KeyDown Event Handling cho form
Keyboard Event
Demo
Slide 19
Slide 20
Keyboard Event
M rng chng trnh Calculator m rng cho php x l cc phm
Form nhn x l thng ip KeyDown
Xc nh cc phm tng ng ri gi s kin click ca button VD: user g phm 1, tng t nh button 1 c nhn
Keyboard Event
Vit phn x l cho s kin KeyDown
Xc nh cc phm tng ng gi s kin click ca cc button.
Gi event Click ca button 1
Slide 22
Gii thiu
Mouse Event
V c bn Windows h tr cc loi thit b chut c mt nt, hai v ba nt, ngoi ra Windows cn c th dng thit b khc nh joystick hay bt v bt chc thit b chut. Cc thng ip c to t chut rt khc vi thng ip ca bn phm:
Chut di chuyn qua ca s hay kch vo trong ca s, Thm ch c trong trng hp ca s khng c kch hot hay khng nhn c s quan tm.
Slide 24
Gii thiu
Cc s kin chut s c gi n cho:
Ca s hin ang cha con tr chut. Hoc ca s ang capture chut.
Mouse Event
Mt s cc thao tc pht sinh t mouse
Di chuyn Kch chut
ng dng cn x l s kin chut no s khai bo trnh x l tng ng Lp MouseEventArgs c s dng cha thng tin truyn vo cho trnh x l s kin mouse. Mi trnh x l s kin s c tham s l i tng object v i tng MouseEventArgs (hoc EventArgs)
Slide 26
Mouse Event
Tham s cho s kin lin quan n mouse
Mouse Event
S kin chut vi tham s kiu EventArgs
MouseEnter MouseLeave Xut hin khi con tr chut i vo vng bin ca control Xut hin khi con tr chut ri khi bin ca control Xut hin khi button c nhn/th v con tr chut ang trong vng bin ca control Xut hin khi chut di chuyn v con tr chut trong vng bin ca control
MouseEventArgs
Slide 27
Slide 28
Mouse Event
Thuc tnh ca lp MouseEventArgs
Button Clicks X Y Button c nhn {Left, Right, Middle, none} c kiu l MouseButtons S ln button c nhn Ta x ca con tr chut trong control Ta y ca con tr chut trong control
Slide 29
Slide 30
S kin MouseDown
S kin MouseDown c pht sinh khi ngi dng nhn mt nt ca chut. x l s kin MouseDown ta override phng thc OnMouseDown V d:
protected override void OnMouseDown(MouseEventArgs mea) { MessageBox.Show(Ban vua nhan chuot + mea.Button); }
S kin MouseUp
S kin MouseUp c pht sinh khi ngi dng nh mt nt ca chut. x l s kin MouseUp ta override phng thc OnMouseUp V d:
protected override void OnMouseUp(MouseEventArgs mea) { MessageBox.Show(Ban vua nha chuot + mea.Button); }
Slide 31
Slide 32
S kin MouseMove
S kin MouseMove c pht sinh khi ngi dng di chuyn chut. x l s kin MouseMove ta override phng thc OnMouseMove V d: protected override void OnMouseMove(MouseEventArgs e) {
//Ve mot duong thang tu toa do (0,0) den toa do chuot di chuyen
S kin MouseWheel
S kin MouseWheel c pht sinh khi ngi dng scroll chut scroll chut. x l s kin MouseWheel ta override phng thc OnMouseWheel V d:
protected override void OnMouseWheel(MouseEventArgs e) { if (mea.Delta>0) MessageBox.Show(Ban vua scroll chuot len, Thong bao ); else MessageBox.Show("Ban vua scroll chuot xuong", "Thong bao"); }
Slide 34
Graphics g = CreateGraphics(); Pen pen = new Pen(System Drawing Color Blue); g.DrawLine(pen, 0, 0, mea.X, mea.Y); }
Slide 33
S kin Click
S kin Click pht sinh khi mt phm bt k ca chut c nhn. S kin ny pht sinh km theo tham s EventArgs, tham s ny khng cha thng tin v trng thi ca nt chut c nhn cng nh v tr ca con tr chut khi nhn. protected override void OnClick(EventArgs ea) { }
Slide 35
S kin DoubleClick
Khi DoubleClick s pht sinh mt dy cc s kin sau: MouseDown Click MouseUp MouseMove MouseDown DoubleClick MouseUp MouseMove
protected override void OnDoubleClick(EventArgs ea) { }
Slide 36
Mouse Event
MouseMove
Mouse Event
Demo
V tr hin ti ca con tr chut
Slide 37
Slide 38
Mouse Event
Demo thao tc: kch chut tri ti mt im A, gi chut tri v di chuyn chut, chng trnh s v ng thng t im A n v tr hin ti chut. Cc s kin cn x l
MouseDown:
Xc nh im A ban u
Mouse Event
Bc 1:
To bin lu tr im A khi user kch chut tri Bin pA c kiu Point l bin thnh vin ca Form1 Lp Form1
MouseMove
Kim tra nu Left button ca chut ang gi
S dng Graphics v ng thng t A n v tr hin ti
Slide 39
Slide 40
Mouse Event
Bc 2
Khai bo x l s kin MouseDown trong Form1
Trong ca s event ca Form1, kch p vo s kin MouseDown
Mouse Event
Bc 3
Ci t x l s kin MouseMove
Kim tra nu LeftButton c nhn
V ng thng t pA n v tr hin ti
Lu li im c nhn chut
Slide 41 Slide 42
Mouse Event
Bi tp
Ti sao c hiu ng vy? SV t ci tin
Slide 43
Slide 44
Common Dialog
Cc dialog thng c s dng
c warp thnh cc lp trong FCL/BCL
Common Dialog
Cch s dng
1. Ko th dialog vo form
VS s to th hin cha trong lp form
SaveFileDialog PrintDialog
FontDialog
Common Dialog
Common Dialog
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
OpenFileDialog
S dng chn file lu trn a Cch s dng t ToolBox
Drag & drop
xyz.Designer.cs
OpenFileDialog
Code pht sinh ca VS
xyz.Designer.cs To th hin
OpenFileDialog
Code t vit khng dng Toolbox
Hin th Form
OpenFileDialog
Thuc tnh, phng thc Thuc tnh FileName FileNames Filter InitialDirectory Multiselect Title Phng thc ShowDialog S kin FileOk Xut hin khi user kch vo OK
9
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
Ly tn file c chn Ly tn tt c cc file c chn Xc nh kiu file cn m Th mc khi to Cho php chn nhiu file Tiu ca dialog Hin th dialog
10
SaveFileDialog
S dng to file trn a. Cch s dng
S dng SaveFileDialog component trn Toolbox
Tng t nh OpenFileDialog!
SaveFileDialog
Demo: nhp vn bn vo textbox, sau lu xung file *.txt.
To ng dng dng Windows Form c cc control
1 label: caption ca textbox 1 textbox: cha ni dung text do user nhp 1 button: gi SaveFileDialog v lu file 1 SaveFileDialog: khai bo dialog SaveFile.
To th hin ca lp SaveFileDialog
11
12
SaveFileDialog
Thit k form
SaveFileDialog
Vit phn x l cho button Lu file
Multiline=true
System.IO
13
14
SaveFileDialog
SaveFileDialog
M rng b sung phn c file text t demo trn
Open file *.txt v hin th ni dung ca file trn TextBox.
15
16
SaveFileDialog
Vit phn x l button M file
SaveFileDialog
Demo
Hin th ni dung file
17
18
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
FontDialog
Chc nng hin th hp thoi chn font ch c install trong my
Trong ng dng lm vic vi document, ha
S dng FontDialog
T ToolBox ko th FontDialog vo Form
S dng trong lc thit k
19
20
FontDialog
Thuc tnh, phng thc thng dng Thuc tnh Font Color ShowColor ShowApply Phng thc ShowDialog S kin Apply Kch hot khi user chn apply Hin th dialog ra mn hnh Get/set font c chn Get/set mu ca font Hin th hay khng hin th chn mu Hin th/ khng button Apply
FontDialog
Demo: gi FontDialog thit lp font cho control To Form c dng sau
Label test font
Drag & drop
21
22
FontDialog
Phn x l cho button Font
FontDialog
23
24
FontDialog
B sung chc nng Apply ca FontDialog
Khi FontDialog ang hin th cho php user kch chn nt Apply label thay i font theo.
FontDialog
Code minh ha
25
26
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
ColorDialog
Hin th chc nng chn mu S dng theo 2 cch
Ko ColorDialog t Toolbox th vo form Vit code to i tng
27
28
ColorDialog
Demo chn mu: chn mu nn cho form
ColorDialog
Phn x l cho button Color
29
30
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
MessageBox
Hin th hp thoi cha thng tin ch dn n user Bao gm cc phn
Text Button Symbol
31
32
MessageBox
C khong 21 phin bn ca Show Mt s phin bn thng s dng
MessageBox.Show (String strText) MessageBox.Show (String strText, String strCaption) MessageBox.Show (String strTex, String strCaption, MessageBoxButtons mbb) MessageBox.Show (String strTex, String strCaption, MessageBoxButtons mbb, MessageBoxIcon mbi) MessageBox.Show (String strTex, String strCaption, MessageBoxButtons mbb, MessageBoxIcon mbi, MessageBoxDefaultButton mbdb) MessageBox.Show (String strTex, String strCaption, MessageBoxButtons mbb, MessageBoxIcon mbi, MessageBoxDefaultButton mbdb, MessageBoxOptions mbo)
MessageBox
Cc button hin th theo message
Cho php user chn la cc phn ng vi message c nh ngha trong MessageBoxButtons
MessageBoxButtons
Member Ok OkCancel AbortRetryIgnore YesNoCancel YesNo RetryCancel Value 0 1 2 3 4 5
33
34
MessageBox.Icons
Member None Hand Stop Error Question Exclamation Warning Asterisk Information Value 0x00 0x10 0x10 0x10 0x20 0x30 0x30 0x40 0x40
Slide 35
MessageBox
Mt s cc MessageBox minh ha
Image
36
V d MessageBox
V d 1: MessageBox.Show(Bn khe khng?", Cu hi", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
V d MessageBox
V d 2: Nhn kt qu chn YES/NO t ngi dng DialogResult res = MessageBox.Show(2 ln hn 1", "Thi Nghiem", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (res == DialogResult.Yes) MessageBox.Show("Chn YES"); else MessageBox.Show("Chn NO");
Slide 37 Slide 38
Ni Dung
Gii thiu Common Dialog OpenFileDialog SaveFileDialog FontDialog ColorDialog MessageBox User Control
User Control
Cng vic ko th nhm control thng s dng nhm chn User control phc v mc ch ti s dng Vn :
Nhm control phc v cho vic login thng xut hin trong ng dng
Yu cu:
To nhm control phc v cho vic login Nhm control ny bao gm
2 label 2 textbox
39
40
User Control
Bc 1: To ng dng Windows Control Library
User Control
Bc 2: thit k user control nh sau
2 TextBox
41
42
User Control
Khai bo cc property cho user control
Mi property gn vi textBox
UserName gn vi txtUID Password gn vi txtPwd
User Control
Bin dch user control Kt qu c file assembly c phn m rng l DLL S dng user control trong client app
Add vo phn References ca project
To i tng user control, add vo form
43
44
User Control
To ng dng Test User control
To ng dng Windows Form Thm User Control vo ToolBox
Kch chut phi vo ToolBox Chn chc nng Choose Items Chn file DLL ca User control va to
User Control
Ko th user control vo form
User Control
S dng User Control nh control bnh thng trn form. Truy cp user control HIENLTHLogin thng qua 2 property nh ngha khi xy dng control ny
UserName: l textBox User Name Password: l ni dung ca textBox Password
Tm tt
Common Dialog
OpenFileDialog - SaveFileDialog FontDialog - ColorDialog
MessageBox
Khai bo v s dng MessageBoxIcon MessageBoxButtons
User control
Xy dng user control S dng user control
47 48
Lm vic vi File
Lng Trn Hy Hin
http://fit.hcmup.edu.vn/~hienlth/CShape http://sites.google.com/a/hcmup.edu.vn/hienlth
Ni dung
Qun l file Move, Copy, Delete file c/Ghi file
Qun l file
.NET h tr cc thao tc lm vic vi file:
Cc tc v thng thng: lit k, sao chp, di chuyn, xa, Cc thao tc vi file nm trong namespace System.IO Cc lp quan trng: File, FileInfo, Directory, Path,
c ghi file
Da trn khi nim stream (lung d liu):
stream l o tng dng chuyn d liu. Do stream c th l lung da trn b nh, trn tp tin, trn mng, FileStream: i tng dng c ghi file nh phn. StreamReader v StreamWriter: i tng dng c ghi file text Ch : Cc tc v c ghi hu ht u s dng buffer. Do , vi tc v ghi, phi u d liu t buffer ln a trc khi ng file.
Close(): ng file
9
c ghi file vn bn
Dng StreamReader v StreamWriter
C th khi to StreamReader da trn:
Tn file cn c Mt FileStream khc Mt FileInfo vi phng thc OpenText()
11
VD: Hm c file vn bn
string DocFileText(string sfilename) { StreamReader myreader = null; string result = string.Empty; try { myreader = new StreamReader(sfilename); result = myreader.ReadToEnd(); } catch { throw; } finally { if(myreader != null) myreader.Close(); } return result; }
12
Tng quan
Th vin gip v ln mn hnh hoc my in m khng cn quan tm n cu trc phn cng c lp thit b GDI+ bao gm 3 nhm dch v chnh:
2D vector graphics: cho php to hnh t cc hnh c bn (primitive): ng thng, trn, eclipse, ng cong, Imaging: lm vic vi cc tp tin hnh nh (bitmap, metafile) Typography: v ch
System.Drawing
System.Drawing Font FontFamily Color Point Rectangle Size
key
class structure
Graphics
Icon Pen Region SolidBrush TextureBrush Image Brush
V trn Form
public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString DrawString("Hello GDI!", Font, Brushes.Red, 20, 20); } }
Graphics
Lp Graphics th hin
Abstract drawing surface Tp hp nhng tool cho php thao tc trn surface
ly i tng Graphics
S dng thuc tnh Graphics c truyn cho OnPaint() S dng phng thc CreateGraphics() ca control Ly t i tng dn xut t Bitmap
Ly i tng Graphics
protected override void OnPaint(PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; }
Ly i tng Graphics
private void PaintMe(Control testcontrol) { Graphics graf=testcontrol.CreateGraphics(); ... } Ly t control protected override void OnPaint(PaintEventArgs paintevent) { Bitmap bmpimage=new Bitmap(hoalan.jpg"); Graphics graf = Graphics.FromImage (bmpimage); ... } Ly t nh
7 8
T tham s PaintEventAtgs
DrawString() method
Hin th text trong Graphics c th
C nhiu phin bn
DrawString( String text, // Text th hin Font f, // Font Brush b, // Color & texture float x, float y); y); // v tr gc tri
Ta h thng
Gc ta
(0,0)
(0,0) (w1,0)
(w,0)
Control
(w1,h1)
trn
(0,h1)
(0,h)
(w,h)
10
Ta h thng
Graphics.PageUnit: xc nh n v ca b mt
GraphicsUnit.Pixel (default) GraphicsUnit.Inch GraphicsUnit.Milimeter GraphicsUnit.Point
Color
S dng mu c nh ngha trong Color
Color.Blue, Color.Red, Color.White
S dng mu ARGB
32 bit th hin mu A (alpha) th hin mc trong sut (255 opaque) RGB l Red, Green v Blue To mu s dng hm FromArgb()
Color red = Color.FromArgb(255,0,0); Color blue = Color.FromArgb(128, 0, 255, 0);
Graphics.PageScale: t l output
g.PageScale = 1f (default)
11
12
Tm tt mt s hng s Color
Hng s trong cu trc Color Orange Pink Cyan (Green Blue) Magenta (Red Blue) Yellow Black White DarkGray Red Green Blue Gi tr RGB 255, 200, 0 255, 175,175 0, 255, 255 255, 0, 255 255, 255, 0 0 , 0, 0 255, 255, 255 64, 64, 64 255, 0 , 0 0, 255, 0 0, 0, 255
13
14
FullOpen
FullOpen = false
FullOpen = true
15
16
Demo
FONT & STRING
17
18
Font v String
Cc khi nim c bn Font
Cc khi nim v Font Lp Font Lp FontFamily
Cc khi nim c bn
B k t Trang m B k t Unicode
String
Mt s thnh phn lin quan n chui k t Lp StringFormat Lp TextRenderer
19
20
B k t v trang m
B k t (character set)
B m bn phm c nh m mt h my tnh c th ang s dng.
21
22
nh ngha Font
Tp hp hon chnh
cc ch ci cc du cu cc con s Cc k t c bit
theo mt:
kiu loi trng lng (thng hoc m nt) dng b (thng hoc nghing)
23
24
25
26
Bitmap Font
Dng hnh nh hin th cc im nh ca 1 k t Thng l nhng file c dng *.fon Khi hin th k t c kch thc ln thng b nt hnh
Vector Font
Dng cc on thng ni vi nhau hin th k t Thng l nhng file c dng *.fnt Mc d hin th k t c kch thc ln tt hn bitmap font nhng vn cha c c sc nt cao
27
28
TrueType Font
Dng cc on thng v on cong ni vi nhau hin th k t Thng l nhng file c dng *.ttf Hin th k t c kch thc ln vi sc nt cao thng dng
OpenType Font
L chun nh dng font kt hp 2 loi nh dng font c sn: Type 1 (PostScript) font v TrueType font c lp vi h iu hnh (cross-platform) H tr nhiu loi ngn ng trong 1 font Thng l nhng file c dng *.otf Trong Windows, TrueType Font c biu tng l ch TT, cn OpenType Font l ch O
29
30
o Font
Font c o bi nhiu o: pixel: phn t nh nht ca nh m 1 thit b c th hin th (mn hnh, my in) point: 1 point = 1/72 inch trong in n em: rng ca ch M ng vi kiu ch ang dng design unit: dng o kch c 1 h font bng o point khi b thay i kch thc
height
xy1
ascent
baseline descent
31
32
Class Font
M t lp Font Cc thuc tnh lp Font Cc hm khi to lp Font
Tp hp FontStyle Tp hp GraphicsUnit
M t lp Font
Dng xc nh cch nh dng vn bn Bao gm cc thuc tnh cch th hin, kch thc kiu dng thc, kiu dng Khng cho php k tha Namespace: System.Drawing Assembly: System.Drawing (in dll)
33
34
FontFamily Class
M t lp FontFamily Cc thuc tnh lp FontFamily Cc hm khi to lp FontFamily
Tp hp GenericFontFamilies
35
36
M t lp FontFamily
Xc nhn mt nhm cc font c thit k v cch th hin v kiu dng tng t nhau Khng cho php k tha Namespace: System.Drawing Assembly: System.Drawing (in dll)
GenericMonospace Tr v font family n GeneriicSansSerif Tr v font khng c chn ch GenericSerif Name Tr v font c chn ch Tr v tn ca font families
37
38
39
40
V d
Khi to mt Font:
//to Font Font tnwFont = new Font(Times New Roman,12); //to FontFamily FontFamily arialFont = new FontFamily(Arial);
Size = 8 pixel
Pen
Xc nh width, style, fill style Khng cho k tha, nhng to th hin c Trong namespace System.Drawing
Pen p1 = new Pen(Color.Green); Pen p2 = new Pen(Color.blue, 10);
Font fa = new Font("Times Font("Times New Roman", Roman", 8); Font fb = new Font("Arial Font("Arial", ", 36, FontStyle.Bold); Font fc = new Font(fb, FontStyle.Bold | FontStyle.Italic); ", 1, GraphicsUnit.Inch); Font fd = new Font("Arial Font("Arial",
Size = 1 inch
41
42
Pen (tt)
Dng Pen c sn thng qua Pens
Pens.AliceBlue Pens.Aqua Pens.Black Pens.Brown
Pen (tt)
Brush
Dng t vng bn trong ca hnh Lp Brush l lp Abstract nn khng to th hin S dng cc lp k tha sau to brush
SolidBrush LinearGradientBrush TextureBrush HatchBrush
Brush
Solid
Hatch
LinearGradient
Texture
45
46
Bursh
Demo
Solid Hatch
V CC NG
LinearGradient
Texture
47
2D vector graphics
Pen & brush
Pen, Pens, SystemPens Brush, Brushes, SystemBrushes, SolidBrushes, TextureBrushes, (System.Drawing.Drawing2D) HatchBrush, LinearGradientBrush, PathGradientBrush
2D vector graphics
ellipse, arc, cardinal spline, bezier spline
Polygon
DrawBezier DrawBeziers
DrawLine
DrawLines
DrawRectangle FillRectangle
DrawPolugon FillPolygon
49
50
2D vector graphics
Path: kt hp nhiu loi ng nt thnh mt i tng duy nht. Cc nt khng nht thit phi lin nhau.
DrawRectangle
(Pen p, int x, int y, int width, int height)
FillRectangle
(Brush b, int x, int y, int width, int height)
FillEllipse
(Brush b, int x, int y, int width, int height)
51 52
Image
Lp Image hin th cc nh bitmap
Cc dng nh: *.bmp, *.gif, *.jpg, *.ico
53
54
Image
Image
55
56
Minh ha 1
Custom li nn ca Form
57
58
59
60
Vng ca Form
61
62
Multimedia
To ng dng cha Windows Media Player control cho php Play cc file video v sound theo nhiu dng format
MPEG (Motion Pictures Expert Group): video AVI (Audio-video Interleave): video WAV (Windows Wave-file Format): audio MIDI (Musical Instrument Digital Interface): audio
Multimedia
Bc 1: b sung Windows Media Player vo ToolBox
Kch chut phi vo ToolBox ->chn Choose Items Trong Dialog Choose Toolbox Items chn COM Components
Chn Windows Media Player
63
64
Multimedia
Bc 2: ko Windows Media Player th vo Form
Thit lp Dock = Fill
Multimedia
Bc 3: To MenuStrip b sung chc nng Open File media
Dock = Fill
Multimedia
Bc 4: vit trnh x l cho Menuitem Open
Multimedia
Demo
67
68
There are basically two types of document : - Single Document Interface (SDI) - Multiple Document Interface (MDI)
SDI vs MDI
Vng client thng c gi l workspace v khng s dng trc tip hin th output ca chng trnh. Workspace c th khng cha hay cha nhiu ca s con, mi ca s con hin th mt ti liu. Cc ca s con rt ging cc ca s ng dng bnh thng v cc ca s ng dng chnh ca mt chng trnh MDI ti mt thi im, ch mt ca s ti liu c kch hot v n xut hin trc tt c cc ca s ti liu khc. Tt c cc ca s ti liu con c gii hn bi vng workspace v khng bao gi xut hin bn ngoi ca s ng dng.
7
SDI
MDI
MDI
Parents icons: minimize, maximize and close Parents title bar displays maximized child
MDI
Child windows list 9 or more child windows enables the More Windows... option
10
Parent window
Child window Child window Child window
Cho bit form l child hay khng Xc nh form cha ca form Tr v form con ang active Xc nh form l MDI parent hoc khng Tr v mng cha cc form con Xc nh cch hin th cc form con Xut hin khi child form ng hoc active
14
ChildFormClass childForm = new ChildFormClass(); MdiParent = <th hin ca form cha>; cha>; childForm.MdiParent childForm. childForm.Show childForm. Show(); (); Thit lp form cha (nu ang trong form cha th dng i tng this)
Sp xp cc MDI
to mt danh sch cc MDI Child, ch cn thm mt top-level menu item (thng mang tn Window) ri cho thuc tnh MdiList = true. B my Windows.Forms s t ng thm mt item vo cui submenu cho mi ca s MDI Child. Mi MDI container u h tr hm LayoutMdi() hm ny nhn gi tr t Enumeration MdiLayout v sp xp t ng cc ca s.
Sp t cc child form
Cascade TileHorizontal TileVertical
18
V d MDI minh ho :
Ngoi ra, c th to ra cc cch sp xp ring ty theo mi ng dng. V d, on chng trnh sau cho php thu nh li tt c cc ca s ang m. void mnuMinimizeAll_Click (Object sender, System.EventArgs e) { foreach (Form frm in this.MdiChildren) frm.WindowState = FormWindowState.Minized; }
19 20
Coding
Vit s kin cho Menu New: frmChildForm frmChil = new frmChildForm(); frmChil.MdiParent = this; frmChil.Show(); Vit s kin cho Menu Close Form: if (this.ActiveMdiChild != null) this.ActiveMdiChild.Close(); Vit s kin cho Menu Close All Form: foreach (Form frm in this.MdiChildren) { frm.Dispose(); }
Coding
Vit s kin cho Menu Window Cascade: this.LayoutMdi(MdiLayout.Cascade); Vit s kin cho Menu Window Horizontal: this.LayoutMdi(MdiLayout.TileHorizontal); Vit s kin cho Menu Window Verital: this.LayoutMdi(MdiLayout.TileVertical); Chy v th nghim ng dng
21
22
Bi tp MDI
To ng dng MDI: PixView xem nh To ng dng MDI trong
Form cha
Chc nng open: m file nh t a Gi form con hin th nh Cho php sp xp cc ca s con
Form con
Ly thng tin file t form cha Hin th file nh ln PictureBox
MDI
23
24
25
26
27
28
29
30
31
32
LP TRNH WINDOWS
LP TRNH WINDOWS
ng dng qun l
BI GING HC PHN LP TRNH WINDOWS BI GING HC PHN LP TRNH WINDOWS
H thng qun l hc sinh: lu tr thng tin lin quan n hc sinh H thng qun l sinh vin: lu tr thng tin lin quan n sinh vin H thng qun l nhn s: lu tr thng tin lin quan n nhn vin trong cng ty H thng qun l tin lng H thng qun l k ton H thng qun tr d n ..
LNG TRN HY HIN FIT, HCMUP (3)
FIT, HCMUP
(6)
Ly d liu
Tt c cc thao tc THM, XA, SA, TRUY VN d liu u lin quan n ngn SQL: INSERT, DELETE, UPDATE, SELECT
LNG TRN HY HIN FIT, HCMUP (10) 10)
Lnh INSERT
BI GING HC PHN LP TRNH WINDOWS
Lnh DELETE
BI GING HC PHN LP TRNH WINDOWS
FIT, HCMUP
(11) 11)
Lnh UPDATE
BI GING HC PHN LP TRNH WINDOWS BI GING HC PHN LP TRNH WINDOWS
Lnh UPDATE
TNG QUAN LP TRNH CSDL
V d
Sa thuc tnh ngy sinh ca nhn vin c m s = 345345345 trong Table NhanVien l 08/12/1965 UPDATE NHANVIEN SET NGSINH=08/12/1965 WHERE MANV=333445555 Sa thuc tnh lng ca tt c nhn vin bng lng c * 1.1
FIT, HCMUP
(13 13) )
FIT, HCMUP
(14) 14)
Lp trnh CSDL
BI GING HC PHN LP TRNH WINDOWS
<Danh sch cc ct c chn> < Danh sch cc bng> <iu kin chn> <Danh sch ct cn nhm> < iu kin nhm> < Danh sch ct cn sp xp>
CT Nhn s
Kt ni CSDL
CSDL
FIT, HCMUP
(15 15) )
FIT, HCMUP
(16) 16)
CT Nhn s
Thnh phn giao din: Visual Basic, Visual C++, C#, VB.NET, Delphi Giao tip d liu: ODBC, DAO, ADODB, ADO.NET,..
Thnh phn d liu: MS Access, SQL Server, Oracle, MS Access 2000/XP/2003 MS SQL Server 7.0/2000/2005
Kt ni CSDL
CSDL
CSDL
FIT, HCMUP
(17 17) )
FIT, HCMUP
(18) 18)
FIT, HCMUP
(19 19) )
FIT, HCMUP
(20) 20)
FIT, HCMUP
(21 21) )
FIT, HCMUP
(22) 22)
FIT, HCMUP
(23 23) )
FIT, HCMUP
(24) 24)
CT K ton
CT Nhn s
CT Tin lng
CSDL
LNG TRN HY HIN
FIT, HCMUP
(25 25) )
FIT, HCMUP
(27 27) )
FIT, HCMUP
(28) 28)
CI T SQL SERVER
TNG QUAN LP TRNH CSDL
FIT, HCMUP
(29 29) )
FIT, HCMUP
(30) 30)
FIT, HCMUP
(31 31) )
FIT, HCMUP
(32) 32)
FIT, HCMUP
(33 33) )
FIT, HCMUP
(34) 34)
FIT, HCMUP
(35 35) )
FIT, HCMUP
(36) 36)
Database Table View Stored Procedure Trigger User-defined Type User-defined Function
LNG TRN HY HIN FIT, HCMUP (38) 38)
FIT, HCMUP
(37 37) )
Click phi chut ti v tr (mc) Databases Chn mc New Database trong menu context, xut hin mn hnh thm mi Database
FIT, HCMUP
(39 39) )
FIT, HCMUP
(40) 40)
vi tn tp tin tng ng nh sau MyDB_Data.mdf, nu mun thay i th mc vo phn Path bm chn th mc thay i Data Files Thng tin v tp tin MDF Log file File theo di li xy ra, qu trnh thao tc n Server, Mc nh to file log mc nh MyDB_Log.ldf trong cng th mc vi file Data.
FIT, HCMUP
(41 41) )
FIT, HCMUP
(42) 42)
FIT, HCMUP
(43 43) )
FIT, HCMUP
(44) 44)
Nhp vo tn ca cc Field ca Table trong gird Chn kiu d liu (Datatype) cho cc field tng ng bao gm Kiu chui: char, varchar, nchar, nvarchar, Kiu s: int, decimal,.. Kiu thi gian: datetime, timestamp Kiu lun l (Yes/No) : bit i vi kiu chui, s chn chiu di tng ng trong mc Length i vi kiu d liu mun tng t ng (kiu s) th chn Identity: tng t ng, ngi dng khng nhp c, thng c dng lm kha chnh Identity Seed: Gi tr khi u Identity Increment : khong cch gia 2 gi tr lin tip nhau V d : Nu cho field MaSV l Identity, Identity Seed = 100 v Identity Increment = 10 th gi tr MSSV s ln lt pht sinh nh sau 100, 110, 120.. (mi ln tng 10 n v) Lu Mi bng ch c mt ct identity Khng th cp nht ct identity. Ct Identity khng c NULL
FIT, HCMUP
(45 45) )
FIT, HCMUP
(46) 46)
Xa table Click vo mc Tables hin th danh sch Table tng ng (bn phi) Chn table trong danh sch Tables Click phi chut vo mc table cn xa, vd: MyTable Chn mc Delete trong menu context Sa Table Click vo mc Tables hin th danh sch Table tng ng (bn phi) Chn table trong danh sch Tables Click phi chut vo mc table cn sa, vd: MyTable Chn mc Design Table trong menu context Xut hin mn hnh tng t nh mn hnh New Table chng ta thit k li Table i tn Table Click vo mc Tables hin th danh sch Table tng ng (bn phi) Chn table trong danh sch Tables Click phi chut vo mc table cn i tn, vd: MyTable Chn mc Rename trong menu context Nhp tn mi vo Nhp liu choTable Click vo mc Tables hin th danh sch Table tng ng (bn phi) Chn table trong danh sch Tables Click phi chut vo mc table cn nhp liu, vd: MyTable Chn mc Open Table trong menu context Chn mc Return all rows Xut hin mn hnh cho php nhp liu cho Table ang chn
FIT, HCMUP
(47 47) )
FIT, HCMUP
(48) 48)
FIT, HCMUP
(49 49) )
FIT, HCMUP
(50) 50)
<Danh sch cc ct c chn> < Danh sch cc bng> <iu kin chn> <Danh sch ct cn nhm> < iu kin nhm> < Danh sch ct cn sp xp>
ngha : Chn nhng thng tin (field) cn xem t database. Vd1: Cho quan h HocSinh(MaHS, TenHS, NgaySinh, DiaChi) Yu cu Lit k tn v ngy sinh ca tt c cc hc sinh SELECT TenHS, NgaySinh FROM HocSinh Vd2 : Cho quan h HoaDon(MaHD, TenKH, SoLuong, DonGia) Yu cu Lit k Ho n ca khch hng v Thu VAT ca ha n vi VAT c tnh bng nh sau: VAT = s lng * n gi * 10% Nhn xt: Thu VAT khng phi l filed trong DB, n l kt qu ca biu thc SoLuong * DonGia * 10% SELECT MaHD, TenKH, Soluong * DonGia * 0.1 as VAT FROM HoaDon LNG TRN HY HIN FIT, HCMUP (51 51) )
<Danh sch cc ct c chn> < Danh sch cc bng> <iu kin chn> <Danh sch ct cn nhm> < iu kin nhm> < Danh sch ct cn sp xp>
Nhn xt: Trong mnh SELECT cho php chng ta thc hin chn Danh sch cc Field trong cc Table (vd1) Biu thc tnh ton bao gm t hp cc php tnh ca cc field v cc hng s khc (vd2) Ngoi ra trong mnh SELECT chng ta c th s dng cc hm gp nh SUM, MAX, MIN, AVG, COUNT ca cc field, phn ny s c gii thch v minh ha trong mc GROUP BY
FIT, HCMUP
(52) 52)
<Danh sch cc ct c chn> < Danh sch cc bng> <iu kin chn> <Danh sch ct cn nhm> < iu kin nhm> < Danh sch ct cn sp xp>
ngha Cho bit thng tin c chn trong mnh SELECT c ly t nhng Table no vi iu kin kt (Join) nh th no? V d Vd1: Cho quan h HocSinh(MaHS, TenHS, NgaySinh, DiaChi) Yu cu Lit k tn v ngy sinh ca tt c cc hc sinh SELECT TenHS, NgaySinh FROM HocSinh
FIT, HCMUP
(53 53) )
FIT, HCMUP
(54) 54)
INNER JOIN C php TableA INNER JOIN TableB ON JoinCondition ngha : Thc hin php kt gia 2 TableA v TableA, kt qu ca php kt l nhng dng trong tha mn iu kin kt V d Cho quan h HocSinh(MaHS, TenHS, NgaySinh, DiaChi) DiemThi(MaHS,HocKy,NH,Diem) HocSinh DiemThi
MaHS
TenHS
NgaySinh
DiaChi
MaHS
Hoc Ky 01
NH
Diem
MaHS
TenHS
NgaySinh
DiaChi
MaHS
Hoc Ky 01
NH
Diem
01
Hang
10/10/1984
123
01
2007
10
01
Hang
10/10/1984
123
01
2007
10
02
Phu
11/10/1079
124
03
01
2008
02
Phu
11/10/1079
124
03
01
2002
SELECT TenHS, Diem, HocKy,NH FROM HocSinh INNER JOIN DiemThi ON HocSinh.MaHS=DiemThi.MaHS
SELECT TenHS, Diem, HocKy,NH FROM HocSinh LEFT JOIN DiemThi ON HocSinh.MaHS=DiemThi.MaHS TenHS Hang Phu
FIT, HCMUP
(55 55) )
FIT, HCMUP
(56) 56)
MaHS
TenHS
NgaySinh
DiaChi
MaHS
Hoc Ky 01
NH
01
Hang
10/10/1984
123
01
2007
10 01 Hang 10/10/1984 123 01 2007 10 Kt qu TenHS Diem 10 8 NULL HocKy 01 01 NULL NH 2007 2002 NULL
02
Phu
11/10/1079
124
03
01
2002
8 02 Phu 11/10/1079 124 03 01 2002 8 Hang NH 2007 2002 SELECT TenHS, Diem, HocKy,NH FROM HocSinh FULL JOIN DiemThi ON HocSinh.MaHS=DiemThi.MaHS NULL Phu
SELECT TenHS, Diem, HocKy,NH FROM HocSinh RIGHT JOIN DiemThi ON HocSinh.MaHS=DiemThi.MaHS
FIT, HCMUP
(57 57) )
FIT, HCMUP
(58) 58)
MaHS
TenHS
NgaySinh
DiaChi
MaHS
Hoc Ky 01
NH
Diem
01
Hang
10/10/1984
123
01
2007
10
02
Phu
11/10/1079
124
03
01
2002
Kt qu MaHS SELECT HocSinh.MaHS, DiemThi.MaHS, TenHS, Diem, HocKy,NH FROM HocSinh CROSS JOIN DiemThi 01 02 01 02 MaHS 01 01 03 03 TenHS Hang Phu Hang Phu Diem 10 10 8 8 HocKy 01 01 01 01 NH 2007 2007 2002 2002
FIT, HCMUP
(59 59) )
FIT, HCMUP
(60) 60)
Aggregate Function
AVG COUNT COUNT(*) MAX MIN SUM STDEV STDEVP VAR VARP
Description
Tnh gi tr tung bnh. m s gi tr khc null m s hng trong mt bng hoc mt nhm bao gm c gi tri null hoc lp. Tm gi tr ln nht Tm gi t nh nht Tnh tng tt c cc gi tr. lch thng k ca mi gi tr. lch thng k i vi tp hp chung c tnhca mi gi tr. Phng sai thng k ca mi gi tr. Phng sai thng k i vi tp hp chung c tnh ca mi gi tr.
FIT, HCMUP
(61 61) )
FIT, HCMUP
(62) 62)
FIT, HCMUP
(63 63) )
FIT, HCMUP
(64) 64)
FIT, HCMUP
(66) 66)
CU LNH INSERT/DELETE/UPDATE
TNG QUAN LP TRNH CSDL
Cu lnh INSERT C php INSERT INTO < TableName> <ColumnList> VALUES < Value1, Value2,... > V d Vd1: Cho quan h HocSinh(MaHS, TenHS, NgaySinh, DiaChi) Yu cu : Thm b sau vo Table hc sinh (001,Nguyen Van A,08/20/2002,a) INSERT INTO HocSinh VALUES (001,Nguyen Van A,08/20/2002,a) Cu lnh UPDATE C php UPDATE < Tn bng> SET Tn ct 1 = gi tr , Tn ct = gi tr , ... WHERE < iu kin> Cu lnh DELETE C php DELETE FROM < Tn bng> WHERE < iu kin>
FROM
CSDL
SELECT
FIT, HCMUP
(67 67) )
FIT, HCMUP
(68) 68)
FIT, HCMUP
(69 69) )
FIT, HCMUP
(70) 70)
FIT, HCMUP
(71 71) )
FIT, HCMUP
(72) 72)
FIT, HCMUP
(73 73) )
FIT, HCMUP
(74) 74)
FIT, HCMUP
(75 75) )
FIT, HCMUP
(76) 76)
KHAI BO BIN
KHAI BO BIN
Khai bo bin
C php DECLARE @Name DataType @Name: l tn ca bin, phi c bt u vi k t @ DataType: kiu d liu ca bin, bao gm tt c cc kiu d liu ca h thng tr cc kiu sau: text, ntext, image. V d --Khai bo bin lu tr s Record trong mt Table no DECLARE @nNumRecord int --Khai bo bin lu tr s tng s tin DECLARE @SumMoney decimal(18,2) --Khai bo bin lu tr tn DECLARE @sName char(30)
FIT, HCMUP
(77 77) )
FIT, HCMUP
(78) 78)
KHAI BO BIN
C php 1: SET @Name = Value @Name: Tn bin Value: Gi tr cn gn cho bin C php 2: SELECT @Name = Value @Name: Tn bin Value: Gi tr cn gn cho bin Hoc SELECT @Name = coloum FROM TableName @Name: Tn bin Column: Tn ct trong Table cn gn cho bin V d C php 1: DECLARE @HoTen char(20) SET @HoTen = Nguyn Cng Ph C php 2: DECLARE @HoTen char(20) SELECT @HoTen = Nguyn Cng Ph hoc --Tm lng ln nht ca tt c cc nhn vin DECLARE @MaxSalary decimal(18,2) SELECT @MaxSalary = MAX(Salary) FROM Employee
MaHS
TenHS
NgaySinh
DiaChi
MaHS
HocKy
NH
Diem
01
Hang
10/10/1984
123
01
01
2007
10
02
Phu
11/10/1079
124
03
01
2002
-V d 1: Lit k danh sch hc sinh c ngy sinh vo ngy 10/10/1977 DECLARE @NgaySinh datetime SET @NgaySinh=10/10/1984 SELECT * FROM HocSinh WHERE NgaySinh = @NgaySinh
V d 3: Lit k danh sch cc hc sinh c a ch l 123 v im thi ln hn 10 DECLARE @DiaChi varchar(50), @Diem Decimal SELECT @DiaChi=123, @Diem=10 SELECT * FROM HocSinh JOIN DiemThi ON HocSinh.MaHS = DiemThi.MaHS WHERE DiaChi = @DiaChi AND DiemThi >= @Diem
FIT, HCMUP
(79 79) )
FIT, HCMUP
(80) 80)
Ni dung
ADO.NET
Lng Trn Hy Hin hienlth@hcmup.edu.vn
ADO.NET S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
Web Services
User Interface
Data and XML ADO.NET ADO.NET Base Classes .NET Application Common Language Runtime XML ... ...
Ni dung
ADO.NET
S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
Application Database
Driver
ODBC API
DB API DB API
ODBC
Driver Driver
Application
5
Database
Provider
Non-Relational Data
Provider Provider
Driver
ODBC Driver
Driver
Relational Data
Introduction
ADO.NET architecture
Stored into
XML
Database (Oracle, SQL Server)
XML
Database
9 10
ADO.NET
Client Data access technology
ADO.NET (tt)
H tr bi .Net Platform S dng cng ngh XML chuyn i d liu. Tng tc vi tt c cc loi c s d liu. Kh nng thc thi nhanh. S dng cho cc loi ng dng client-server.
Ni dung
ADO.NET S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
11
12
Kin trc
Connected Model
ADO.NET
ADO.NET l mt phn ca .NET Framework
Th vin lp c chc nng x l d liu trong ngn ng MS.NET
Disconnected Model
Cho php ly c mt cu trc phc tp ca DL t CSDL, sau ngt kt ni ri mi thc hin thao tc x l Trc y ADO lun phi duy tr kt ni trong qu trnh thit k
Chng trnh
13 14
ADO.NET
ADO.NET mnh m
K tha cc u im ca ADO Kt hp vi tng thit k hon ton mi
ADO
Recordset : tng ng 1 bng d liu trong database Recordset ch cho php duyt tun t, tng dng mt. Recordset thin v hng kt ni, nn vic h tr ngt kt ni khng mnh Kh nng trao i d liu ADO qua Internet thng c nhiu hn ch. Do dng chun COM
ADO.NET
Dataset : tng ng 1 database
c im ni bt
Thit k hon ton da vo XML
Chun giao tip d liu tt nht trn mi trng Internet hin nay
Dataset : duyt t do, ngu nhin, truy cp thng ti bng, dng ,ct mong mun. Dataset h tr hon ton ngt kt ni
D liu ngt kt ni
ADO.NET trao i d liu qua Internet rt d dng v ADO.NET c thit k theo chun XML, l chun d liu chnh c s dng trao i trn Internet.
15
16
Mi trng connected
Mi user c mt kt ni c nh ti data source u im
Mi trng c bo v tt Kim sot c s ng b D liu lun c mi
Mi trng disconnected
Mt tp con ca d liu trung tm c sao chp v b sung c lp, sau s c merge li vo d liu trung tm. u im
C th lm vic bt c lc no, cng nh c th kt ni bt k vo Data Source Cho php user khc c th kt ni Nng cao hiu sut thc hin ca ng dng
Nhc
Phi c mt kt ni mng c nh Scalability
Khuyt
D liu khng c cp nht mt cch nhanh nht S tranh chp c th xut hin v phi gii quyt
17 18
ADO.NET
Kin trc ca ADO.NET gm 2 phn chnh Phn kt ni i: s dng khi kt ni CSDL v thao tc d liu, phi thc hin kt ni khi thao tc
Connection: qun l vic ng m DB ???Connection: SqlConnection, OleDbConnection Command: lnh truy vn, tng tc d liu khi ang lp kt ni ???Command: SqlCommand, OleDbCommand DataReader: c d liu, ch x l 1 dng d liu ti mt thi im ???DataReader: SqlDataReader, OleDbDataReader DataAdapter: cu ni gia DB v DataSet
19
ADO.NET
Phn ngt kt ni: i l DataSet
DataSet khng quan tm n Database thuc kiu g, v ly d liu t DataAdapter x l DataSet xem nh mt Database trong b nh: bng, quan h DataSet c cc thnh phn con nh
DataTable DataRow DataColumn DataRelation Cc i tng nhm: DataTableCollection, DataRowCollection, DataColumnCollection
20
Namespace
System.Data All generic data access classes System.Data.Common Classes shared (or overridden) by individual data providers System.Data.Odbc ODBC provider classes System.Data.OleDb OLE DB provider classes System.Data.ProviderBase New base classes and connection factory classes System.Data.Oracle Oracle provider classes System.Data.Sql New generic interfaces and classes for SQL Server data access System.Data.SqlClient SQL Server provider classes System.Data.SqlTypes SQL Server data types
21
22
Cc lp th vin ADO.NET
System.Data.OleDb: Access, SQL Server, Oracle System.Data.SqlClient: SQL Server System.Data.OracleClient: Oracle c im:
C ba th vin trn v giao tip lp trnh l ging nhau Dng th vin SqlClient truy xut SQL Server nhanh hn OleDb Tng t cho OracleClient
Ni dung
ADO.NET S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
23
24
Database-Specific Classes
IDbCommand Used as wrappers for SQL statements or stored procedure calls. IDbCommandBuilder Used to generate SQL commands (such as INSERT, UPDATE, and DELETE statements) from a SELECT statement. IDbConnection Used to connect to the database. Similar to an ADO Connection. IDbDataAdapter Used to hold select, insert, update, and delete commands, which are then used to populate a DataSet and update the Database. IDbDataReader Used as a forward only, connected data reader. IDbParameter Used to define a parameter to a stored procedure. IDbTransaction Used for a database transaction, wrapped in an object.
25
???DataAdapter
SelectCommand
???Command
Parameters ???Parameter
InsertCommand
UpdateCommand
???DataReader
DeleteCommand 26
Connected Model
Kt ni vo CSDL Thc hin lnh
Thm/Xa/Sa d liu c d liu t CSDL
Connected Model
Kt ni vo CSDL
Cc lp ph trch kt ni
ODBCConnection OleDBConnection SqlConnection OracleConnection
27
28
29
30
SQL2005 ConnectionString
Theo c quyn ca SQL Server (c user, pass):
server= HIENLTH-PC\SQLEXPRESS; database = QLHS; user id=sa; password=sa
31
32
Tp tin lu tr kt ni
Cho php ngi dng c th cu hnh cc gi tr thuc tnh cho chui kt ni CSDL. Thng c dng *.ini, *.txt. T .NET 1.0 tr ln c th s dng tp tin App.config (nh dng XML) cha khai bo cc tham s cng gi tr v cc ch th khc. V d: Tp tin DBConfig.ini
33
34
con.ConnectionString =
ConfigurationManager.ConnectionStrings[SqlServer "]. ConnectionString;
35
36
Command
37
38
40
V d:
OleDbCommand cmd = new OleDbCommand(); cmd.Connection = cnn; cmd.CommandText = INSERT INTO Hocsinh VALUES(5, 'L Vn Xim','11/12/2006', 'Khnh Ha', '221 Nguyn Vn C')"; cmd.ExecuteNonQuery();
Cc bc thc hin:
Tham s ha cu lnh: ? hoc @[tn tham s]. To cc parameters tng ng cho command. t gi tr cho cc parameter mi khi dng command thc hin cu lnh.
41
42
t gi tr cho cc parameter
foreach (Student s in studentList) { cmd.Parameters[@id] = i; cmd.Parameters[@ten] = s.studentName; cmd.Parameters[@dtb] = s.studentMarks; cmd.ExecuteNonQuery(); }
Cc provider khc:
cmd.CommandText = SELECT * FROM HocSinh WHERE tenhocsinh = ?; cmd.CommandText = INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb) + VALUES(?, ?, ?);
43
44
Parameter(cont) MS Access
V d
OleDbCommand cmd = new OleDbCommand(); cmd.Connection = cnn; cmd.CommandText = "INSERT INTO Hocsinh VALUES (@Ma,@Ten,@Diachi,@NgaySinh,@Toan,@Van); OleDbParameter para=cmd.Parameters.Add("@Ma",OleDbType.Integer); para.Value=1; para=cmd.Parameters.Add("@Ten",OleDbType.VarWChar); para.Value= N"L Vn A"; para=cmd.Parameters.Add("@Diachi",OleDbType.VarWChar); para.Value= N"Nguyn Vn C"; para = cmd.Parameters.Add("@Ngaysinh", OleDbType.Date); para.Value = new DateTime(1982,10,1); para=cmd.Parameters.Add("@Toan",OleDbType.Integer); para.Value=5; para=cmd.Parameters.Add("@Van",OleDbType.Integer); para.Value=7; cmd.ExecuteNonQuery();
Command
MaHS i HoTen HocSinh I DiaChi DiaChi i
45
46
Lu :
Truy xut tun t v khng quay lui. Khng cp nht d liu. C ch kt ni.
47
48
DataSet
InsertCommand UpdateCommand
Data Source
DeleteCommand
51
52
Ni dung
S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
53
54
System.Data namespace
DataSet This object is designed for disconnected use and can contain a set of DataTables and include relationships between these tables. DataTable A container of data that consists of one or more DataColumns and, when populated, will have one or more DataRows containing data. DataRow A number of values, akin to a row from a database table, or a row from a spreadsheet. DataColumn This object contains the definition of a column, such as the name and data type. DataRelation A link between two DataTable classes within a DataSet class. Used for foreign key and master/detail relationships. Constraint This class defines a rule for a DataColumn class (or set of data columns), such as unique values.
55
DataSet
DataSet l g?
nh x DataSet Data Source
DataSet l c s d liu c lu tr trong b nh chnh (in-memory database). C ch khng kt ni.
Gm cc i tng
DataTable DataRelation
56
DataSet (cont)
DataSet
Tables
Columns
DataTable
DataColumn
Rows
DataRow
Loi b tt c DataTable: ds.Tables.Clear(); Kim tra tn ti: ds.Tables.Contains(datatable_name); Kim tra tn ti v c th xa c: ds.Tables.CanRemove(datatable_name); m s lng DataTable: ds.Tables.Count (thuc tnh)
57 58
Relations
DataRelation
DataSet - DataTable
DataTable th hin mt bng trong c s d liu. Gm cc i tng:
DataColumn DataRow
59
60
DataSet - DataColumn
DataColumn th hin mt ct trong bng. Cc thuc tnh v phng thc:
ColumnName: tn ct. DataType: kiu d liu ct.
DataSet - DataRow
DataRow th hin mt mu tin trong bng. Cc thuc tnh v phng thc:
RowState: trng thi ca mu tin (Added, Modified, Deleted, Unchanged, Detach). Ton t [i]: truy xut n ct i ca mu tin. Delete(): nh du xa mu tin.
61
62
DataSet (cont)
DataTable table = new DataTable(SinhVien); table.Columns.Add(new DataColumn(MSSV, Type.GetType(Int32)); table.Columns.Add(new DataColumn(HoTen, Type.GetType(string)); table.PrimaryKey = new DataColumn[] { table.Columns[MSSV] }; DataRow row = table.NewRow(); row[MSSV] = 123; row[HoTen] = Nguyn Vn A; table.Rows.Add(row);
63
DataSet (cont)
SqlConnection cnn = new SqlConnection(server=HIENLTH-PC\SQLEXPRESS; database=Northwind; user id=sa; password=sa); SqlDataAdapter da = new SqlDataAdapter(select * from Orders, cnn) DataSet ds = new DataSet(); da.Fill(ds); foreach (DataRow row in ds.Tables[0].Rows) row[OrderDate] = DateTime.Now; da.Update(ds);
64
DataSet (cont)
SqlConnection cnn = new SqlConnection(server=HIENLTH-PC\SQLEXPRESS; database=Northwind; user id=sa; password=sa); SqlDataAdapter da = new SqlDataAdapter(select * from Orders, cnn) DataSet ds = new DataSet(); da.Fill(ds); foreach (DataRow row in ds.Tables[0].Rows) if (row[CustomerID].ToString() == Nguyn Vn A) row.Delete(); da.Update(ds);
DataSet (cont)
So snh DataSet v DataReader:
Tc truy xut. B nh lu tr. Thun tin trong thao tc. C ch kt ni v khng kt ni.
65
66
Trnh by d liu
69
70
Nhc li SqlDataAdapter
SqlDataAdapter c dng in d liu vo i tng DataSet, DataTable v cp nht d liu t hai i tng ny tr li d liu ngun. Cc trng hp to i tng SqlDataAdapter:
SqlDataAdapter(string SQL, SqlConnection cnn); SqlDataAdapter(SqlCommand cmd);
in d liu:
sqlDataAdapter.Fill(datasetname); sqlDataAdapter.Fill(datatable); sqlDataAdapter(DataSet dataset, int start, int end); sqlDataAdapter(int start, int end, DataTable datatable);
71
Phn trang
72
DataView
Th hin ca 1 DataTable. ng vai tr quan trng trong DataBinding 1 DataTable c th c nhiu View khc nhau Dng trnh by d liu di hnh thc lc, sp xp, tm kim, hiu chnh v iu hng d liu trong DataTable
Khai bo DataView
C th s dng cc c php sau:
dataView = new DataView(); dataView.Table = dataTable; dataView = new DataView(dataTable); dataView = new DataView(dataTable, sortFilter, sortString, DataViewRowState);
DataView
DataView
DataView
DataTable
73
74
DataView
Danh sch cc thuc tnh
Tn AllowDelete AllowEdit AllowNew Item (index) RowFilter Sort Table Count ngha Cho php xa trn th hin Cho php chnh sa Cho php thm mi Ly gi tr value ti column c ch s index Thit lp Expression dng lc row Sp xp tng hoc gim theo column Cho bit view ny c to bi table no Ly s lng mu tin c trong DataView
75
DataView
Danh sch cc phng thc
Tn AddNew Delete(index) ngha Thm mi 1 mu tin Xa mu tin th index
76
DataBinding
Hin th d liu trong DataTable, vo cc control (TextBox, ComboBox, DataGrid, ) Gm 2 loi:
Simple Binding Complex Binding
a d liu vo li DataGridView
in d liu vo DataGridView
datagridview.DataSource = datatable; datagridview.DataSource = dataset.Tables[index];
79
80
DataGridView (tt)
Cc thuc tnh ca DataGridView:
DataSource: in d liu vo DataGridView CurrentRow: ly mu tin ang chn CurrentCell: ly ang chn
Ni dung
S lc lch s pht trin Kin trc ADO.NET .NET Data Provider DataSet Hi & p
81
82
Tham kho
Bi ging ADO.NET ca thy Nguyn Minh Huy, H KHTN TpHCM
83
Hng dn gi : s dng cu trc If Else 1.2. Bi 02 Vit chng trnh nhp vo 2 s a, b v c cho bit s ln nht v nh nht trong 3 s a, b v c vi giao din nh sau
1/23
Bi tp thc hnh lp trnh Windows Form vi C# 1.3. Bi 03 - Nhp vo mt s nguyn t 0 n 9, hin th bng ch cc k s trn, v d: Nhp 1 Nhp 2 Nhp 3 .. Nhp 9 Mt Hai Ba Chn
Hng dn gi : s dng cu trc switch case 1.4. Bi 04 - Nhp vo mt s nguyn dng N, hin th bng ch s va nhp trn, v d: Nhp 1 Mt Nhp 12 Mi hai Nhp 123 Mt trm hai mi ba
2/23
Bi tp thc hnh lp trnh Windows Form vi C# 1.5. Bi 05 - Vit chng trnh nhp vo gi tr nguyn dng N, tnh tng S = 1 + 2 + 3 ++ N vi giao din nh sau
Hng dn gi : s dng vng lp While, For 1.6. Bi 06- Vit chng trnh nhp vo gi tr nguyn dng N, tnh tng S = 1 + 2 + 3 ++ N vi giao din nh sau
Tng t tnh tng - S = 1 + 3 + 5 + 7 ++ (2N +1) - S = 2 + 4 + 6 + 8 ++ 2N. 1.7. Bi 07: Vit chng trnh gm 1 form trong c 1 button v 1 label hin th s ln nhn button .
3/23
Bi tp thc hnh lp trnh Windows Form vi C# 1.8. Bi 08- Vit chng trnh nhp vo gi tr nguyn dng N, v s thc X, tnh tng S = X + X2 + X3 + X4 +..+ XN
Tng t tnh tng - S = X + X3 + X5 + X5 +..+ X2N+1 - S = X2 + X4 + X6 +..+ X2N 1.9. Bi 09 (BT c hng dn) My tnh n gin thc hin cc chc nng +, -, *, /.
MY TNH N GIN
4/23
Bi tp thc hnh lp trnh Windows Form vi C# Bc 1: To Project, ghi tiu form, icon form, n nt Minimize, Maximize
btn9.
string chuoitam = ""; //Dng lu gi tm gi tr ca s nhp vo char toantu; //Dng lu k hiu ton t ca php ton, vd: +, -, *, / double[] toanhang = new double[2];//Lu 2 ton hng (s hng) ca php ton double ketqua; //Dng lu kt qu ca php ton int buoc = 1; //Dng lu gi s bc thc hin php ton
5/23
Bc 4: Vit hm cho chung cho cc phm s (0 9) t tn cho phm va bm l b. Nu b rng, kt thc hm. Ngoi ra chng ta cng loi tr trng hp c rt nhiu s 0 ng trc mt s khc (v d 000000001 chnh l 1). Do b.Text == 0 && chuoitam.Length == 0 th kt thc hm.
//Hm bm phm s private void NumberButtons(object sender, EventArgs e) { Button b = sender as Button; if ((b == null) || (b.Text == "0" && chuoitam.Length == 0)) return; chuoitam += b.Text; txtManHinh.Text = chuoitam; }
Bc 7: Vit hm x l cho nt C
//Hm x l nt C private void btnC_Click(object sender, EventArgs e) { if (chuoitam.Length == 0) { buoc = 1; toanhang[0] = toanhang[1] = 0.0; toantu = ' '; ketqua = 0.0; } else chuoitam = "0";
6/23
1.10. Bi 10: Chng trnh my tnh ca Windows 7. Thit k my tnh b ti c cc chc nng nh hnh bn. Khng cn thit k menu.
1 2
Sinh vin t hon chnh thm cho trng hp bm nhiu du = lin tip. Sinh vin t hon chnh thm cho trng hp bm nhiu ln 1 ton t.
7/23
Bi tp thc hnh lp trnh Windows Form vi C# 1.11. Bi 11: Vit chng trnh tnh tin dch v nha khoa vi yu cu sau:
1. Khi chy chng trnh (F5) s xut hin mn hnh nh trn, trong cm thao tc trn tt c cc i tng tr i tng textbox lu tr tn khch hng v nt thot. 2. Nu ngi dng nhp tn khch hng th mi cho php thao tc trn cc control khc (tr textbox tng cng). 3. Nhn vo nt Tnh tin, thc hin tnh tng tin theo la chn ca khch hng v hin th thng bo dng Khch hng: XYZ cn tr s tin ABC vi XYZ l tn nhp vo, ABC l s tin cn tr. 4. Nhn vo nt Xa: a mn hnh tr li trng thi lc khi to. 5. Nhn vo nt Thot: Xut hin thng bo Bn mun c ng chng trnh khng? o Nu ngi dng chn Yes, ng chng trnh. o Nu ngi dng chn No, tr li chc nng trc .
8/23
2.1.2. Cc thuc tnh: 2.1.2.1.Khng cho php resize form: Property FormBorderStyle Size Text
2.1.2.2. Cc Control: Control Type Property Name Button Location Text Name Button Location Text Text Label Text Label Location Text Label Location Name TextBox Location Text Name TextBox Location Text Name ComboBox Items Location MaxDropDownItems Size Lng Trn Hy Hin
New Value closeButton 273, 16 Close addButton 16, 16 Add Title First Name 132, 56 Last Name 248, 56 firstTextBox 132, 80 (blank) lastTextBox 248, 80 (blank) titleComboBox Mr.;Mrs.;Ms.;Miss.;Dr. 16, 80 4 100,21 9/23
Bi tp thc hnh lp trnh Windows Form vi C# ListBox Text Name Location Size (blank) namesListBox 16, 112 336, 69
Ghi ch: Bi tp ny sinh vin t thc hin 2.2. Bi 02: Sercurity Panel 2.2.1. Xy dng ng dng theo yu cu sau: Mt phng lab mun thit lp mt Sercurity Panel t bn ngoi ca. Ch cho php nhng cc c nhn c trch nhim mi c vo v mi ln ng nhp h phi nhp cc sercurity code c cung cp. Nhng sercurity code (hay cn gi l access code) sau c xem l hp l v cung cp cho cc nhm nhn vin nh bng sau: Value Group Technicians 6990 oe 6999 Custodians 0100 Scientist 9998, 1006 1008 Lng Trn Hy Hin 10/23
Bi tp thc hnh lp trnh Windows Form vi C# Mt khi nhp access code th s c hai trng thi: granted hoc denied. Tt c thng tin truy cp s c hin th trong mt khung thng tin bn di keypad. Nu access l granted th ngy, thi gian, group (technician, custodian, scientist) s c hin th khung thng tin. Trng hp access l denied th ngy, gi v thng tin Access denied s hin th khung bn di. Ngoi ra user nu ch nhn mt con s sercurity code th s hin th ra thng bo l ngy, gi v Restricted Access. 2.2.2. Giao din chng trnh:
2.2.3. Yu cu nng cao:3 - B sung chc nng log file: tt c thng tin login d access granted hay denied u c ghi nhn vo file dng text. File ny c lu tr cng vi th mc ca ng dng.
11/23
Khi nhn vo nt ng nhp, thc hin kim tra o Nu tn ngi dng = DHSP v mt khu = tinhoc th hin th thng bo (MessageBox) ng nhp thnh cng o Ngc li: thng bo Khng ng tn ngi dng/mt khu Khi nhn vo nt Thot Kt thc chng trnh
3.2. Bi 02 Vit chng trnh th hin mn hnh ng nhp (login) chng trnh nh sau
Khi nhn vo nt ng nhp, thc hin kim tra o Nu tn ngi dng = DHSP v mt khu = tinhoc th n mn hnh ng nhp Hin th mn hnh chnh vi hnh thc th hin nh sau
12/23
o Ngc li: thng bo Khng ng tn ngi dng/mt khu Khi nhn vo nt Thot hin th thong bo Bn c mun thot chng trnh khng ? o Nu chn Yes Kt thc chng trnh o Ngc li: tr li mn hnh login
13/23
Bi tp thc hnh lp trnh Windows Form vi C# 3.3. Bi 03 Vit chng trnh qun l hc sinh vi h thng menu v Toolbar nh sau4
Nhn vo chc nng H thng\ng nhp trong menu hoc nt hnh Chm kha trn ToolBar, hin th mn hnh login nh trong bi tp 01. Nhn vo chc nng Qun l hc sinh\Thng tin hc sinh trong menu hoc nt hnh M tt nghip trn ToolBar, hin th mn hnh thng tin sinh vin nh trong bi tp 03. Nhn vo chc nng H thng\Thot: Kt thc chng trnh
14/23
Bi tp thc hnh lp trnh Windows Form vi C# H thng Menu nh sau: H thng thc n
H thng
Danh mc
Qun l hc sinh
Bo co thng k
Gip
- Hng dn s dng - Tc gi
15/23
Bi tp thc hnh lp trnh Windows Form vi C# 3.4. Bi 04 Vit chng trnh th hin thng tin sinh vin vi giao din nh hnh v
Nhn vo nt c d liu t file: c d liu t tp tin ThongTinSV.txt vi nh dng nh bn di a vo cc control trn mn hnh. - nh dng tp tin ThongTinSV.txt H v ch lt: Nguyn Vn Tn: Thnh Ngy Sinh: 05/11/2005 Tn gio: Khng a ch: 123 Trng nh Q3 in Thoi: 8234567 Email: nvthinh@hcmup.edu.vn Dn tc: Kinh Gii tnh: Nam Ngoi ng: Anh Vn, Php Vn - Nhn vo nt Lu d liu xung file, ghi d liu thng tin sinh vin trn mn hnh xung tp tin ThongTinSV.txt - Khi nhn vo nt Thot Kt thc chng trnh -
16/23
4. Phn 4: ha GDI+
4.1. Hp thoi mu n gin 4.1.1. S dng hp thoi Font: Thit k Form theo mu:
Yu cu: Hin th hp thoi mu (ColorDialog) thay i mu nn, mu ch. 4.1.2. Mt s kin thc: Khi nim c bn: 1 i tng Graphics qun l 1 bi cnh ha Mi phng thc c ngun gc t System.Windows.Forms.Form k tha 1 phng thc virtual OnPaint. Cc i s trong phng thc OnPaint bao gm 1 i tng PaintEventArgs. Graphics g = e.Graphics; FONT Khai bo th vin: System.Drawing v System.Drawing.Text 4 lp c bn lin quan n i tng FONT:FontStyle, FontFamily,GraphicsUnit, Font Hm v chui: void DrawString(string s, Font font, Brush brush, float x, float y); void DrawString(string s, Font font, Brush brush, Point p); Bt v: Pen(Color c); Pen(Color c, float width); Pen(Brush b); Pen(Brush b, float width); Chi t: SolidBrush: Chi t c vi mu chn. SolidBrush(Color c); FontStyle: Thnh phn c t Bold Ch in m Italic Ch in nghing Lng Trn Hy Hin 17/23
Bi tp thc hnh lp trnh Windows Form vi C# Regular StrikeOut Underline Ch bnh thng Ch vi ng gch ngang thn Ch gch chn
FontStyle style = FontStyle.Bold; Font: Font(tn_font, c); Font(tn_font, c, style); Cc hm v V (rng): Draw____ V ng thng: DrawLine V elip: DrawEllipse V hnh ch nht: DrawRectangles V hnh c: Fill____ Hm t hnh ch nht: void FillRectangle(Brush brush, int x, int y, int width, int height); 4.2. Bi tp v hnh Thit k Form theo mu: Panel Button FlatStyle: Flat
NumbericUpDown
S kin v: n chut tri ly im u tin, nh phm chut xc nh im cui cng. Sau thc hin v v t theo mu theo hnh chn trn khung v. Hng dn: //Cc thuc tnh
private private private private private Color fill; //lu tr mu t Color border; //lu tr mu nt v bool mouse_is_down=false; Point start; Graphics g; //i tng ha
//S kin Form_Load g = panel1.CreateGraphics(); border = Color.Black; fill = Color.Red; //S kin Click chn mu cho Border ColorDialog dl = new ColorDialog();
18/23
//S kin r (di chuyn) chut trong vng v (MouseMove) if (mouse_is_down ) { g.Clear(panel1.BackColor); Point end = new Point(e.X, e.Y); switch(comboBox1.SelectedIndex) { //line case 0: g.DrawLine(new Pen(border,(int)DoDayNetVe.Value),start, end); break; //empty ellipse. case 1: g.DrawEllipse(new Pen(border,(int)DoDayNetVe.Value), start.X, start.Y,e.X-start.X,e.Y-start.Y); break; //filled ellipse case 2: { g.DrawEllipse(new Pen(border,(int)DoDayNetVe.Value), start.X, start.Y,e.X-start.X,e.Y-start.Y); g.FillEllipse(new SolidBrush(fill),start.X, start.Y,e.Xstart.X,e.Y-start.Y); break; } //empty rectangle case 3: g.DrawRectangle(new Pen(border,(int)DoDayNetVe.Value), start.X, start.Y,e.X-start.X,e.Y-start.Y); break; //filled rectangle case 4: g.DrawRectangle(new Pen(border,(int)DoDayNetVe.Value), start.X, start.Y,e.X-start.X,e.Y-start.Y); g.FillRectangle(new SolidBrush(fill),start.X, start.Y,e.Xstart.X,e.Y-start.Y); break; default: break; } }
19/23
20/23
21/23
Bi tp thc hnh lp trnh Windows Form vi C# 5.3. Lu : - Sinh vin ch cn lm nhm chc nng c bn l t yu cu - Chc nng nng cao ty chn, sinh vin kh gii nn lm. 5.4. M rng: Sinh vin c th m rng bt c tnh nng no cho ng dng ca mnh, s sng to lun c nh gi cao.
Hng dn c bn:
Sinh vin tm hiu cc thuc tnh c bn ca RichTextBox control nh: - SelectionFont - SelectionFont.Style: m t cc kiu ch o Gm c cc kiu m t trong enumeration FontStyle nh sau
SelectionAlignment: thit lp thuc tnh canh l o Gm c cc kiu m t trong enumeration HorizontalAlignment nh sau
- BackColor: thit lp mu nn cho document cha text, s dng struct Color Cc phng thc ca RichTextBox nh: - Cut(): cut on text c chn vo Clipboard - Copy(): copy on text c chn vo Clipboard - Paste(): dn on text trong Clipboard vo document. Hng dn chc nng Bold trn ToolStrip: Lng Trn Hy Hin 22/23
Sinh vin lm tng t vi cc chc nng: Italic, Underline Hng dn chc nng canh l Thit lp thuc tnh canh l tri cho RichTextBox tn rtbDoc
rtbDoc.SelectionAlignment = HorizontalAlignment.Left;
Hng dn chc nng cut, copy v paste cho RichTextBox tn rtbDoc rtbDoc.Cut(); // cut on text c chn vo clipboard tng t cho copy v paste Hng dn chc nng nng cao Insert nh vo document: Sinh vin t nghin cu on code sau:
OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Bitmap File| *.bmp"; if (dlg.ShowDialog() == DialogResult.OK) { Image img = Image.FromFile(dlg.FileName); Clipboard.SetDataObject(img); DataFormats.Format df; df = DataFormats.GetFormat(DataFormats.Bitmap); if (this.rtbDoc.CanPaste(df)) rtbDoc.Paste(df); }
23/23
C T YU CU BI TP PROJECT 02
Ni dung yu cu: Vit chng trnh qun l hc sinh vi yu cu nh sau 1.1. C s d liu chng trnh gm c cc Table sau (SQL Server 2005) Table NguoiDung: qun l danh sch ngi dng c php ng nhp vo h thng, vi cu trc & d liu tng ng nh sau: MaND TenND MatKhau HoTen (ID) (UserName) (Password) (FullName) 1 Admin Admin Qun tr h thng 2 DHSP dhsp DHSP DiaChi (Address) 123 Trng nh 280 An Dng Vng 153/2 Hong Vn Th Email admin@yahoo.com dhsp@yahoo.com
Sv01
Sv01
Sinh Vin
Sv01@yahoo.com
Table HocSinh: qun l danh sch hc sinh ca chng trnh, vi cc field nh sau STT Tn field Kiud liu Ghi ch 1. MaHS Numeric M hc sinh, kha chnh, t ng tng 2. Ho nvarchar(50) H v ch lt 3. Ten nvarchar(30) Tn hc sinh 4. NgaySinh DateTime Ngy sinh 5. DiaChi nvarchar(100) a ch 6. DienThoai nvarchar(50) in thoi 7. Email nvarchar(50) 8. TonGiao Numeric Tn gio 9. DanToc Numeric Dn tc 10. Hinh Image Hnh 11. GioiTinh Int Gii tnh 0: N 1: Nam 12. AnhVan Int Anh vn 0: khng c 1: c 13. PhapVan Int Php vn 0: khng c 1: c 14. HoaVan Int Hoa vn 0: khng c 1: c 15. HoTenCha nvarchar(50) H tn cha 1/9
Bi tp thc hnh project 02 16. 17. 18. 19. 20. NgheNghiepCha DiaChiCha HoTenMe NgheNghiepMe DiaChiMe nvarchar(50) nvarchar(50) nvarchar(50) nvarchar(50) nvarchar(50) Ngh nghip ca Cha a ch ca cha H tn m Ngh nghip ca m a ch ca m
Table TonGiao: lu tr danh mc tn gio MaTG 1 2 3 4 5 Ten Pht gio Khng Thin cha gio Cao i Ha ho
Lc quan h:
2/9
Bi tp thc hnh project 02 1.2. Vit chng trnh th hin mn hnh ng nhp (login) chng trnh nh sau
Khi nhn vo nt ng nhp, thc hin kim tra o Nu tn ngi dng v mt khu tn ti trong Table NguoiDung th n mn hnh ng nhp Hin th mn hnh chnh vi hnh thc th hin nh hnh mn hnh chnh bn di Nu TenND = Admin th cho php xem tt c cc chc nng trong h thng menu Nu TenND = DHSP th cho php xem tt c cc chc nng trong h thng menu ngoi tr chc nng Qun l ngi dng trong h thng v danh mc Ngc li th cho php xem tt c cc chc nng trong h thng menu ngoi tr chc nng Qun l ngi dng trong h thng, danh mc, Qun l hc sinh o Ngc li: thng bo Khng ng tn ngi dng/mt khu Khi nhn vo nt Thot hin th thong bo Bn c mun thot chng trnh khng ? o Nu chn Yes Kt thc chng trnh o Ngc li: tr li mn hnh ng nhp.
3/9
4/9
Bi tp thc hnh project 02 H thng Menu nh sau: (c th thm nu thy cn thit) H thng thc n
H thng
Danh mc
Qun l hc sinh
Bo co thng k
Gip
- Hng dn s dng - Tc gi
5/9
Bi tp thc hnh project 02 Nhn vo chc nng H thng\ng nhp trong menu hoc nt hnh kha trn ToolBar, hin th mn hnh ng nhp cho php ng nhp li. Nhn vo chc nng H thng\Thot: Kt thc chng trnh Nhn vo chc nng H thng\Qun l ngi dng trong menu hoc nt hnh 3 ngi trn ToolBar, hin th mn hnh qun l ngi dng nh hnh bn di.
o Khi mn hnh va c load, khng cho php ngi dng thao tc Cc TextBox Cc nt: Ghi, Khng, Thot o X l nt lnh Thm: thm mi ngi dng Cho php nhp thng trong cc TextBox (tr thng tin ID) Disbale cc nt lnh Thm, Xa, Sa, Thot Enable cc nt lnh Ghi, Khng o X l nt lnh Xa: Nu TenNguoiDung = Admin th hin th thng bo khng c quyn xa user ny Ngc li hin th thng bo hi Bn c mun xa khng?
6/9
Bi tp thc hnh project 02 Nu chn Yes th thc hin xa v load li danh sch ngi dng Ngi li (chn No): quay li mn hnh qun l ngi dng o X l nt lnh Sa: cho php sa thng tin ngi dng Cho php nhp thng trong cc TextBox (tr thng tin m) Disbale cc nt lnh Thm, Xa, Sa, Thot Enable cc nt lnh Lu, Khng o X l nt lnh Khng: Hy b thao tc thm/sa thng tin ngi dng Hin th thng tin ngi dng chn trc o X l nt lnh Ghi: cp nht CSDL (thm/sa) thng tin ngi dng v load li danh sch ngi dng Nhn vo chc nng Qun l hc sinh\Thng tin hc sinh trong menu hoc nt hnh thng ngi c c vt trn ToolBar, hin th mn hnh thng tin sinh vin.
7/9
o Khi mn hnh va c load, khng cho php ngi dng thao tc Cc TextBox Cc nt: Ghi, Khng, Thot o X l nt lnh Thm: thm mi hc sinh Cho php nhp thng trong cc TextBox (tr thng tin ID) Disbale cc nt lnh Thm, Xa, Sa, Thot Enable cc nt lnh Lu, Khng o X l nt lnh Xa: Hin th thng bo hi Bn c mun xa khng ? Nu chn Yes th thc hin xa v load li danh sch hc sinh Ngi li (chn No): quay li mn hnh qun l hc sinh o X l nt lnh Sa: cho php sa thng tin hc sinh Cho php nhp thng trong cc TextBox (tr thng tin ID) Disbale cc nt lnh Thm, Xa, Sa, Thot Enable cc nt lnh Lu, Khng o X l nt lnh Khng: Hy b thao tc thm/sa thng tin hc sinh Hin th thng tin hc sinh chn trc o X l nt lnh Lu: cp nht CSDL (thm/sa) thng tin hc sinh v load li danh sch hc sinh
8/9
1.3. S dng Crystal Report to cc Report sau In danh sch th sinh theo dn tc
9/9
Trong dialog "Server Properties", chn Security Phn "Server Authentication", chn option th 2: "SQL Server and Windows Authentication mode"
Bm OK. Restart li SQL Express Service (hoc restart li my nu cn). Login li vo SQL 2005 Express bng user ca bn. 2. TO USER LOGIN VO DATABASE Trong Object Explorer, right click vo phn Security New Login.
Login, chn
2 quyn c bn: db_datawriter (ghi), db_datareader (c). Bm OK hon tt qu trnh to User Login. (Ch quyn trn Database no). Chc cc bn thnh cng!
1. Backup:
Bc 1: Trong ca s ca MSSQL Server Management Studio, chut phi trn Database cn Backup, chn Tasks, chn tip Backup
Bc 3: Bm
2. Restore:
Bc 1: Trong ca s ca MSSQL Server Management Studio, chut phi trn mc Databases, chn Restore Database
v click
Bc 3: Click
Bc 4: Bm
Bc 6: Click
Email: hienlth@hcmup.edu.vn
Gia 2 bng NhanVien v PhongBan c lin kt thng qua kha ngoi MaPB trong bng NhanVien
Hnh 3: Relationship
1/19
Email: hienlth@hcmup.edu.vn
2/19
Email: hienlth@hcmup.edu.vn
3/ Thit k report:
3.1/ Cu trc 1 report Mt report bao gm 5 phn chnh: - Report header: phn thng tin u tin ca report. Mt bo co report thng s gm nhiu trang, report header chnh l phn xut hin ch mt ln trang u tin ca ton report. - Page header: phn hin th thng tin xut hin u mi trang ca report. V d nh mt bo co dng bng c nhiu ct nh: STT, Tn, a ch, ST th u mi trang cn lp li nhng tiu ct ngi c nhn bit d dng ngha mi ct. - Details: phn hin th thng tin chi tit ca report. Mt report thng bao gm nhiu mc vi vai tr nh nhau tng ng vi cc record ca database m report s dng. Phn details s lit k nhng record . - Report footer: phn hin th thng tin xut hin ch mt ln cui report. V d thng tin nh ngi lp bo co l ai, ti u, hm no s c t report footer. - Page footer: phn thng tin xut hin cui mi trang. V d s trang c t page footer.
3/19
Email: hienlth@hcmup.edu.vn
2.2/ Kt ni report n CSDL: T Field Explorer, chn Database Fields, right-click, chn Database Expert:
Trong hp thoi Data Expert, chn node Create New Connection | OLEDB | Make New Connection, right-click chn Make New Connection.
4/19
Email: hienlth@hcmup.edu.vn
Chn Next, Finish tr v hp thoi Data Expert. Trong hp thoi Data Expert, danh sch bn tay phi s l cc thng tin s c hin th ln report.
Crystal Report vs 2005 SQL Server 5/19
Email: hienlth@hcmup.edu.vn
Chng hn, ta cn hin th thng tin bng NhanVien ln report, click chn bng NhanVien v click button phi, click OK. a bng ny sang danh sch bn tay
Trn Field Explorer s hin th danh sch cc field trong table NhanVien.
6/19
Email: hienlth@hcmup.edu.vn
thng tin ta a ln Field Explorer l kt qu ca 1 cu truy vn, ta tr li hp thoi Data Expert, b node NhanVien danh sch bn tay phi
Hp thoi Add Command To Report xut hin, nhp cu lnh sql vo textBox bn tay tri:
7/19
Email: hienlth@hcmup.edu.vn
Trn Field Explorer, danh sch cc thuc tnh c th c hin th trn report s l kt qu ca cu truy vn trn:
8/19
Email: hienlth@hcmup.edu.vn
Dng Wizard:
9/19
Email: hienlth@hcmup.edu.vn
10/19
Email: hienlth@hcmup.edu.vn
11/19
Email: hienlth@hcmup.edu.vn
2.3/ Thit k cc thnh phn ca report Sau khi ly c thng tin t CSDL, ta s thit kt report hin th ni dung ca cc thng tin ny. a/ Thit k Report Header: Report Header, gi s ta s hin th logo ca cng ty v 1 dng vn bn th hin ni dung report. - Thm 1 hnh nh vo report: Ti Report Header, right-click, chn Insert | Picture, xc nh ng dn n file hnh nh s c chn ln report. nh chn vo c th thay i v tr, kch thc ph hp vi kch thc ca report.
12/19
Email: hienlth@hcmup.edu.vn
Thm 1 on vn bn vo report: Right-click, chn Insert | Text Object , nhp ni dung vn bn cn chn. thay i nh dng hin th ca on vn bn ny, click chn i tng, right-click, chn Format Object. - Thm 1 ng k vo report Right-click, chn Insert | Line , ko th ng k cn v
b/ Thit k ni dung bo co ( Details ) T Field Explorer, drag drop cc Database field cn hin th ln report vo vng Details trn report Khi drag drop mt Database field vo vng Details, 1 vn bn c t ng thm vo vng Page Header vi ni dung l tn ct ca field d liu ny, thay i tn ct, double click vo i tng object ny hay right-click, chn Edit Text Object.
13/19
Email: hienlth@hcmup.edu.vn
Tip tc drag drop ln vng Details cc Database field thng tin khc m cn hin th ln report.
Sau khi thit k xong, click vo tab Main Report Review xem kt qu.
14/19
Email: hienlth@hcmup.edu.vn
c/ Hon thin report: - Chn s th t ca tng record trong bo co: Trn vng Details, right-click, chn Insert | Special Fields | Record Number
15/19
Email: hienlth@hcmup.edu.vn
16/19
Email: hienlth@hcmup.edu.vn
nh s trang cho tng trang ca report: Thng tin v s trang s c hin th vng Page Footer ca report Trn vng Page Footer, right-click, chn Insert | Special Field | Page Number
2.4/ Np report ln ca s ng dng: T tab Crystal Reports trn thanh toolBox, ko th 1 control Crystal Report Viewer vo Form
Chy ng dng xem kt qu. 2.5/ Gom nhm vic hin th thng tin: Gi s ta c nhu cu cn gom nhm danh sch nhn vin theo tng Phng ban hin th theo dng sau:
17/19
Email: hienlth@hcmup.edu.vn
Trn Fields Explorer, ti node Group Name Fields, right-click chn Insert Group Trn hp thoi Insert Group, chn thuc tnh dng gom nhm (trong trng hp ny l gom nhm theo tn phng ban ).
Khi ta Insert mt Group vo Report, Group Header v Group Footer s c thm vo Thit k li report vi cu trc nh sau:
18/19
Email: hienlth@hcmup.edu.vn
Kt qu:
2.3/ Hin th report t ngun d liu ly bng lnh SQL Bc 1: Thit k report vi ngun d liu thit k bng tay (kt ni to bng Wizard tc phi thc hin kt ni). Bc 2: Xy dng form hin th Report (trong c i tng crystalReportViewer1) Bc 3: Thc hin kt ni file report thit k ln form hin th report //Ly d liu SqlConnection con = new SqlConnection(Server=.\\SQLEXPRESS; Database=QuanLyNhanVien; User Id = sa; Password = sa;); con.Open(); SqlCommand cmd = new SqlCommand(Chui lnh SQL, con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); con.Close(); ReportDocument rd = new ReportDocument(); rd.Load(ten_file_report); rd.SetDataSource(ds); crystalReportViewer1.ReportSource = rd; Khai bo th vin cho ReportDocument: using CrystalDecisions.CrystalReports.Engine; ----o0o---
19/19