intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình ứng dụng trên Pocket PC - Thiết kế các ứng dụng GUI bằng Windows Forms - Nguyễn Tuấn Anh

Chia sẻ: Nguyen Quan | Ngày: | Loại File: PDF | Số trang:13

84
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thiết kế Form bằng Visual Studio .NET cho phép chúng ta thiết kế giao diện ứng dụng trực quan bằng cách kéo thả các điều khiển. Bạn có thể điều chỉnh vị trí các điều khiển, thiết lập các thuộc tính thông qua cửa sổ thuộc tính, và tạo các sự kiện cho các điều khiển.

Chủ đề:
Lưu

Nội dung Text: Lập trình ứng dụng trên Pocket PC - Thiết kế các ứng dụng GUI bằng Windows Forms - Nguyễn Tuấn Anh

  1. Thu vien Hoc Lieu Mo Viet Nam module: m49331 1 Thi t k các ng d ng GUI b ng Windows Forms∗ Nguy n Tu n Anh This work is produced by Thu vien Hoc Lieu Mo Viet Nam and licensed under the Creative Commons Attribution License † Tóm t t n i dung Thi t k các ng d ng GUI b ng Windows Forms 1 Nh ng đi u khi n không h tr Sau đây là danh sách các đi u khi n không đư c .NET Compact Framework h tr . [U+F0B7] CheckedListBox [U+F0B7] ColorDialog [U+F0B7] ErrorProvider [U+F0B7] FontDialog [U+F0B7] GroupBox [U+F0B7] HelpProvider [U+F0B7] LinkLabel [U+F0B7] NotificationBubble [U+F0B7] NotifyIcon [U+F0B7] All Print controls [U+F0B7] RichTextBox [U+F0B7] Splitter 2 Nh ng hàm .NET Compact Framework không h tr Danh sách các hàm .NET Compact Framework không h tr . [U+F0B7] AcceptButton [U+F0B7] CancelButton [U+F0B7] AutoScroll [U+F0B7] Anchor [U+F0B7] Giao di n đa tài li u (MDI) [U+F0B7] KeyPreview [U+F0B7] TabIndex [U+F0B7] TabStop [U+F0B7] Kéo th [U+F0B7] T t c các kh năng in n [U+F0B7] Các đi u khi n Hosting ActiveX ∗ Version 1.1: Jan 20, 2011 11:06 am GMT+7 † http://creativecommons.org/licenses/by/3.0/ http://voer.edu.vn/content/m49331/1.1/
  2. Thu vien Hoc Lieu Mo Viet Nam module: m49331 2 3 Thi t k Form trên Visual Studio .NET Thi t k Form b ng Visual Studio .NET cho phép chúng ta thi t k giao di n ng d ng tr c quan b ng cách kéo th các đi u khi n. B n có th đi u ch nh v trí các đi u khi n, thi t l p các thu c tính thông qua c a s thu c tính, và t o các s ki n cho các đi u khi n. 3.1 C a s thi t k Forms Khi chúng ta t o m t d án Smart Device Extension (SDE), là m t ng d ng c a s , Visual Studio .NET s m d án trong ph n hi n th thi t k . Chúng ta có th l a ch n thi t k t menu View đ đưa vào khung nhìn c a d án. Hình 2.1 đưa đ n cho chúng ta Form Designer c a d án SDE Pocket PC trong khung nhìn Designer. Chú ý r ng thành ph n mainMenu1 phía dư i c a c a s thi t k . Khu thi t k danh riêng cho các đi u khi n, nh ng đi u khi n không có s th hi n tr c quan, gi ng như là đi u khi n MainMenu, đi u khi n ContextMenu, đi u khi n Timer, và còn nhi u đi u khi n khác. Hình 1: SDE Pocket PC trong màn hình Designer view Khi Form Designer đư c s d ng đ xây d ng ng d ng, phương th c InitializeComponent ch a đ ng mã ngu n đ xây d ng giao di n c a ng d ng. Mã ngu n này có nh hư ng l n đ n quá trình th c hi n n u form c a b n ch a đ ng m t vài đi u khi n n. Trên .NET Compact Framework đ ngh các c a s đư c t o theo hư ng t trên xu ng. Ví d , n u m t panel đư c đ t trên form và panel đó ch a m t vài đi u khi n, panel đó s đư c thêm vào form, và sau đó các đi u khi n m i đư c thêm vào panel. http://voer.edu.vn/content/m49331/1.1/
  3. Thu vien Hoc Lieu Mo Viet Nam module: m49331 3 3.2 C a s ToolBox C a s ToolBox ch a đ ng t t c các đi u khi n c a .NET Compact Framework mà chúng ta có th thêm vào ng d ng. Đ thêm m t đi u khi n vào ng d ng vào lúc thi t k r t d như là kéo m t đi u khi n t ToolBox và th vào Forms c a ng d ng trong c a s Form Designer. Hình 2. Hình 2: C a s ToolBox cho d án SDE Pocket PC. 3.3 C a s thu c tính C a s thu c tính ch a đ ng t t c các thu c tính public c a đi u khi n đang l a ch n trong c a s Form Designer. B n có th thay đ i thu c tính c a các đi u khi n b ng cách đưa giá tr vào đi u khi n TextBox bên c nh các tên thu c tính. N u thu c tính có gi i h n s lư ng giá tr , sau đó h p th xu ngđư c hi n th bên c nh tên thu c tính đó. N u giá tr c a thu c tính là m t t p h p các đ i tư ng ho c m t đ i tư ng ph c t p, có th đ c tính đó bên c nh tên thu c tính. Ch n vào đ c tính đó s hi n th m t h p tho i cho phép chúng ta s a đ i giá giá tr c a thu c tính. Hình 2.3 hi n th c a s thu c tính khi m t đi u khi n TextBox đư c ch n. http://voer.edu.vn/content/m49331/1.1/
  4. Thu vien Hoc Lieu Mo Viet Nam module: m49331 4 Hình 3: C a s Properties c a m t đi u khi n TextBox 4 Tìm hi u các n n t ng Window Form Các d án Smart Device Extensions (SDE) ph i nh m vào h đi u hành Pocket PC ho c Windows CE .NET. Hai n n t ng có các hàm giao di n ngư i s d ng API khác nhau. M t d án SDE thao tác b ng cách g i các thư vi n khác nhau cho m i n n t ng. 4.1 N n t ng Windows CE .NET D án Windows CE .NET gi ng như các d án ng d ng Window .NET Framework đ y đ . Trư c tiên, nút minimize, nút maximize, và nút close xu t hi n trong h p đi u khi n c a ng d ng như chúng ta làm vi c trên đ i tư ng Form .NET Framework đ y đ . Các nút này có hành vi như là trên desktop. Chúng ta có th lo i b các nút đó b ng cách gán thu c tính ControlBox c a Form là false. Chúng ta cũng có th lo i b nút minimize và nút maximize b ng cách thi t l p các thu c tính MinimizeBox và MaximizeBox thành false. Khi m t form ng d ng Windows CE .NET đư c t o b ng ph n thi t k Form c a Visual Studio.NET, kích c đư c thi t l p là 640 x 450. B n có th thay đ i thu c tính Size n u nó không phù h p. M c dù l p Form đư c đưa ra thu c tính FormBorderSytle, thi t l p thu c tính Sizable s không nh hư ng t i đư ng vi n c a c a s . Nh ng ng d ng Windows CE .NET không th thay đ i kích c . Nó ch có th thu nh , phóng to h t màn hình, ho c kích c như thu c tính Size. http://voer.edu.vn/content/m49331/1.1/
  5. Thu vien Hoc Lieu Mo Viet Nam module: m49331 5 4.2 N n t ng Pocket PC Các ng d ng Pocket PC trong tương lai s theo hư ng các d án ng d ng Windows .NET Framework đ y đ . Trư c tiên, m t đ i tư ng MainMenu luôn luôn đư c thêm vào m t ng d ng Pocket PC. Chúng ta có th lo i b menu đó, nh ng hành đ ng đó s là nguyên nhân phát sinh ngo i l khi tương tác v i Soft Input Panel (SIP). SIP là m t ph n m m b sung c a bàn phím QWERTY. C a s ToolBox c a Visual Studio .NET ch a đ ng m t đi u khi n InputPanel. Trên m i Pocket PC đi u khi n này cho phép chúng ta tương tác v i SIP. InputPanel cho phép chúng ta nâng nên và h xu ng SIP. InputPanel s g n vào ng d ng khi SIP có kh năng. Trong Form ph i có m t đi u khi n MainMenu h p l cho đi u khi n InputPanel đư c thêm vào trong Form. N u không có đi u khi n MainMenu trên Form, sau đó m t ngo i l s đư c đưa ra vào lúc th c thi khi chúng ta c g n hi n InputPanel. 5 Làm vi c v i Form Đi u khi n Form là nơi ch a các đi u khi n c a ng d ng. Đi u khi n Form hi n di n là m t c a s ch a các đi u khi n c a ng d ng. L p Form có nhi u thu c tính t o ra hành vi khác nhau ph thu c vào n n t ng (target platform). 5.1 nh hư ng c a thu c tính FormBorderStyle Thu c tính FormBorderSytle xác đ nh ki u đư ng vi n c a Form. Giá tr m c đ nh là FormBorderStyle.FixedSingle. Trên Pocket PC, thi t l p thu c tính FormBorderStyle.None đ t o m t form cùng v i đư ng viên và không có tiêu đ . Ki u Form này có th thay đ i kích thư c và di chuy n trong mã ngu n nhưng không th thay đ i b i ngư i s d ng. Thi t l p thu c tính FillBorderStyle.FixedSingle ho c b t kỳ giá tr nào khác s t o ra m t Form bao trùm toàn b màn hình, và Form s không th di chuy n và thay đ i kích thư c. Trên Windows CE .NET, thi t l p thu c tính FormBorderStyle.FixedDialog ho c FormBorderStyle.None s t o ra m t form không có đư ng vi n và tiêu đ . Form s di chuy n và thay đ i kích thư c ch thông qua mã ngu n c a chương trình. Thi t l p thu c tính FormBorderStyle.FixedSingle ho c b t kỳ giá tr nào khác s t o Form có m t kích c tr v thông qua thu c tính Size v i đư ng viên và tiêu đ . Form ch có th thay đ i kích thư c và di chuy n thông qua mã ngu n, và ngư i s d ng s có th di chuy n form. 5.2 S d ng thu c tính ControlBox Thu c tính ControlBox c a Form xác đ nh h p đi u khi n c a Forms có đư c hi n th hay . Thi t l p thu c tính ControlBox thành true s hi n th h p đi u khi n. Thi t l p thu c tính này thành false s n h p đi u khi n. 5.3 Thu c tính MinimizeBox và MaximizeBox Trên Pocket PC h p đi u khi n ch ch a đ ng nhi u nh t m t nút, m t là nút minimize, nhãn X, ho c nút close, nhãn OK. Trên Windows CE .NET h p đi u khi n có th ch a đ ng nút minimize, nút maximize, và nút close. Đ các nút này hi n th đư c đi u khi n b ng thu c tính MinimizeBox và MaximizeBox. B ng 2.1 mô t giá tr v trí c a MinimizeBox và nh hư ng c a m i n n t ng. B ng 2.3 http://voer.edu.vn/content/m49331/1.1/
  6. Thu vien Hoc Lieu Mo Viet Nam module: m49331 6 Hình 4: B ng 2.1. Giá tr thu c tính MinimizeBox và nh hư ng c a nó cho m i n n t ng Hình 5: B ng 2.2. Giá tr thu c tính MaximizeBox và nh hư ng c a nó cho m i n n t ng 5.4 Thu c tính Size Thu c tính Size xác đ nh kích thư c c a c a s ng d ng. Ph thu c vào giá tr c a thu c tính FormBorderStyle, ng d ng có th b qua giá tr thu c tính Size ho c thi t l p giá tr kích thư c đ c bi t cho ng d ng. Trên Pocket PC 5.5 Thi t l p v trí c a Form b ng thu c tính Location Thu c tính Location xác đ nh góc trên bên trái c a Form. Trên Pocket PC thu c tính Location không có nh hư ng tr khi thu c tính FormBorderSytle đư c thi t l p là FormBorderSytle.None. Trên Windows CE v trí c a c a s luôn luôn b ng thu c tính Location, tr khi ng d ng đưa vào tr ng thái phóng to ho c thu nh h t c . 6 Đi u khi n Button L p System.Windows.Forms.Button đư c .NET b sung m t đi u khi n button. Khi ngư i s d ng b m vào nút l nh. Chúng ta có th thao tác s ki n này b ng s th c thi System.EventHandler. Đo n mã sau đây là s th c thi EventHandler cái đó hi n th th i gian hi n hành. Private void button_Click(object sender, System.EventArgs e) { MessageBox.Show(DateTime.Now.ToShortTimeString(), http://voer.edu.vn/content/m49331/1.1/
  7. Thu vien Hoc Lieu Mo Viet Nam module: m49331 7 "The Current Time Is", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } Hình 2.4. ng d ng GiveEmTime th c thi trên Pocket PC 2002 emulator. Nút có nhãn What is the Timeđã đư c b m, và th i gian hi n hành đư c hi n th trong h p tho i. Hình 6: ng d ng GiveEmTime ch y trên Pocket PC 2002 emulator. http://voer.edu.vn/content/m49331/1.1/
  8. Thu vien Hoc Lieu Mo Viet Nam module: m49331 8 Hình 7: B ng 2.3. Mã phím đư c phát sinh b ng Directional Pad trên thi t b Pocket PC 7 Đi u khi n TextBox Đi u khi n cho phép ngư i dùng có th nh p d li u đ u vào cho ng. Đi u khi n TextBox h tr thu c tính BackColor và ForeColor, không gi ng như h u h t các đi u khi n khác trong .NET Compact Frame- work. S ki n Click không h tr , nhưng có h tr các s ki n KeyPress, KeyUp, và KeyDown. Thu c tính PasswordChar đư c h tr . 8 Đi u khi n Label Đi u khi n nhãn cho phép chúng ta hi n th văn b n t i ngư i s d ng. Thu c tính Text c a đi u khi n xác đ nh văn b n s đư c hi n th t i ngư i s d ng. Văn b n hi n th có th có s căn l khác nhau d a vào thu c tính TextAlign. Thu c tính TextAlign có th nh n các giá tr là TopLeft, TopCenter, và TopRight. 9 Đi u khi n RadioButton Nút đi u khi n Radio đưa t i ngư i s d ng m t dãy các giá tr l a ch n lo i tr nhau. Khi m t nút radio trong m t nhóm đư c ch n, các nút khác s t đ ng b b ch n. L p RadioButton có hai s ki n đư c đưa ra khi trang thái ch n c a RadioButton thay đ i: Click và CheckedChanged. S ki n Click phát sinh khi ngư i s d ng ch n vào nút radio. Chúng ta có th thao tác v i s ki n này như là đ i v i s ki n Click c a l p button. S ki n CheckedChanged đư c phát sinh khi tr ng thái ch n c a RadioButton thay đ i b ng l p trình hay giao di n đ ho . S ki n Click s không phát sinh n u thu c tính Checked c a RadioButton đư c thay đ i b ng l p trình. ng d ng demo Arnie.exe, làm th nào đ s d ng m t nhóm các đi u khi n. Hình 2.5 cho th y ng d ng ch y trên Pocket PC emulator. http://voer.edu.vn/content/m49331/1.1/
  9. Thu vien Hoc Lieu Mo Viet Nam module: m49331 9 Hình 8: ng d ng Arnie ch y trên Pocket PC 2002 emulator. Sau đây là đo n mã demo thao tác v i s ki n CheckedChanged. private void radioButton2_CheckedChanged(object sender, System.EventArgs e) { if(this.radioButton2.Checked) MessageBox.Show ("Wrong, The Terminator (1984) O.J Simpson almost got the role...", "Wrong!"); } 10 Đi u khi n CheckBox Đi u khi n CheckBox gi ng như đi u khi n RadioButton. Đi u khi n này đưa đ n cho ngư i s d ng danh sách các l a ch n. Đi u khác là đi u khi n CheckBox có th có nhi u l a ch n trong cùng m t lúc, trong khi đi u khi n RadioButton l a ch n lo i tr . Đi u khi n CheckBox cung c p thu c tính CheckState, xác đinh đi u khi n nào đư c ch n. Thu c tính CheckState th c ch t là m t b ng li t kê. Thành ph n c a nó là Unchecked, Checked, và Indeterminate. Tr ng thái Indeterminate ch có th dư c s d ng khi thu c tính ThreeState c a đi u khi n CheckBox đư c thi t l p là true. Khi CheckState là Indeterminate và thu c tính ThreeState là true, đi u khi n đư c khoanh thành ô vuông. Có nghĩa là tr ng thái ch n không th ki m soát. Đi u khi n s không tr k t qu t i ngư i s d ng khi ch n trong su t quá trình thu c tính AutoCheck đư c thi t l p là false. Khi thu c tính AutoCheck đư c thi t l p true, khi đó có th b m ch n trên đi u khi n. http://voer.edu.vn/content/m49331/1.1/
  10. Thu vien Hoc Lieu Mo Viet Nam module: m49331 10 ng d ng Apples.exe là m t ví d khác đơn gi n là xác đ nh lo i táo ngư i s d ng thích. Đi u khi n CheckBox trên cùng có nhãn là “I like apples.”. Các đi u khi n CheckBox khác có nhãn cùng v i lo i táo khác nhau và m t tr ng thái m m cho đ n khi CheckBox có nhãn “I like apples” đư c ch n, khi đó ngư i s d ng l a ch n lo i táo anh ta ho c cô ta thích. Hình 2.6 cho chúng ta th y ng d ng ch y trên Pocket PC emulator. Hình 9: Các tr ng thái c a đi u khi n CheckBox ch y trên Pocket PC 2002. 11 Đi u khi n ComboBox Đi u khi n ComboBox là đi u khi n th hi n m t danh sách các l a ch n trong s h n ch c a màn hình. ComboBox xu t hi n như là đi u khi n TextBox cùng v i m t mũi tên bên tay ph i. M t danh sách l a ch n th xu ng dư i đi u khi n khi ngư i s d ng ch n vào mũi tên. Khi ngư i s d ng l a ch n m t tùy ch n ho c ch n l i mũi tên, danh sách các tuỳ ch n s cu n lên. Đ thêm m t m c vào đi u khi n ComboBox có th hoàn thành lúc thi t k và lúc th c thi. Đ thêm m t m c vào ComboBox lúc thi t k , đơn gi n là ch n ComboBox trong Form Designer. Sau đó ch n vào ph n bên ph i tên thu c tính Items trong c a s thu c tính. Nó s đưa đ n m t h p tho i String Collection Editor (xem hình dư i). Trong h p tho i String Collection Editor, đưa vào danh sách các m c s xu t hi n trong ComboBox. M i m c ph i xu t hi n trên cùng m t dòng. http://voer.edu.vn/content/m49331/1.1/
  11. Thu vien Hoc Lieu Mo Viet Nam module: m49331 11 Hình 10: H p tho i String Collection Editor Các m c có th đư c thêm vào đi u khi n ComboBox lúc th c thi. Đi u này có th hoàn thành b ng hai cách: Cách1: G i phương th c Add trên thu c tính t p h p Items c a đi u khi n ComboBox. Các m c có th lo i b thông qua phương th Remove trên t p h p Items, ho c t t c các m c có th lo i b b ng cách g i phương th c Clear. Đo n mã sau thêm ba chu i vào đi u khi n ComboBox có tên comboBox1 comboBox1.Items.Add("Hi"); comboBox1.Items.Add("Howdy"); comboBox1.Items.Add("Wuz Up"); Cách2: Chúng ta có th thêm vào ComboBox lúc th c thi b ng cách ràng bu c đi u khi n v i m t đ i tư ng t p h p. Đi u này đư c hoàn thành b ng cách thi t l p DataSource v i m t đ i tư ng t p h p. Khi ComboBox c g ng thêm m t m c vào danh sách, nó s g i phương th c ToString trên m i m c trong DataSource và thêm vào danh sách l a ch n. Chu i có th tuỳ bi n b ng cách thi t l p thu c tính DisplayName c a đi u khi n ComboBox. ComboBox s g i thu c tính riêng bi t trong thu c tính DisplayName và thêm chu i tr v vào danh sách l a ch n. class Customer { string m_First; string m_Middle; string m_Last; public Customer(string first, string middle, string last) { m_First = (first == null) ? string.Empty : first; m_Middle = (middle == null) ? string.Empty : middle; m_Last = (last == null) ? string.Empty : last; } http://voer.edu.vn/content/m49331/1.1/
  12. Thu vien Hoc Lieu Mo Viet Nam module: m49331 12 public string FirstName { get { return m_First; } } public string MiddleName { get { return m_Middle; } } public string LastName { get { return m_Last; } } static string FullNameWithInitial = "{0} {1}. {2}"; static string FullNameNoInitial = "{0} {1}"; public string FullName { get { return (m_Middle.Length > 0) ? string.Format(FullNameWithInitial, m_First, m_Middle[0], m_Last) : string.Format(FullNameNoInitial, m_First, m_Last); } } } private void LoadCustomers() { if(customers != null) return; customers = new Customer[6]; customers[0] = new Customer("Ronnie", "Donnell", "Yates"); customers[1] = new Customer("Moya", "Alicia", "Hines"); customers[2] = new Customer("Veronica", "Christine", "Yates"); customers[3] = new Customer("Diane", "", "Taylor"); customers[4] = new Customer("Kindell", "Elisha", "Yates"); customers[5] = new Customer("Zion", "Donnell", "Yates"); this.comboBox1.DataSource = customers; this.comboBox1.DisplayMember = "FullName"; } Có hai cách đ l y m c đang đư c ch n trong đi u khi n ComboBox. Th nh t, thu c tính SelectedIndex tr v ch s c a m c đang ch n. Ch s này có th đư c s d ng đ truy c p m c đang ch n t thu c tính Items c a đi u khi n ComboBox. Đo n mã sau minh ho thu c tính SelectIndex: string selItem = comboBox1.Items[comboBox1.SelectedIndex].ToString(); Đi u khi n ComboBox cung c p thu c tính SelectedItem, thu c tính này tr v m t tham chi u đ n m c đang ch n. M t là chúng ta có th tham chi u đ n m c đang ch n, chúng ta không c n ph i đưa ch s vào thu c tính Items . Đo n mã sau mô t cách s d ng thu c tính SelectedItem: string selItem = comboBox1.SelectedItem.ToString(); http://voer.edu.vn/content/m49331/1.1/
  13. Thu vien Hoc Lieu Mo Viet Nam module: m49331 13 12 Đi u khi n ListBox ListBox s đư c s d ng n u chúng ta có đ không gian màn hình đ hi n th m t vài tuỳ ch n cho ngư i s d ng trong m t l n. ComboBox và ListBox có các thu c tính và các phương th c gi ng nhau. Bao g m thu c tính t p h p Items và các thương th c Add, Remove, và Clear trên thu c tính Items . Ví d , đo n mã sau thêm chu i vào đi u khi n ListBox lúc thi t k . listBox1.Items.Add("Hi"); listBox1.Items.Add("Howdy"); listBox1.Items.Add("Wuz Up"); Chúng ta có th thêm vào đi u khi n ListBox lúc th c thi b ng cách g n ListBox v i m t t p h p. Trong quá trình g n m t đi u khi n ListBox gi ng v i quá trình trong đi u khi n ComboBox. Trư c tiên, thi t l p DataSource v i m t t p h p. Sau đó, thi t l p thu c tính DisplayMember v i m t m c trong ngu n d li u, m c này s đư c hi n th như là m t chu i. private void LoadCustomers() { if(customers != null) return; customers = new Customer[6]; customers[0] = new Customer("Ronnie", "Donnell", "Yates"); customers[1] = new Customer("Moya", "Alicia", "Hines"); customers[2] = new Customer("Veronica", "Christine", "Yates"); customers[3] = new Customer("Diane", "", "Taylor"); customers[4] = new Customer("Kindell", "Elisha", "Yates"); customers[5] = new Customer("Zion", "Donnell", "Yates"); this.listBox1.DataSource = customers; this.listBox1.DisplayMember = "FullName"; } 13 Các đi u khi n khác [U+F0B7] NumericUpDown [U+F0B7] DomainUpDown [U+F0B7] ProgressBar [U+F0B7] StatusBar [U+F0B7] TrackBar [U+F0B7] ToolBar [U+F0B7] MainMenu [U+F0B7] ContextMenu [U+F0B7] Timer [U+F0B7] OpenFileDialog và SaveFileDialog [U+F0B7] Panel [U+F0B7] HScrollBar và VscrollBar [U+F0B7] ImageList [U+F0B7] PictureBox [U+F0B7] ListView [U+F0B7] TabControl [U+F0B7] TreeView [U+F0B7] DataGrid http://voer.edu.vn/content/m49331/1.1/
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2