1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn Ngữ Lập trình C# Chuong 6

16 423 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 1,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài nguyên ứng dụng Resources• Sau khi chèn xong, tài nguyên sẽ được sử dụng thông qua các đối tượng được định nghĩa trong lớp Resource: • Bây giờ ta có thể thay đổi hình nền của form

Trang 1

Chương 6

NỘI DUNG

• Tài nguyên ứng dụng

• Form và Menu

• Ứng dụng đa tài liệu

2

Tài nguyên ứng dụng (Resources)

• Các dữ liệu có thể được lưu trong ứng dụng như một

phần của file khả thi khi biên dịch ứng dụng

• Ví dụ, lấy ảnh làm nền cho Form như sau:

// ResourcesForm.cs

partial class ResourcesForm : Form {

public ResourcesForm()

{ InitializeComponent();

this.BackgroundImage = new

Bitmap(@"C:\WINDOWS\Web\Wallpaper\Azul.jpg");

} }

• Lưu ý: nếu không có tập tin ảnh trong đường dẫn ở trên thì

công việc của bạn thực hiện không thành công, chương trình

gây lỗi

3

Tài nguyên ứng dụng (Resources)

• Có thể đưa các ảnh hoặc các file khác nằm ngay trong các tập tin exe hoặc dll làm tài nguyên của ứng dụng

• Để làm điều này ta có thể kích phải chuột lên tên Project cần thêm tài nguyên chọn Properties

4

Trang 2

Tài nguyên ứng dụng (Resources)

• Sau khi chèn xong, tài nguyên sẽ được sử dụng

thông qua các đối tượng được định nghĩa trong lớp

Resource:

• Bây giờ ta có thể thay đổi hình nền của form bằng

lệnh:

this.BackgroundImage =

Properties.Resources.Azul;

5

Form và Menu

• Menu cung cấp nhóm lệnh có quan hệ với nhau cho các ứng dụng Windows

Menu

Menu item

Submenu

Shortcut key

6

Form và Menu

• Cách tạo menu

– Trong ToolBox kéo control MenuStrip thả vào form

– Thanh menuBar xuất hiện trên cùng của form

– Trong màn hình design dễ dàng tạo lập các menu item

7

Nhập tên menu

MenuStrip

MenuBar

ToolStripMenuItem

Form và Menu

• Chèn các mục chuẩn

8

Trang 3

Form và Menu

Đặt ký tự &

trước ký tự làm

phím tắt

Tạo menu item mới bằng cách nhập vào textbox

9

Form và Menu

• Thiết lập Shortcut Key cho menu item

Khai báo shortcut key

10

Form và Menu

• Sự kiện cho Menu Item thường dùng là Click

• Ở màn hình Design View kích đúp vào menu item

– VS sẽ tự động tạo trình xử lý cho menu item

11

Trình xử lý cho

sự kiện click của menu item

“Open”

Form và Menu

• Có thể dùng nhiều hệ thống menu trên một form Có thể ẩn hiện menu sử dụng thuộc tính Visible:

// MainForm.cs partial class MainForm : Form { public MainForm() {

InitializeComponent();

this.mainMenuStrip.Visible = true;

this.alternateMenuStrip.Visible = false; }

}

12

Trang 4

Form và Menu

• Đối với form MDI có thể dùng thuộc tính MainMenuStrip:

// MainForm.Designer.cs

partial class MainForm {

void InitializeComponent() {

this.MainMenuStrip = this.mainMenuStrip;

}

}

public MainForm() {

InitializeComponent();

this.MainMenuStrip = this.mainMenuStrip;

}

13

Form và Menu

• Menu ngữ cảnh (Context Menus)

– Xuất hiện khi người dùng kích chuột phải – Thông thường menu này xuất hiện tùy thuộc vào đối tượng trong vùng kích chuột phải

– Trong ToolBox kéo ContextMenuStrip thả vào form

14

Form và Menu

• Menu ngữ cảnh (Context Menus)

– Giống MenuStrip, ContextMenuStrip có thể không chứa

hoặc chứa các mục menu tool strip, lưu trong thuộc tính

ToolStripItemCollection

15

Form và Menu

• Khai báo sử dụng Context Menu

• Mỗi control đều có property là: ContextMenuStrip

– Khai báo thuộc tính này với ContextMenuStrip

• Khi đó người dùng kích chuột phải lên control sẽ hiển thị context Menu đã cài đặt

• Khai báo trình xử lý sự kiện Click cho ContextMenu

– Kích đúp vào menu item của Context Menu để tạo – Hoặc trong cửa sổ Properties -> Event kích đúp vào sự kiện Click

16

Trang 5

Form và Menu

• Demo: tạo contextMenu hiển thị trong ListBox có

menu item Remove,cho phép xóa item đang chọn.

• Tạo Form có mô tả như sau

17

ListBox hiển thị các item

Form và Menu

• Kéo ContextMenuStrip thả vào Form

18

Form và Menu

• Kích vào ContextMenuStrip để thiết kế menu

– Tạo một menu item “Remove” như hình mô tả

19

Soạn thảo các menu item

Form và Menu

• Liên kết ContextMenu với ListBox – Trong cửa sổ properties của ListBox

• Đặt thuộc tính ContextMenuStrip = ContextMenuStrip1

20

Chọn context menu

Trang 6

Form và Menu

• Khai báo trình xử lý sự kiện Click cho menu item

21

Form và Menu

• Demo

22

Context Menu hiển thị khi user kích chuột phải lên ListBox

Thanh công cụ (ToolStrip)

• ToolStrip là sự thay thế cho ToolBar trong các ứng dụng

• Vị trí thường xuất hiện là ngay bên dưới thanh menu

• Cung cấp các button cho phép thực hiện các chức năng

thường dùng trong menu

• ToolStrip cho phép chứa các control

– Các control này dẫn xuất từ ToolStripItem

– Các control bao gồm

• ToolStripSplitButton

• ToolStripDropDownbutton

• ToolStripLabel

• ToolStripProgressBar

• ToolStripSeparator

• ToolStripComboBox

• ToolStripTextBox

23

Thanh công cụ (ToolStrip)

• Cách tạo button trên ToolStrip

– Kéo ToolStrip thả vào form – Add ToolStripButton

24

Tạo button

Trang 7

Thanh công cụ (ToolStrip)

• Để thêm các các nút lệnh chuẩn: nhấn chuột phải

lên toolStrip chọn "Insert Standard items"

25

Thanh trạng thái (StatusStrip)

• Hiển thị thông tin trạng thái của ứng dụng

• Nằm bên dưới cùng của Form.

• Các lớp liên quan

– StatusStrip: là container chứa control khác – ToolStripStatusLabel: control có thể add vào StatusStrip

26

Thanh trạng thái (StatusStrip)

• Tạo các item cho StatusStrip

27

Tạo các item cho

StatusStrip

Các kiểu control cho StatusStrip

Thanh trạng thái (StatusStrip)

• Ví dụ tạo sự kiện Tick của Timer cứ mỗi giây kích hoạt và hiển thị giờ trên StatusStrip

– Kéo Timer thả vào Form – Thiết lập sự kiện Tick cho Timer với Interval là 1000 ms

28

Item dạng Label của StatusStrip

Trang 8

Thanh trạng thái (StatusStrip)

• Demo

29

Ứ ng dụng đa tài liệu

• Ứng dụng cho phép xử lý nhiều document tại một thời điểm

• Các ứng dụng hiện tại thường là dạng MDI

– MS Office – MS Studio.NET – Adobe Photoshop – …

• Ứng dụng MDI thường phức tạp và chức năng xử lý

đa dạng

– Xử lý cùng một dạng document

• MS Word, Adobe Photoshop

– Xử lý nhiều dạng document

• Visual Studio 6: code, design, image…

30

Ứ ng dụng đa tài liệu

• Ứng dụng MDI – MS PowerPoint

31

Document

Ứ ng dụng đa tài liệu

• MDI Parent Window – MDI Child Window

32

Child window

Child window Child

window

Parent window

MDI Application

Chỉ có duy nhất một parent windows

Có nhiều child windows

Trang 9

Ứ ng dụng đa tài liệu

• Cách tạo MDI Form

– Tạo form và thiết lập thuộc tính IsMdiContainer = true, khi

đó form sẽ thay đổi cách thể hiện

33

Ứ ng dụng đa tài liệu

• Tạo một form con để add vào form chính

– Click chuột phải lên tên project trong Solution Explorer

– Chọn Add-> Windows Form – Trong cửa sổ Add New Item

• Chọn tên của form con

– Thiết kế form con theo yêu cầu của ứng dụng

34

Tạo form con

Ứ ng dụng đa tài liệu

• Add form con vào form chính

– Tạo đối tượng của form con

– Thiết lập thuộc tính MdiParent của form con là form chính

– Gọi phương thức Show của form con

• Một cách tổng quát để add form con vào form chính

35

ChildFormClass childForm = new ChildFormClass();

childForm MdiParent = <thể hiện của form cha> ;

childForm Show ();

Lớp form con

Thiết lập form cha (nếu đang

ở trong form cha thì dùng đối tượng this)

Hiển thị form con

Tạo đối tượng cho lớp form con

Ứ ng dụng đa tài liệu

Thuộc tính, phương thức và sự kiện

Thuộc tính của MDI child

IsMdiChild Cho biết form là child hay không MdiParent Xác định form cha của form

Thuộc tính của MDi parent

ActiveMdiChild Trả về form con đang active IsMdiContainer Xác định form là MDI parent hoặc không MdiChildren Trả về mảng chứa các form con

Phương thức

LayoutMdi Xác định cách hiển thị các form con

Sự kiện

MdiChildActivate Xuất hiện khi child form đóng hoặc active

36

Trang 10

Ứ ng dụng đa tài liệu

• Trạng thái Minimize, Maximize và Close

37

Icon của child : minimize, restore, close

Icon của parent : minimize, maximize, close

Icon của child : restore,

maximize, close

Title của parent chứa tên child đang maximize

Ứ ng dụng đa tài liệu

• Sắp đặt các child form

– Sử dụng phương thức LayoutMdi – Tham số là các giá trị MdiLayout enumeration

38

Ứ ng dụng đa tài liệu

• Sắp đặt các child form

39

Ứ ng dụng đa tài liệu

• Tạo ứng dụng MDI: PixView xem ảnh

• Tạo ứng dụng MDI trong đó

– Form cha

• Chức năng open: mở file ảnh từ đĩa

• Gọi form con hiển thị ảnh

• Cho phép sắp xếp các cửa sổ con

– Form con

• Lấy thông tin file từ form cha

• Hiển thị file ảnh lên PictureBox

40

Trang 11

Ứ ng dụng đa tài liệu

• Bước 1: Tạo ứng dụng Windows App

– Thiết lập Form1 là form cha

41

MDI

Ứ ng dụng đa tài liệu

• Bước 2: tạo form con

– Ở cửa sổ Solution Explorer kích chuột phải lên tên Project – Chọn Add -> Windows Form

– Đặt tên cho form con

42

Ứ ng dụng đa tài liệu

• Bước 3: bổ sung control PictureBox vào Form2

• Thiết lập các thuộc tính cho PictureBox

– Dock = Fill

– SizeMode = CenterImage

43

Ứ ng dụng đa tài liệu

• Bước 4: bổ sung constructor cho form2,

– Constructor này có tham số là tên file cần mở

44

Trang 12

Ứ ng dụng đa tài liệu

• Bước 5: tạo menu cho form chính (Form1)

• Kéo MenuStrip thả vào Form1

– Tạo các top menu:

• File

– Open

– Exit

• Window

– Cascade

– TileHorizontal

– TileVertical

45

Ứ ng dụng đa tài liệu

• Bước 6: viết phần xử lý cho menu item “Open”

– Trong màn hình thiết kế kích đúp vào menu item Open – VS.NET sẽ tạo trình xử lý cho menu item

– Phần xử lý được mô tả như sau

• Mở dialog để chọn file

• User chọn 1 file ảnh

• Lấy đường dẫn file ảnh

• Tạo mới đối tượng form2 truyền tham số đường dẫn file

• Thiết lập liên kết giữa form cha và form con

• Hiển thị form2 ra màn hình

46

Ứ ng dụng đa tài liệu

• Đoạn code minh họa xử lý cho menu item “Open”

47

Ứ ng dụng đa tài liệu

• Bổ sung các chức năng sắp xếp form con

– Kích đúp vào các menu item tương ứng trên menu Window – Viết các xử lý cho các menu item

• Gọi hàm LayoutMdi với các tham số tương ứng

48

Trang 13

Ứ ng dụng đa tài liệu

• Demo

49

Ứng dụng đa tài liệu

• Sử dụng mẫu MDI (Using the MDI Parent Project

Item Template)

– Kích phải chuột trên tên Project chọn Add | New Item, mở hộp thoại Add New Item

50

Ứ ng dụng đa tài liệu

• Sử dụng mẫu MDI

– Chọn MDI Parent, đổi tên tập tin và chọn Add, form mới sẽ

được tạo ra trong Project

51

Ứ ng dụng đa tài liệu

• Ghép menu (Menu Merging)

– Menu hệ thống chính trong MDI cha:

// MDIParentForm.Designer.cs using System.Windows.Forms;

partial class MDIParentForm {

MenuStrip menuStrip;

void InitializeComponent() {

this.menuStrip = new MenuStrip();

// MDIParentForm

this.MainMenuStrip = this.menuStrip;

}

Trang 14

Ứng dụng đa tài liệu

• Sử dụng mẫu MDI

– Khi có hệ thống menu của form MDI con, và cần phóng to

form MDI con thì phải ghép hai hệ thống menu chính của

form MDI cha và form MDI con

53

Ứng dụng đa tài liệu

• Sử dụng mẫu MDI

– Tiêu đề của form MDI con cũng được ghép với tiêu đề của form MDI cha

54

Ứ ng dụng đa tài liệu

• Sử dụng mẫu MDI

– Form MDI con và

form MDI cha đều có

hệ thống menu chính

– Ghép menu sử dụng hai thuộc tính MergeAction và

MergeIndex có trong mỗi mục menu

– Việc ghép menu được thực hiện hai bước: bước đầu tiên ở

cấp cao nhất của menu, nếu trùng, thì thực hiện bước sau ở

cấp menu con

55

Ứ ng dụng đa tài liệu

• Sử dụng mẫu MDI

– Form MDI con và form MDI cha đều có

hệ thống menu chính

– Ghép menu sử dụng hai thuộc tính MergeAction và MergeIndex có trong mỗi mục menu

– Việc ghép menu được thực hiện hai bước: bước đầu tiên ở cấp cao nhất của menu, nếu trùng, thì thực hiện bước sau ở cấp menu con

56

Trang 15

Ứng dụng đa tài liệu

• Ví dụ: Nếu hệ thống menu của form MDI cha và MDI con chứa

hệ thống menu như hình trên Thì ta phải thiết kế các thuộc tính

cho các đối tượng thuộc hai hệ thống menu trên như sau:

57

Ứng dụng đa tài liệu

• Ví dụ: Nếu hệ thống menu của form MDI cha và MDI con chứa

hệ thống menu như hình trên Thì ta phải thiết kế các thuộc tính cho các đối tượng thuộc hai hệ thống menu trên như sau:

58

Kế thừa trực quan (Visual Inheritance)

• Ta có thể thiết kế một form mẫu sau đó sử dụng lại

bằng cách kế thừa form vừa tạo.

• Để làm việc này đầu tiên phải thiết kế một form cơ

bản ví dụ là BaseForm.

59

Kế thừa trực quan

• Sau đó kế thừa BaseForm này bằng cách kích phải chuột lên Project chọn Add/ New Item Hộp thoại Add New Item xuất hiện, chọn Inherited Form, đặt tên form và chọn Add Hộp thoại Inheritance Picker hiện ra và chọn BaseForm từ danh sách các Form

60

Trang 16

Kế thừa trực quan

• Có thể thay đổi phạm vi truy cập cho các đối tượng trong

BaseForm để các đối tượng đó có thể thay đổi được giá trị trong

form kế thừa

• ví dụ:

private OpenFileDialog openFileDialog;

private SaveFileDialog saveFileDialog;

đổi thành:

protected OpenFileDialog openFileDialog;

protected SaveFileDialog saveFileDialog;

61

Ngày đăng: 31/05/2015, 14:58

TỪ KHÓA LIÊN QUAN