You are on page 1of 38

● View → ToolBox : đồ chơi dành cho Forms

⇒ Đổi tên Form


⇒ Đổi tên hiển thị của Form
Lúc nãy trong program.cs
có xuất hiện Application.Run(new StudentListForm());

Lúc này trong Form1 nó nosex tự tạo lại tên class là


StudentListForm

⇒ nên đổi lại cho đồng nhất


Mẹo khi click 2 lần :
⇒ Nên xóa trực tiếp ở đây
Với Nút button
⇒Biểu tượng A -Z như ví dụ Form.Text,Form.Size,...
⇒Đổi tên button thành Say Hello (tên nút bấm )

Tiếp theo thì mình đổi tên biến theo cú pháp con lạc đà :

Tạo 1 sự kiện (giống JavaScript) cho nút button


ví dụ : Khi mình click thì làm gì , …
Lúc này người dùng bấm bấm nó sẽ gọi hàm SayHello (Hàm
Void )
⇒ Nó sẽ trả về kết quả cancel , yes , no ( vì có DialogResult)

Với nút exit :


Với openFileDiaLog1

nó như cửa sổ mở rộng như hình vẽ:


Đổi Name và xóa File Name của OpenFileDiaLog

Filter
● Thuộc tính Filter được sử dụng để xác định các loại tập
tin nào có thể được hiển thị và chọn bởi người dùng khi
họ sử dụng hộp thoại mở tập tin (OpenFileDialog).
Ví dụ về một chuỗi lọc có thể như sau:
Text files (*.txt)|*.txt|All files (*.*)|*.*
⇒ Cấu hình hai cửa sổ trên là Filter mà mình đang làm .

JPEG files |*.jpg;*.jpeg|PNG files|*.pgn

⇒ Tạo nút Choose Image để mở dlgOpenFile


⇒ ví dụ chọn ảnh ngọc trinh thì nó sẽ trả về 1 cái chuỗi
FileName
Nó sẽ trả về tập tin mà mà mình đã chọn

Khi mà click vào ảnh mình đã chọn thì nó trả về string


PictureBox
Đổi Name và BorderStyle của PictureBox
⇒ Ảnh sẽ được nhúng ở trong .resx
Mình cũng phải show ra bức ảnh→ Label .

Label
Đổi tên :

Đổi text
Lỗi ảnh to quá khi thêm

⇒ Lúc này phải sử dụng đến Panel

Panel

Panel trong Windows Forms là một khu vực có thể chứa các
thành phần khác và giúp quản lý chúng dễ dàng hơn. Bạn có
thể dùng Panel để nhóm các nút bấm, hộp văn bản, v.v. lại với
nhau, và nếu cần thiết, bật tính năng cuộn để xem những thành
phần không vừa với kích thước của Panel.

⇒Trong trường hợp của bạn, nếu ảnh quá lớn, đặt nó trong
một Panel có thể giúp người dùng cuộn để xem toàn bộ ảnh
mà không bị mất chi tiết.
Đổi tên Name của panel

Sau đó kích hoạt AutoScroll :


Tiếp theo kích hoạt SizeMode của picture

DataGridViews
Đổi tên DataGridViews

Tiếp theo tạo nút bấm cho DataGridViews

Tạo Event cho nút Load Data


Tạo Class Student cho DataGridViews

Ở trong DataSource thì đưa 1 cái List sẽ lo phần còn lại


dgtStudentList.DataSource = ds; → in Lên DataGridViews

Ứng dụng của Delegate


1.Dùng để mở rộng khả năng của 1 object bất kỳ
⇒ Tức là 1 object được thiết kế trước đó , có thể được làm
nhiều công việc mà lúc lúc thiết kế ra nó , người ta chưa nghĩ
ra , hoặc dự dự kiến object sẽ làm được 1 điều gì đó , nhưng
chưa biết cụ thể là gì → Đến 1 lúc sẽ làm được ( Loose
Coupling )
2.Dùng để xử lý các sự kiện - Event → Điều gì đó xảy ra
trên Object - Đặc biệt Object liên quan đến Windows Forms

, app Desktop

Các Object trên Forms , thì nó là 1 Object gần hoàn chỉnh

● Nó có các đặc tính , hành động như mọi class


Ví dụ :
Button btnExit;
btnExit = new Button();
btnExit.Text() = “Exit”;
…..
Gần hoàn chỉnh : Nó hiển thị trên màn hình ngon lành . Những
nó còn vô dụng - Click vào nó không biết làm gì
● Vì phần này tùy thuộc vào Ai đó - Developer sài nút này
khi viết code
● Để nút bấm làm được điều gì cần dân Dev viết nốt đoạn
code làm gì khi bị click
● class Button {
○ Name :
○ Text
○ color
Click (){
làm gì đâu biết, chừa sẵn chỗ để nhét hàm của ai xài nút
này ,Dev nào xài thì đưa code vào .
→ Đưa code vào , đưa hàm vào ,đưa hàm của chúng ta
vào
}
Click ( tên hàm vào !!! Delegate nhận vào , delegate hàm xử lý
gì đó){
làm gì đâu biết, chừa sẵn chỗ để nhét hàm của ai xài nút
này ,Dev nào xài thì đưa code vào .
→ Đưa code vào , đưa hàm vào ,đưa hàm của chúng ta
vào
GọiHàmCủaDevBênNgoàiĐưaVào();
ví dụ hàm bên ngoài đưa vào :

ví dụ delegate :

}
HàmXửLýClick(){
code của dev xài nút bấm làm cái gì đó
}
// HẬU TRƯỜNG LÚC KÉO THẢ NÚT BẤM,CODE,PROPERTY
Click += HàmXửLýClick; //gán con trỏ hàm cho event đang
chừa chỗ


● Tui click Button mở rộng khả năng của tôi , chấp nhận xài
hàm của các ae bên ngoài , tui button đưa hàm cho
button tôi đi
● Windows kiểm soát click , gọi nút bấm click khi user sài
nút bấm nút , nút được windows đẩy chạy clicks , click thì
gọi hàm delegate của mình chạy → Chuỗi Event đẩy ra ,
và nút bấm làm được mọi việc theo cách ai đó muốn
CODE TIẾP

→ Tiếp theo cần đến textbox

TextBox:

→ Tiếp theo dùng groupBox để trang trí


groupBox

đổi màu :
Click như thế này → Click 1 dòng (nên dùng )

Click như thế này → Click trên một cái ô

SelectionChanged trên DataGridView

Sự kiện này được kích hoạt mỗi khi lựa chọn trong
DataGridView thay đổi. Ví dụ, khi một người dùng chọn một
dòng, ô, hoặc nhiều ô khác nhau, sự kiện SelectionChanged sẽ
được phát ra.
Khi click vao:
Đổi dữ liệu Name và Address:
Sau đó Add new

Windows Forms và Style viết code


● Cách viết code hiện nay gọi là Style All-In-One, 1 Project
của 1 Solution, Toàn Bộ Form - UI .
○ Trong Form chứa code xử lý sự kiện
○ Trong Form chứa luôn cả code liên quan Data đứng
sau Form
⇒ 1 Project 1 Forms chứa vừa Design và Code Event và Code
Data luôn
● Nếu ta cần data không phải từ Ram (New List()) mà là Từ
Database SQLSERVER , Code nên sửa thế nào ?? All-In-
One còn đủ tốt không ???

1. KO TỐT VÌ CODE EVENT TRỘN VỚI CODE XỬ LÝ
DATA( CODE NGHIỆP VỤ KHÁCH HÀNG : ko mượn
quá 5 cuốn , tính giảm giá )
2. KO TỐT VÌ FIX VỚI SQLSERVER

1. Data không từ SQLSERVER , Mà Từ
MYSQL,hoặc,.....
2. Dân DEV gặp nhiều ác mộng , trong đó có ác mộng
MAINTAIN 2 APP ĐỒNG THỜI, SQL
SERVER,MYSQL UI THÌ GIỐNG , DB KHÁC,CÂU
LỆNH SELECT KHÁC
Để giải quyết những vấn đề này, bạn có thể:

● TÁCH UI (FORM VA EVENT) RA RIÊNG


● XỬ LÝ DATA RA 1 CHỖ RIÊNG → tHAY THOẢI MÁI PHẦN
NÀY THÔI

⇒ Sử dụng các nguyên tắc thiết kế như MVC (Model-View-


Controller) hoặc MVVM (Model-View-ViewModel) để giúp tổ
chức mã nguồn một cách rõ ràng và khoa học, làm cho việc
quản lý, mở rộng và bảo trì ứng dụng trở nên dễ dàng hơn.
Search
Search tên
Search tên không có thì search địa chỉ
Search “đông” →
● SE1 : address có chứa từ đông
● SE4 : address có chứa từ đông
● SE5 : name có chứa từ đông

Tên cho các thành phần - COMPONENT (NÚT


NHẤN, CHECKBOX, Ô HỘI THOẠI-DIALOG,...)
TRÊN WINDOWS FORMS

You might also like