Bài giảng Lập trình Ứng dụng quản lý - Tuần 8: WinForm (Phần 3)

10/24/2018  
Lập trình Ứng dụng quản lý  
C#.NET  
WinForm (tt)  
Nội dung  
XML cơ bản  
GDI+  
Custom Controls  
1
10/24/2018  
Nội dung  
XML cơ bản  
GDI+  
Custom Controls  
Cấu trúc file xml  
Dựa trên ngôn ngữ đánh dấu (Markup Language)  
Chỉ chứa duy nhất 1 nút (node) bao quát tất cả  
gọi là nút gốc (node root)  
2
10/24/2018  
Cách thức lưu trữ thông tin  
Mỗi node chứa thông tin dựa vào thuộc tính  
(attribute) hoặc text con (inner text)  
Thường sử dụng attribute để lưu các thông tin  
ngắn gọn, đặc trưng,… còn inner text lưu các  
thô ng tin dài  
Phân tích dữ liệu XML  
Dữ liệu trong XML cꢀ thể đưꢁc phâ n tích dựa trên  
nhiꢂu mô hình khác nhau  
Mô hꢀnh tuyꢁn tꢂnh (Linear): theo mô hình này dữ liệu  
đưꢁc duyệt theo dꢃng đường thꢄng, mô hình chỉ phꢅ  
hꢁp vꢆi các dꢃng dữ liệu tꢇnh khô ng cꢀ sự thay đꢈi. Ví  
dụ như ta muốn tìm thô ng tin trong 1 cuốn sách trong  
thư viện chúng ta bắt đꢉu tꢊ chꢋ đꢂ cꢋa sách, đꢌn tên  
sách, đꢌn trang thứ mấy cꢋa sách và dòng thứ mấy. Tuy  
nhiên nꢌu cuốn sách đꢀ đưꢁc tái bản hay chuyển sang  
dꢃng khác thì mô hình này khô ng còn thích hꢁp.  
Mô hꢀnh câ y (Tree Model): như chúng ta đꢍ biꢌt XML  
cꢀ dꢃng cấu trúc phâ n cấp vì thꢌ chúng ta cꢀ thể biểu  
diꢎn dữ liệu trong XML theo cấu trúc câ y. Cấu trúc này  
cꢀ ưu điểm là chúng ta cꢀ thể xác đꢏnh đưꢁc các mối  
quan hệ giữa các phꢉn tử vꢆi nhau.  
3
10/24/2018  
Mô hình đối tưꢁng XML  
Mô hꢀnh đꢃi tưꢄng: Mô hình đối tưꢁng XML là tập hꢁp các  
đối tưꢁng dꢅng để truy xuất và thao tác vꢆi các dữ liệu trong  
XML. Trong mô hình này dữ liệu cꢐng đưꢁc tꢈ chức thành  
dꢃng cấu trúc câ y cꢅng vꢆi các nút. Các đối tưꢁng cꢀ nhiꢂu  
thuộc tính và phương thức để chúng ta cꢀ thể quꢑt cấu trúc  
câ y XML và các phꢉn tử trong câ y.  
Đọc ghi xml  
.NET hỗ trꢁ nhiꢂu cách đọc ghi xml (DOM,  
XmlReader, XmlWriter,…)  
Sử dụng cách đọc ghi theo xml DOM dꢎ dàng  
duyệt ngẫu nhiên một node bất kỳ  
Trong cấu trúc DOM thì: root là document node,  
các thẻ là element node, thuộc tính là attribute  
node, inner text là text node,…  
4
10/24/2018  
Ví dụ DOM  
Cá c thao tá c  
Bắt đꢉu vꢆi đối tưꢁng XmlDocument (lấy nguyên  
nội dung xml và parse sang mô hình xml DOM  
lưu trong bộ nhꢆ).  
Lấy node root  
XmlNode nodeRoot = doc.DocumentElement;  
5
10/24/2018  
Cá c node con  
Phương thức cơ bản  
Lưu ý XmlNode là lꢆp cơ sở cꢋa các dẫn xuất:  
XmlElement, XmlAttribute, XmlText,…  
Các phương thức cơ bản  
6
10/24/2018  
Minh họa  
Ví dụ lấy giá trꢏ thuộc tính cꢋa 1 node  
7
10/24/2018  
Nội dung  
XML cơ bản  
GDI+  
Custom Controls  
GDI+  
GDIGraphicaDevice Interface  
GDI+ là API (Application programming interface)  
cung cấp các lꢆp cho phꢑp  
Tꢃo những đồ họa 2D vector  
Thao tác trên font, chuỗi ký tự  
Hiển thꢏ các đường, hình và ảnh…  
Thư viện FCL chứa các lꢆp thao tác vẽ trong  
namespace SystemDrawing  
Tất cả các thao tác tô vẽ trên GUI đꢂu thực hiện  
bởi chức năng GDI+  
8
10/24/2018  
Kiꢌn trúc  
System.Drawing  
Font  
Color  
Point  
class  
Graphics  
Icon  
structure  
Rectangle  
Size  
Pen  
Region  
HatchBrush  
Image  
Brush  
LinearGradientBrush  
PathGradientBrush  
SolidBrush  
TextureBrush  
Graphics  
Class Graphics thể hiện  
Abstract” drawing surface  
Tập hꢁp những tool” cho phꢑp thao tác trên  
surface đꢀ  
Để lấy đối tưꢁng Graphics  
Sử dụng thuộc tính Graphics đưꢁc truyꢂn cho  
OnPaint()  
Sử dụng phương thức CreateGraphics() cꢋa control  
Lấy tꢊ đối tưꢁng dẫn xuất tꢊ Bitmap  
Gọi hàm Invalidate() thay vì OnPaint()  
9
10/24/2018  
Lấy đối tưꢁng Graphics tꢊ tham số  
protected override void  
OnPaint(PaintEventArgs paintevent)  
{
Graphics grafntevent.Graphics;  
}
Tꢊ tham số  
PaintEvAtgs  
private void maim_Paint(object sender,  
PaintEventArgintevent)  
{
Graphics graf=paintevent.Graphics;  
}
Lấy đối tưꢁng Graphics tꢊ control, image  
private void PaintMe(Control testcontrol)  
{
Graphics graf=testcontrol.CreateGraphics();  
. . .  
}
Lấy tꢊ control  
protected override void  
OnPaint(PaintEventArgs paintevent)  
{
Bitmap bmpimage=new Bitmap(1024,768);  
Graphics graf = Graphics.FromImage  
(bmpimage);  
...  
Lấy tꢊ ảnh  
}
10  
10/24/2018  
Pen  
Pen  
Xác đꢏnh width, style, fill style  
Không cho kꢌ thꢊa, nhưng tꢃo thể hiện đưꢁc  
Trong namespace System.Drawing  
Pen p1 = new Pen(Color.Green);  
Pen p2 = new Pen(Color.blue, 10);  
Sử dụng lꢆp Pens cꢀ 141 pen đưꢁc đꢏnh nghꢇa  
trưꢆc.  
Pen p3 = Pens.Violet;  
Brush  
Brush  
Dꢅng để tô vꢅng bên trong cꢋa hình  
Class Brush là class abstract nên không tꢃo thể  
hiện  
Sử dụng các lꢆp kꢌ thꢊa sau để tꢃo brush  
SolidBrush  
LinearGradientBrush  
TextureBrush  
HatchBrush  
Sử dụng lꢆp Brushes đꢏnh nghꢇa trưꢆc các brush.  
11  
10/24/2018  
Vẽ, tô cơ bản  
Các phương thức vẽ cơ bản  
DrawString  
DrawLine  
DrawRectangle  
DrawEllipse  
DrawImage  
…  
Các phương thức tô cơ bản  
FillRectangle  
FillEllipse  
…  
Tọa độ  
Tọa độ hệ thống  
Gốc tọa độ  
(0,0)  
(w,0)  
(w,h)  
(w1,0)  
(0,0)  
Control  
(0,h1)  
(w1,h1)  
Form,  
Panel,  
GroupBox,  
File Bitmap  
….  
(0,h)  
12  
10/24/2018  
Ví dụ  
Ví dụ cơ bản  
public partial class Form1 : Form  
{
public Form1()  
{
InitializeComponent();  
}
protected override void OnPaint(PaintEventArgs e)  
{
Graphics g = e.Graphics;  
gDrawString("Hello GDI!", Font, Brushes.Red, 20, 20);  
}
}
Ví dụ (tt)  
Ví dụ cơ bản  
13  
10/24/2018  
Ví dụ (tt)  
Ví dụ cơ bản  
Ví dụ (tt)  
Ví dụ cơ bản  
14  
10/24/2018  
Ví dụ (tt)  
Ví dụ cơ bản  
Solid  
Hatch  
LinearGradient  
Texture  
Ví dụ (tt)  
Ví dụ cơ bản  
15  
10/24/2018  
Ví dụ (tt)  
Ví dụ cơ bản  
Ellipse được vẽ lên ảnh, rồi sau  
đó với vẽ ảnh lên Form  
Nội dung  
XML cơ bản  
GDI+  
Custom Controls  
16  
10/24/2018  
Custom Controls  
User Controls (Composite)  
ProgressBar có status  
Derived Controls  
TextBox chỉ cho nhập số  
ListBox cuộn đꢌn cuối  
Owner-Drawn Controls  
ListBox, ComboBox  
ListView, TreeView  
ToolTip  
MenuItem  
New Control  
Dẫn xuất trực tiꢌp tꢊ Control  
Bài tập  
Tꢃo custom TextBox cho phꢑp nhập số thực.  
Tꢃo custom ProgressBar cꢀ hiển thꢏ trꢃng thái.  
Tꢃo custom ListBox cho phꢑp hiển thꢏ màu tꢅy  
chỉnh.  
17  
pdf 17 trang myanh 13840 Free
Bạn đang xem tài liệu "Bài giảng Lập trình Ứng dụng quản lý - Tuần 8: WinForm (Phần 3)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_ung_dung_quan_ly_tuan_6_c_net_winform_ph.pdf