













Preview text:
lOMoAR cPSD| 58728417 LẬP TRÌNH TRÊN WINDOWS
TẠO VÀ SỬ DỤNG USER CONTROL GV.TS. Lê Văn Vinh
Khoa CNTT – ĐH SPKT. TP HCM I.
Tạo 1 user control là thanh ProgressBar có thêm label + Tạo project mới: + Thiết kế giao diện:
Kéo 2 control có sẵn: ProgressBar, (prgBar) và Label (lblPrgress) lOMoAR cPSD| 58728417
+ Viết source code như bên dưới using System;
using System.Collections.Generic; using System.ComponentModel; using
System.Drawing; using System.Data; using
System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms; namespace NewControl1 {
public partial class UserControl1: UserControl { public UserControl1() { InitializeComponent(); }
private void UserControl1_Load(object sender, EventArgs e) { } public int Value {
get { return prgBar.Value; } set { lOMoAR cPSD| 58728417 prgBar.Value = value; UpdateLabel(); } } public int Maximum {
get { return prgBar.Maximum; } set { prgBar.Maximum = value; } } public int Step {
get { return prgBar.Step; } set { prgBar.Step = value; } }
// Tao cac methods public void PerformStep() { prgBar.PerformStep(); UpdateLabel(); } public void UpdateLabel() {
decimal d = (Math.Round((decimal)(prgBar.Value * 100) / prgBar.Maximum));
lblPrgress.Text = d.ToString(); lblPrgress.Text += " % Done"; } } }
+ Thêm user control vừa tạo vào cửa sổ ToolBox bằng cách Run và Load: lOMoAR cPSD| 58728417 II.
Sử dụng user control vừa tạo
+ Tạo project mới ngay trong Solution đang làm việc (Add new Project) lOMoAR cPSD| 58728417 + Lập trình cho form này: lOMoAR cPSD| 58728417 using System;
using System.Collections.Generic; using System.ComponentModel; using
System.Data; using System.Drawing; using
System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms; namespace TestNewControl1 {
public partial class Form1 : Form {
Timer t = new Timer(); public Form1() { InitializeComponent(); }
private void btnStart_Click(object sender, EventArgs e) { t.Interval = 500;
t.Tick += new EventHandler(timer_tick);
t.Start(); myProgressBar1.Value = 0; myProgressBar1.Maximum = 50; myProgressBar1.Step = 1; }
private void timer_tick(object sender, EventArgs e) {
myProgressBar1.PerformStep();
if (myProgressBar1.Maximum == myProgressBar1.Value) { t.Stop(); } } } } lOMoAR cPSD| 58728417
Lưu ý, với cách làm này III.
Sử dụng cho các ứng dụng khác
Cách 1: Sử dụng DLL cục bộ, luôn phải mang theo file .DLL ở cùng thư mục với file .exe
của ứng dụng sử dụng DLL đó.
Ở cửa sổ ToolBox, click chuộc phải, chọn Choose Items: lOMoAR cPSD| 58728417
+ Chọn Browse đến file .DLL của user control đã tạo: lOMoAR cPSD| 58728417
+ Tên của user control có trong ToolBox:
Cách 2: Đăng ký DLL với hệ thống. Khi đó các ứng dụng có thể gọi đến Component này ở
bất cứ nơi đâu trên máy tính.
+ Bước 1: Tạo key để đăng ký với hệ thống. Mở ứng dụng Developer Command Prompt. lOMoAR cPSD| 58728417
Giả sử ứng dụng đặt tại Thư mục: D:\\NewControl1. Thực thi các lệnh sau: >cd D:\\NewControl1 >sn –k NewControl1.snk lOMoAR cPSD| 58728417
+ Bước 2: Cấu hình file AssemblyInfo.cs
Thêm 2 dòng sau vào file AssemblyInfo.cs:
[assembly: AssemblyKeyName("NewControl1")]
[assembly: AssemblyKeyFile("..//..//NewControl1.snk")]
Sau đó build lại ứng dụng một lần nữa.
+ Bước 3: Cài đặt Control với Global Assembly Cache (GAC) Ở
cửa sổ command tiếp tục nhập vào: > cd bin\\debug
> gacutil –i NewControl1.dll
Ý nghĩa của dòng lệnh trên là để copy file NewControl1.dll vào thư mục Assembly của hệ
thống (thuộc .NET) ở đây: C:\Windows\Microsoft.NET\assembly\GAC_MSIL\ (Với các
version khác của windows hoặc .NET có thể ở thư mục khác. Có thể dùng chức năng Search của windows để tìm ra).
+ Bước 4: Thêm control vào ToolBox Add
control vào toolBox theo thư mục ở trên:
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\ lOMoAR cPSD| 58728417 lOMoAR cPSD| 58728417
Thanh công: Khi đó, ứng dụng sử dụng Control này có thể chạy trên máy này mà không
cần phải chép file .DLL kèm theo. Bài tập:
1. Hãy tạo ra các user control khác nhau từ các control đã có (Dạng Devired control) lOMoAR cPSD| 58728417
2. Hãy phân tích và tách ứng dụng đã thực hiện thành các phần độc lập với nhau. Sau
đó áp dụng user control để xây dựng thành các components.