Bài giảng chương 1: Tổng quan về NET.Framework

CLR: Common Language Runtime Quản lý code thực thi của chương trình, quản lý tiến trình, quản lý bộ nhớ, cung cấp dịch vụ biên dịch, tích hợp và tác vụ truy cập từ xa. FCL: Framework Class Library

doc19 trang | Chia sẻ: haohao89 | Lượt xem: 1895 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Bài giảng chương 1: Tổng quan về NET.Framework, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 1: Tổng quan về .NET FRAMEWORK Thành phần của .net FrameWork Appli FCL CLR Operation system Hình 1-1 Kiến trúc khung ứng dụng .Net CLR: Common Language Runtime Quản lý code thực thi của chương trình, quản lý tiến trình, quản lý bộ nhớ, cung cấp dịch vụ biên dịch, tích hợp và tác vụ truy cập từ xa. FCL: Framework Class Library Bao gồm các dịch vụ giao tiếp người sử dụng, điều khiển, truy cập dữ liệu, cung cấp các lớp giao tiếp, các điều khiển giá trị, phương thức truy cập và chức năng chính của hẹ thống, XML, bảo mật,… Ứng dụng dùng C# Visual C# là ngôn ngữ lập trình thiết kế để phát triển ứng dụng chạy trên .net Framework. C# là ngôn ngữ lập trình mạnh, đơn giản, kiểu an toàn và hướng đối tượng, gần giống như ngôn ngữ C. xây dựng ứng dụng trên window Form Có thể làm việc trên môi trường console application bằng màn hình và bàn phím Xây dựng thư viện (class library) Có thể xây dựng điều khiển do người dùng định nghĩa (custom control) Xây dựng ứng dụng báo cáo (Crystal report) Xây dựng ứng dụng SQL Server ứng dụng PDA và mobile: xây dựng ứng dụng cho các thiết bị cầm tay hay máy kỹ thuật số hệ thống cá nhân (smart device) đóng gói và triển khai tạo một solution: dung để quản lý nhiều project Cấu trúc chương trình C# using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } } Chương 2: FORM VÀ CÁC ĐỊNH DẠNH TRÊN FORM Các loại form (mdi form, child form, normal form) MDI form Form được gọi là mdi form khi thuộc tính isMdiContainer có giá trị là true. private void button1_Click(object sender, EventArgs e) { Form frm = new Form2(); frm.IsMdiContainer = true; frm.Show(); } Child form Child form là form mà khi nạp lên sẽ nằm bên trong vùng làm việc của Mdi form. Để form trở thành child form thì phải khai báo thuộc tính MdiParent ứng với Mdiform private void button2_Click(object sender, EventArgs e) { Form frm = new Form3(); frm.MdiParent = this; frm.Show(); } Vì Child Form nạp lên màn hình, kích thước và không gian làm việc phụ thuộc vào MDI form Ngoài ra có thể thêm một mới MDI form từ template có sẵn. Normal form Form mở ra không phải là mdi form và child form thì là mormal form 2. Các thuộc tính của form. 2.1 Nhóm thuộc tính nhận dạng - Name: dùng để nhận dạng form, trong một project có thể có nhiều form, mỗi form phải có tên riêng khác nhau. - Text: dùng để trình bày chuỗi trên thanh tiêu đề. - ShowIcon: khi nạp lên màn hình đều có biểu tượng mặc định ở góc trên bên trái màn hình. - Opacity: cho phép làm trong suốt bề mặt của form để có thể nhìn được biểu tượng của màn hình desktop. 2.2 Nhóm thuộc tính nhận dạng. - Backcolor: chọn màu nền - ForeColor: dùng để định dạng màu mặc định cho chuỗi các Control trên Form. - StartPosition: chỉ định vị trí hiển thị của form trên màn hình - WindowState: có 3 trạng thái: normal, minimized, maximized. - IsMdiContainer: có hai giá trị: true, false. Nếu là false thì là normal form. - ControlBox: luôn tồn tại trên form, trừ khi ko muốn chúng xuất hiện. Khi nhấn vào biểu tượng x ở góc trên bên phải thì form sẽ đóng lại. Nếu không sử dụng biểu tượng này thì khai báo giá trị thuộc tính này là false. 2.3. Nhóm thuộc tính thực đơn. Gồm 2 thuộc tính chính là MainMenuStrip ứng với control MenuStrip và ContextMenuStrip ứng với ContexMenuStrip. Nếu thêm control MainMenuStrip vào Form thì thuộc tính này tự động gán giá trị là tên của MainMenuStrip vừa thêm vào. Nhóm thuộc tính chỉ thị Hai thuộc tính chính dùng để thực hiện chức năng chỉ thị với điều khiển button là AcceptButton và CancelButton. Ví dụ: trên form đăng nhập hệ thống, người sử dụng có thể nhấn fím Enter thay vì nhấn OK, nhấn nút Esc thay vì click nút Cancel. Để làm được điều này ta khai báo 2 nút lệnh btnOK và btnCancel thì chỉ cần đặt 2 thuộc tính AcceptButton là btnOK và CancelButtton là btnCancel private void btnOk_Click(object sender, EventArgs e) { if (textBox1.Text == "") { MessageBox.Show(" Nhập Username:"); textBox1.Focus(); } else if (textBox2.Text == "") { MessageBox.Show(" Nhập Password:"); textBox2.Focus(); } } private void btnCancel_Click(object sender, EventArgs e) { Application.Exit(); } 3.Sự kiện trên form Danh sách các biến cố: Biến cố FormClosed: xảy ra khi form đã đóng Biến cố FormClosing: xảy ra khi form đang đóng Ví dụ: private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("bạn có chắc chắn muốn đóng form không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton .Button1 )==DialogResult .Cancel ) e.Cancel = true; } -Biến cố Click: xảy ra khi người dùng nhấn chuột trên vùng làm việc của form - Biến cố Activated: xảy ra khi form được kích hoạt bằng mã hay do tác động của người sử dụng - Biến cố Load: Xảy ra khi form được hiển thị lần đầu tiên. - Biến cố KeyPress: xảy ra khi một phím được nhấn Ví dụ: private void Form2_KeyPress(object sender, KeyPressEventArgs e) { //label1.Text = "Press by key: "; //while (e.KeyChar.ToString ()!="") label1.Text = label1.Text + e.KeyChar.ToString(); } Phương thức Close: dùng để đóng form Hide: dùng để che giấu form đang mở. Activate: dùng để kích hoạt form. Nếu trong MDIform có nhiều Child Form đang mở thì bạn có thể kích hoạt chúng bằng cách sử dụng phương thức này. Show: cho phép nạp form lên màn hình. Chương 3: Các điều khiển thông thường Bao gồm: Label, Textbox, ComboBox, ListBox, CheckBox, RadioButton, Button. Tất cả các điều khiển này đều có các thuộc tính chung: BackColor: màu nền điều khiển ForeColor: Màu chữ trên điều khiển Text: Chuỗi trình bày trên điều khiển Visible: Thuộc tính che giấu hay hiển thị điều khiển Name: Tên của điều khiển Locked: Khóa không cho di chuyển, hoạt động trên form. Các biến cố chung thường gặp: Click: xảy ra khi người dùng nhấn chuột MouseMove: xảy ra khi người sử dụng di chuột qua vùng làm việc của điều khiển MouseUp: Xảy ra khi người sử dụng nhấn chuột xuống vùng làm việc của điều khiển rồi nhả ra. MouseDown: Xảy ra khi người sử dụng nhấn chuột xuống vùng làm việc của điểu khiển Move: xảy ra khi di chuyển điều khiển Bài tập về nhà: Bài 1: Thiết kế form và viết chương trình calculator trên window. Bài 2: Thiết kế và viết chương trình giải phương trình bậc nhất 1 ẩn ax+b=0. Input: a, b Output: x Cách giải: Xét a=0 Nếu b=0 thì pt vô số nghiệm Nếu b0 thì pt vô nghiệm Nếu a0 thì pt có một nghiệm duy nhât x=-b/a; MessageBox.show(noi_dung_thong_bao, tieu_de,MessageboxButtons, MessageBoxIcon, MessageBoxDefaultButton); Bài tập 3: Thiết kế và viết chương trình cho form đăng nhập. Lable, textbox, button Radiobutton, checkbox Combobox, listbox Combobox Các thuộc tính: Flatstyle: kiểu đường viền của điều khiển DataSource: Tập dl điền vào điều khiển DropDownStyle: Kiểu trình bày danh sách phần tử, mặc định là DropDown (cho phép thêm mới chuỗi), DropDownList (chỉ cho phép chọn trong danh sách), simple (dạng danh sách). Items: tập các phần tử có trong điều khiển. MaxDropDownItems: số phân tử lớn nhất. MaxLength: số kí tự lớn nhất cho phép nhập Text: Chuỗi ứng với nhãn đg chọn SelectedText: Lấy giá trị chuỗi ứng với nhãn đg chọn SelectedItem: Lấy phần tử Object ứng với nhãn dg chọn SelectedValue: Lấy giá trị ứng với ptử kiểu Object đg chọn SelectedIndex: Lấy giá trị chỉ mục ứng với ptử đg chọn. Các biến cố: MouseClick: xảy ra khi người dùng click chuột lên điều khiển. MouseDoubleClick: xảy ra khi người dùng click hai lần liên tiếp lên điều khiển. SelectedIndexChanged: xảy ra khi chỉ mục của phần tử được thay đổi. SelectedValueChanged: xảy ra khi giá trị của phần tử được thay đổi SelectionChangeCommited: xảy ra khi người sử dụng kết thúc quá trình chọn phần tử trên điều khiển. Textchanged: xảy ra khi chuỗi trên điều khiển thay đổi EnabledChanged: xảy ra khi thuộc tính Enabled thay đổi giá trị từ true sang false và ngược lại …. Phương thức: - Add (thêm một phần tử vào Combo box) - Addrange(thêm một số ptử vào combo box) 3.2 Listbox Listbox cho phép chọn nhiều phần tử cùng một lúc Hầu như các thuộc tính phương thức, và biến cố của combobox đều có trong listbox. Thuộc tính: selectionMode: cho phép chọn một hay nhiều phần tử cùng một lúc. Sorted: =true nếu danh sách đc sắp tăng dần. - selectedItems: Bài tập Thiết kế và viết chương trình sau: Sau đó viết chương trình xử lý các sự kiện (biến cố) -Khi click vào button “Thêm” thì sẽ hiển thị lên hộp thoại thông báo “ có lưu dữ liệu không?”, nếu click vào nút “yes” thì dữ liệu nhập ở phần thông tin sẽ thêm vào danh sách sinh viên , nếu click vào nút “no” thì không them vào danh sách - KHi click vào nút “xóa ” thì xuất hiện hộp thoại hỏi “có muốn xóa sinh viên này không?”, nếu click vào nút “Ok” thì sinh viên được chọn trong danh sách sẽ bị xóa. - Khi click vào nút thoát thì chương trình sẽ đóng. Chương 4: Điều khiển đặc biệt Chương này chúng ta tiếp tục tìm hiểu một số điều khiển đặc biệt khác như: tooltip, HelpProvider, ErrorProvider, ProgressBar, ListView, TreeView, DatatimePicker, monthCalendar. Điều khiển tooltip Thuộc tính: + Backcolor: màu nền cửa sổ tooltip. + AutomaticDelay: Thời gian tính bằng phần ngàn giây. + IsBalloon: mặc định thuộc tính này là false, ứng với cửa sổ bật lên hình chữ nhật. Nếu giá trị là true thì cửa sổ bật lên hình chữ nhật góc tròn. + AutoPopDelay: Thời gian tính bằng phần ngàn giây mà cửa sổ của điều khiển tooltip xuất hiện cho đến khi kết thúc nếu người sử dụng rê chuột vào điều khiển. + InitialDelay: Thời gian tính bằng phần ngàn giây mà cửa sổ của điều khiển tooltip xuất hiện từ khi người sử dụng rê chuột vào điều khiển tooltip. + ReshowDelay: Thời gian tính bằng phần ngàn giây mà cửa sổ của điều khiển tooltip tắt từ khi người sử dụng rê chuột ra khỏi điều khiển. + toolTipIcon: Biểu tượng xuất hiện bên cạnh chuỗi khai báo trong thuộc tính ToolTipTitle + ToolTipTitle: Chuỗi xuất hiện bên cạnh biểu tượng. Phương thức: + SetTooltip: Khai báo chuỗi cho điều khiển tương tự như thuộc tính Tooltip on toolTip1 + GetToolTip: Nhận chuỗi trả về từ thuộc tính tooltip on tooltip1 +clear: Loại bỏ tất cả các tooltipText cho các điều khiển trên form. Các bước: gọi điều khiển tooltip ra Điều chỉnh các thuộc tính của đối tượng tooltip Chọn đối tượng (điều khiển_ control) cần giải thích. Ví dụ cần giải thích cho textbox, chọn textbox cần giải thích, => truy cập vào thuộc tính tooltip on tooltip1=> nhập chuỗi cần giải thích Error Provider Điều khiển dùng để cung cấp giao tiếp với người sử dụng thông tin lỗi của điều khiển trên form. Tương tự như tooltip bạn có thể thêm vào điều khiển error Provider vào form để áp dụng cho mọi điều khiển trên form Thuộc tính: + Icon: biểu tượng xuất hiện bên cạnh + BlinkRate: Thời gian tính bằng phần ngàn giây áp dụng cho khoảng cách giữa hai lần nhấp nháy. + IsBalloon: giống như tooltip +BlinkStyle:Kiểu nhấp nháy khi có lỗi xảy ra. Phương thức: + SetError: Khai báo chuỗi cho điều khiển tương tự như thuộc tính error on error Provider; +Geterror: Nhận chuỗi từ thuộc tính error on error provider. + Clear: xóa điều khiển errorprovider. Các bước; Gọi điều khiển errorProvider Viết lệnh kiểm tra dữ liệu. Nếu có lỗi thì gọi errorProvider bằng cách gọi phương thức SetError. Điều khiển HelpProvider Cung cấp cửa sổ trợ giúp cho điều khiển. Mỗi đối tượng HelpProvider cung cấp tập tham chiếu đến điều khiển mà bạn chỉ định. Thuộc tính: + HelpNamespace: chỉ định tên tập tin trợ giúp định dạng .chm hay html chứa nội dung trợ giúp trực tuyến. Thao tác: Thêm điều khiển HelpProvider vào form. Khi them vào form thì một số thuộc tính sẽ xuất hiện như: HelpKeyword on helpProvider, helpNavigator on helpProvider, helpString on helpProvider và showhelp on helpProvider vào tất các các điều khiển. Ví dụ: chọn điều khiển textbox3. Chọn thuộc tính HelpString on helpProvider1. nó cho phép bạn hiển thị một chuỗi như tooltip khi click vào biểu tượng “?” trên góc form. Để xuất hiện biểu tượng “?” trên form ta đặt giá trị của 2 thuộc tính maximizeBox và minimizeBox của form là false, sau đó đặt lại giá trị của thuộc tính HelpButton là true. Nếu người sử dụng nhấn phím F1 thì cửa sổ tiện ích xuất hiện thì ta khai báo thuộc tính HelpNamespace Sau đó chọn textbox2, truy cập vào thuộc tính HelpNavigator on helpProvider1 chọn Index. Và thuộc tính HelpKeyword on helpProvider1 chọn chuỗi password Sau đó chạy chương trình đưa chọn trỏ vào textbox2 và nhấn phím F1. Điều khiển Progressbar Trình bày thời lượng đã thực hiện. Thuộc tính: + Maximum: giới hạn trên của điều khiển + Minimum: Giới hạn dưới của điều khiển + Value: Giá trị đang xử lý của điều khiển + Style: kiểu trình bày của điều khiển + Step: Giá trị ứng với lần nhảy khi xử lý của điều khiển. //Using System.IO; private void button1_Click(object sender, EventArgs e) {//Tạo lập đối tượng DirectoryInfo dir = new DirectoryInfo("D:\\Setup"); // gán thuộc tính maximum của progressBar this.progressBar1.Maximum = dir.GetDirectories().Length; int i = 0; j = 0; foreach (DirectoryInfo f in dir.GetDirectories()) { i++; this.progressBar1.Value = i; this.label1.Text = f.Name; readfile(f.FullName );//do nguoi dung dinh //nghĩa } this.label1.Text = "Complete"; this.label2.Text = i.ToString() + j.ToString() + "file"; } void readfile(string Foldername) { DirectoryInfo dir = new DirectoryInfo(Foldername); foreach (FileInfo f in dir.GetFiles("*.*")) { j++; this.label2.Text = f.Name; Application.DoEvents(); } } } Listview - Dùng để trình bày phần tử dạng danh sách với nhiều hình dạng khác nhau. - Các thuộc tính: + AllowColumnReorder: cho phép sắp xếp cột trên điều khiển Listview ở chế độ thi hành (giá trị mặc định bằng false) + CheckBoxes: Xuất hiện checkbox bên cạnh từng phần tử trên điều khiển listview + Columns: khai báo số cột (có header) của điều khiển listview + FullRowsSelect: True là cho phép tô màu ứng với hàng của phần tử được chọn. + Group: Khai báo nhóm để phân loại các phần tử sau khi trình bày trên điều khiển Listview. + LabelEdit: chọn giá trị là true nếu bạn cho phép người sử dụng thay đổi chuỗi của mỗi phần tử. + LabelWrap: chọn giá trị bằng true thì chuỗi sẽ tự động xuống hàng khi chiều dài không đủ để trình bày. + MultiSelect: chọn giá trị là true nếu bạn cho phép người sử dụng chọn nhiều phần tử. + LargeImageList: Đối tượng ImageList chứa danh sách các Image theo số chỉ mục từ 0 đến n-1 (n là số lượng hình) được sử dụng cho trường hợp thuộc tính View là LargeIcon. + SmallImageList: Đối tượng ImageList chứa danh sách các đối tượng Image theo số chỉ mục từ 0 đến n-1 được sử dụng cho trường hợp thuộc tính View là SmallIcon. + Sorting: Sắp xếp. Nếu chọn Ascending cho phép sắp xếp các phần tử theo chiều tăng dần. + View: Chế độ trình bày tương ứng trên điều khiển listview như : list, Details, LargeIcon, SmallIcon, Title. + SelectedItems: Trả về danh sách phần tử được chọn. + Items: danh sách các phần tử trong listview Chú ý: Trong listview các phẩn tử trong lisview có kiểu ListviewItem. Nếu trong listview có nhiều cột. Giá trị tại mỗi cột có thuộc tính là SubItem. DateTimePicker Điều khiển này cho phép người sử dụng chọn giá trị thời gian và trình bày giá trị này với định dạng cho trước. Các thuộc tính: + CustomFormat: Định dạng thời gian + Format: Chọn định dạng có sẵn của điều khiển DateTimePicker. + MaxDate: là ngày lớn nhất cho phép người sử dụng chọn trên điều khiển DateTimePicker. + MinDate: là ngày nhỏ nhất cho phép người sử dụng chọn trên điều khiển. + Check: bằng true thì checkbox sẽ check mặc định nếu ShowCheckBox bằng true. + ShowCheckBox: chọn giá trị bằng true thì biểu tượng checkbox xuất hiện bên cạnh giá trị. + ShowUpDown: Chọn giá trị là False nếu bạn cho phép người sử dụng chọn giá trị thời gian theo hình thức DropDown. + Value: Gán hay lấy giá trị thời gian trên điều khiển. Các biến cố: + CloseUp: xảy ra khi người sử dụng kết thúc chọn giá trị là ngày trên điều khiển DateTimePicker + FormatChanged: Xảy ra sau khi người sử dụng thay đổi định dạng điều khiển + ValueChanged: xảy ra khi người sử dụng chọn giá trị khác với giá trị trước đó trên điều khiển. Ví dụ: Điều khiển MonthCalendar Tương tự như điều khiển DateTimePicker cho phép ta chọn giá trị thời gian như tờ lịch tháng và trình bày với định dạng cho trước. Thuộc tính: + FirstDateOfWeek: ngày đầu tuần, mặc định là ngày khai báo trong hệ thống. + MaxDate: là ngày lơn nhất cho phép người sử dụng chọn trên điều khiển DateTimePicker +MinDate: Chọn ngày nhỏ nhất cho phép người sử dụng chọn trên điều khiển. + SelectionRange: Khoảng thời gian từ ngày bắt đầu đến ngày kết thúc chọn trên điều khiển. + ShowToday: Chọn giá trị true thì biểu tượng và ngày hiện tại sẽ xuất hiện bên dưới điều khiển. + ShowTodayCircle: chọn giá trị bằng false nếu bạn muốn trình bày viền màu đỏ quanh giá trị ngày hiện tại + ShowWeekNumbers: Chọn giá trị true thì số thứ tự tính theo tuần trong năm xuất hiện bên trái điều khiển MonthCalendar + TodayDate: Gán hay lấy giá trị hiện tại trên điều khiển MonthCalendar. Ví dụ: