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

Lập trình GUI trong môi trường window

138 828 4
Tài liệu đã được kiểm tra trùng lặp

Đ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 138
Dung lượng 2,06 MB

Nội dung

Lập trình GUI trong môi trường window

Trang 2

Nội dung

Các control cơ bản trong window form

Các Dialog Cách tạo Menu Tạo window Form &

Mô tả các đặc tính của Window Form

Trang 3

1.FORM

Trang 4

 Giao diện người dùng cung cấp phương tiện để

người dùng có thể tương tác được với chương trình ứng dụng.

 Có hai loại giao diện người dùng:

 Giao diện người dùng dạng ký tự (Character User

Interface CUI): người dùng tương tác với chương trình theo câu lệnh nhập từ bàn phím: ví dụ Ms Dos.

 Giao diện người dùng dạng đồ họa (Graphical User

Interface GUI): người dùng tương tác với chương trình thông qua hệ thống các window.

 Giao diện người dùng đồ họa được hiện thực thông qua Window Form và các control chứa bên trong

của nó.

Giao diện người dùng

Trang 5

 Các window form dùng để hiển thị tất cả các

cửa sổ trong chương trình ứng dụng

 Nhận dữ liệu vào từ người dùng và hiển thị

thông tin kết quả.

 Khi tạo ra 1 project kiểu Window Application, sẽ

có 1 window form tự động được thêm vào project.

 Tất cả các Window form được thừa kế từ lớp

Form chứa trong namespace:

System.Windows.Forms

 Cũng có thể kế thừa từ các window form có

sẵn, rồi thêm vào các tính năng mới.

Window Form

Trang 6

Hình sau đây là ví dụ về giao diện một cửa sổ đăng

nhập:

Window form

Trang 7

Visual Studio Net

controls

designer

Properties, events

Trang 8

8

Trang 9

 Project  Add Reference

Trang 10

 Một « form » là một cửa sổ màn hình - một đơn vị giao diện người dùng do Microsoft đưa ra kể từ

Windows 1.0

 Một ứng dụng Windows Forms (WinForms) phải

có ít nhất một cửa sổ « main form » (cửa sổ chính

 Form có thể chứa các component

 Form có thể có các file resource

Trang 14

Windows Forms Application Structure

 A Windows Forms application has three pieces

o the application itself

o forms in the application

o controls on the for m

Application

mainForm

MyForm

label1button1

Label

“Hell…”

Button

“OK”

Trang 15

GUI Tree Structure

Panel

ButtonForm

Trang 16

Form Properties

FormBorderStyle FormBorderStyle:

FixedDialog, Fixed3D…

Kiểu đường viền

ControlBox bool Có system menu box?

Trang 17

Form Properties

SizeGripStyle SizeGripStyle: Show, Hide…

WindowState FormWindowState: Normal,

Maximized, Minimized TopMost bool

Trang 19

StartPosition - FormBorderStyle

FixedDialog : modal dialog boxes

FixedSingle : main form

None : splash screen

Sizable

Trang 20

Application class

Exit Stops all running message loops and closes all windows in the

application Note that this may not force the application to exit

Run Starts a standard message loop on the current thread If a

Form is given, also makes that form visible.

DoEvents Processes any Windows messages currently in the message

queue.

Trang 22

Cơ chế hoạt động Form

Trang 23

Một event là một đối tượng biểu diễn một hành động

 Ví dụ:

o The mouse is moved or button clicked

o The mouse is dragged

o A graphical button is clicked

o A keyboard key is pressed

handler

event

program message

Trang 24

Event Handler:

{ Get N1 and N2 Return N1+N2 Call the program }

Program:

Put N1+N2

Trang 25

GUI Control

GUI Control

Handler

Trang 26

C# WinApp (code tự phát sinh)

namespace MyWindowsApplication1 {

public class MyForm1 : System.Windows.Forms.Form {

// inherit from Form base class

public MyForm1( ) // constructor, calls InitializeComponent( )

private void InitializeComponent( ) // VS auto-generated GUI code

protected override void Dispose( bool disposing )

// standard method to clean up resources

static void Main( ) { // App starts here!

Application.Run(new MyForm1( ));

// create a new MyForm1 and run the main event loop

}

Trang 27

GUI program

GUI program:

main(){

decl data storage;

}

 User input commands

 Non-linear execution

 Unpredictable order

 Much idle time

 Event callback procs

Trang 28

Run(new ) }

callback1(){

do stuff;

} callback2(){

Trang 29

GUI Events

Window System

eventloop

App1 OK

Cancel

App2 code:

OKbtn_click() {

do stuff;

} CancelBtn_click() {

do different stuff; }

App2Form_click() {

do other stuff; }

mouseclick

inputdevice

App1

eventloop

App2

eventloop

whichapp?

whichcontrol?

App2 OK Cancel

Trang 30

1 Đăng ký control để nhận events

 Gắn vào Control một function pointer để gọi callback function

this.button1.Click += new EventHandler(this.button1_Click);

2 Nhận events từ control

 Control sẽ gọi function pointer

private void button1_Click(object sender, EventArgs e){

Trang 31

Event Handler

 Thông điệp gửi đi bằng cách chuyển giao.

 Bộ xử lý sự kiện(Event Handler) sẽ được gọi khi

sự kiện tương ứng phát sinh

void EventMethodName(Object sender, EventArgs e)

Trang 32

 Sự kiện được sinh ra khi người dùng thao tác trên

window form ví dụ như người dùng click chuột, gõ

phím…Chương trình sẽ bắt các sự kiện này để đáp ứng lại yêu cầu người dùng.

 Mỗi control có một danh sách các sự kiện đi kèm theo.

 Các sự kiện có sẵn trong window form là:

Resize

Trang 33

Event handler: là phương thức dùng để xử lý sự kiện.

Sự kiện trong Window Form (tt)

using System; using System.Windows.Forms;

public class MyForm : Form {

void btn1_onclick(object sender, EventArgs e)

{ Text = "Sender: " + sender.ToString( ) + " - Event: " + e.ToString( ); } public MyForm( ) {

Text = "Hello World";

Button btn1 = new Button( );

btn1.Text = "Click Me";

this.Controls.Add (btn1);

btn1.Click += new EventHandler (btn1_onclick); } public static void Main( ) {

Application.Run(new MyForm( )); } }

Trang 34

 Ví dụ sau đây thể hiện đoạn mã của event

handler

private void ClickHandler(object sender,

System.EventArgs e) { MessageBox.Show("Clicked!","My Windows Form",MessageBoxButtons.OK); }

 Sender: là đối tượng phát sinh sự kiện.

 e: dữ liệu được gởi kèm theo với sự kiện.

Sự kiện trong Window Form (tt)

Trang 35

Phương thức trong window form

thực hiện một số thao tác như mở form, đóng

form, load form…

• Show()

• Activate()

• Close()

•SetDesktopLocation()

Trang 36

class Program

{

static void Main(string[] args) {

Form f = new Form();

f.Load += new EventHandler(f_Load);

Trang 39

static void Main(string[] args)

{

Form f1 = new Form();

f1.Text = "2 Paint Event";

f1.BackColor=Color.White;

f1.Paint += new PaintEventHandler(f1_Paint1);

f1.Paint += new PaintEventHandler(f1_Paint2);

Trang 40

Sự kiện được sinh ra khi người dùng thao tác trên window form ví dụ như người dùng click chuột, gõ phím…Chương trình sẽ bắt các sự kiện này để

đáp ứng lại yêu cầu người dùng.

Trang 41

Event handler: là phương thức dùng để xử lý sự kiện.

Sự kiện trong Window Form (tt)

using System; using System.Windows.Forms;

public class MyForm : Form {

void btn1_onclick(object sender, EventArgs e)

{ Text = "Sender: " + sender.ToString( ) + " - Event: " + e.ToString( ); }

public MyForm( ) {

Text = "Hello World";

Button btn1 = new Button( );

btn1.Text = "Click Me";

this.Controls.Add(btn1);

btn1.Click += new EventHandler(btn1_onclick); } public static void Main( ) {

Application.Run(new MyForm( )); } }

Trang 42

 Ví dụ sau đây thể hiện đoạn mã của event

 Sender: là đối tượng phát sinh sự kiện.

 e: dữ liệu được gởi kèm theo với sự kiện.

Sự kiện trong Window Form (tt)

Trang 43

Phương thức trong window form

thực hiện một số thao tác như mở form, đóng

form, load form…

• Show()

• Activate()

• Close()

• SetDesktopLocation()

Trang 44

Thêm GUI Controls

public class MyForm1 : System.Windows.Forms.Form {

private System.Windows.Forms.Button button1;

… // member variables for each GUI control

private void InitializeComponent( ) // VS auto-generated GUI code

// create GUI controls:

this.button1 = new System.Windows.Forms.Button( );

// set properties of GUI controls :

Trang 45

Thêm control

static void Main(string[] args)

{

Form f1 = new Form();

Button b = new Button();

b.Text = "OK";

b.Click+=new EventHandler(b_Click);

b.Location = new Point(10, 10);

Button b1 = new Button();

b1.Text = "Exit";

b1.Click += new EventHandler(b1_Click);

b1.Location= new Point(b.Left, b.Height + b.Top + 10);

Trang 47

Form f = new Form ();

f.Load += new EventHandler (f_Load);

Trang 48

Tạo Form (kế thừa Form cơ sở)

public class MyForm : System.Windows.Forms.Form {

public MyForm( ) // constructor

Tất cả ứng dụng Windows Forms dẫn xuất từ lớp

System.Windows.Forms.Form Một ứng dụng Win forms được tạo như sau:

Trang 49

Form f = new Form();

f.Load += new EventHandler(f_Load);

Button button1 = new Button();

Trang 50

Tạo hàm cho sự kiện control

static int x = 200;

static int y = 200;

private void Button1_Click(System.Object sender,

System.EventArgs e) {

Form form2 = new Form();

form2 Visible = true;

// Set the new form's desktop location so it

// appears below and to the right of the current form

form2.SetDesktopLocation(x, y);

x += 30;

y += 30;

}

Trang 53

Myform f=new Myform();

f.Text = "Ke thua tu " + f.Text;

Trang 55

MessageBox.Show

MessageBox.Show (String strText)

MessageBox.Show (String strText, String strCaption)

MessageBox.Show (String strTex, String strCaption

, MessageBoxButtons mbb)

MessageBox.Show (String strTex, String strCaption

, MessageBoxButtons mbb, MessageBoxIcon mbi)

MessageBox.Show (String strTex, String strCaption

, MessageBoxButtons mbb , MessageBoxIcon mbi,

MessageBoxDefaultButton mbdb)

MessageBox.Show (String strTex, String strCaption,

MessageBoxButtons mbb, MessageBoxIcon mbi,

MessageBoxDefaultButton mbdb, MessageBoxOptions mbo)

Trang 58

Các thuộc tính/ph ương thức của window

form

Dùng để thay đổi giao

diện của Form lúc chạy

Trang 59

2.CONTROLS

Trang 60

Form Controls

 Là đơn vị cơ sở để tạo nên giao diện người

dùng trong lập trình WinForm.

 Là bất kỳ đối tượng nào nằm trong vùng chứa

của Container có khả năng tương tác với người

sử dụng.

vào hoặc xuất dữ liệu trên window form

 Các control có các đặc điểm, các phương thức

và các sự kiện riêng cho control đó

công cụ.

Trang 61

Hình sau đây mô tả một số form control

thường gặp:

Controls

Trang 62

Các lớp cơ sở

System.Windows.Forms.Control -chứa chức năng cơ bản của thao

tác xử lý bàn phím và nhập từ chuột và xử lý tin nhắn window

System.Windows.Forms.ButtonBase - Lớp này hỗ trợ chức năng cơ

bản của một nút

System.Windows.Forms.TextBoxBase - cung cấp chức năng và thuộc

tính thông thuờng cho các lớp thừa hưởng Cả hai lớp TextBox và

RichTextBox sử dụng chức năng cung cấp bởi TextBoxBase

System.Windows.Forms.ScrollableControl - quản lý sự phát sinh và

hiển thị của các thanh cuộn đến người dùng để truy cập đến gốc của

một hiển thị

System.Windows.Forms.ContainerControl - Lớp này quản lý chức

năng yêu cầu cho một control để hành động

System.Windows.Forms.Panel - có thể chứa các control thêm vào,

nhưng khác với lớp ContainerControl, nó phân loại các control một cách

đơn giản

System.Windows.Forms.Form - Tạo bất kỳ loại cửa sổ nào: standard,

toolbox, borderless, modal dialog boxes và multi-document interfaces

System.Windows.Forms.UserControl - tạo một custom control đến

việc được dùng trong một nơi phức tạp trong một ứng dụng hay tổ chức

Trang 63

STANDARD CONTROL

 Một đối tượng control kế thừa trực tiếp/ gián tiếp

từ System.Windows.Forms.Control

 Chia làm 3 loại:

Trang 64

Events

Methods

Label

Trang 67

PROPERTIE S

Trang 69

SetItemChecked

SetItemCheckState

ItemCheck

CheckedListBox

Trang 71

KiỂU TRÌNH BÀY

 Kiểu trình bày cố định

o Thuộc tính Location: là 1 đối tượng của

System.Drawing.Point, góc trên bên trái

o Thuộc tính Size: là 1 đối tượng của

System.Drawing.Size

 Kiểu trình bày động

o Anchoring

o Docking

Trang 72

KiỂU TRÌNH BÀY CỐ ĐỊNH

void InitializeComponent() {

this.nameLabel = new Label();

this.nameTextBox = new TextBox();

this.occupationLabel = new Label();

this.occupationTextBox = new TextBox();

// nameLabel

this.nameLabel.Location = new Point(12, 15);

this.nameLabel.Size = new Size(34, 13);

// nameTextBox

this.nameTextBox.Location = new Point(79, 12);

this.nameTextBox.Size = new Size(110, 20);

// occupationLabel

this.occupationLabel.Location = new Point(12, 42);

this.occupationLabel.Size = new.Size(61, 13);

// occupationTextBox

this.occupationTextBox.Location = new Point(79, 39);

this.occupationTextBox.Size = new Size(110, 20);

}

Trang 73

KiỂU TRÌNH BÀY ĐỘNG

 Anchoring

Trang 74

KiỂU TRÌNH BÀY ĐỘNG

 Docking

Trang 75

CONTAINER CONTROL

 Có khả năng chứa nhiều controls

 Thuộc tính Controls dùng để chứa danh sách các control

Trang 76

THUỘC TÍNH CONTROL COLLECTION

 Là tập hợp chứa các đối tượng control

 Sử dụng Add(),Remove(), RemoveAt() để thêm,

xoá 1 control

 Sử dụng Contain() để kiểm tra 1 control có nằm

trong tập các control của Form không

Form1.Controls.Remove(textbox1);

Form1.Controls.Remove(textbox1);

Form1.Controls.Add(textbox1);

Form1.Controls.Contains(textbox1);

Trang 77

THÊM CONTROL VÀO CONTAINER

 Tạo đối tượng control muốn thêm vào

 Gắn control vào container

CheckBox signatureCheckBox = new CheckBox();

// set propertiessignatureCheckBox.Text = "Signature required";

signatureCheckBox.Left = 24;

signatureCheckBox.Top = 80;

CheckBox signatureCheckBox = new CheckBox();

// set propertiessignatureCheckBox.Text = "Signature required";

Trang 78

LAYOUT CONTROLS

 SplitContainer

Trang 79

LAYOUT CONTROLS

 FlowLayout

Trang 80

LAYOUT CONTROLS

 TableLayoutPanel

Trang 81

1: using System;

2: using System.Windows.Forms;

3: using System.Drawing;

4: 5: namespace TYWinforms.Day2 {

6: 7: public class Calculator : Form {

8: private Button btnAdd;

9: private TextBox tbNumber1;

10: private TextBox tbNumber2;

11: private Label lblAnswer;

12: 13: public static void Main() {

14: Application.Run(new Calculator());

15: }

16: 17: public Calculator() {

18: this.btnAdd = new Button();

19: this.tbNumber1 = new TextBox();

20: this.tbNumber2 = new TextBox();

21: this.lblAnswer = new Label();

22: 23: tbNumber1.Location = new Point(0,0);

24: tbNumber2.Location = new Point(100,0);

25: 26: btnAdd.Location = new Point(0,25);

Trang 82

27: btnAdd.Text = "Add";

28: btnAdd.Click += new EventHandler(this.Add);

29: 30: lblAnswer.Location = new Point(0,75);

Trang 83

public void CreateMyForm() {

Form form1 = new Form(); // Tạo thể hiện cho Form

Button button1 = new Button (); // Tạo button

Button button2 = new Button ();

button1.Text = "OK";

button1.Location = new Point (10, 10); //

// Set the text of button2 to "Cancel"

button2.Text = "Cancel";

button2.Location = new Point (button1.Left, button1.Height +

button1.Top + 10);

// Set the caption bar text of the form

form1.Text = "My Dialog Box";

// Add button1 to the form

form1.Controls.Add(button1); // Add button2 to the form

form1.Controls.Add(button2); // Display the form as a modal dialog box

Trang 85

Dùng để thực hiện một hành động khi người dùng

click chuột vào nó.

tin cho button.

GroupBox1.Text = “Select Gender”

Button

Trang 87

Tạo Button trên Form

class MyForm : Form

{ //Data member to hold Button control

private Button BigButton;

public MyForm()

{

//Set the properties for the Button

BigButton = new Button ();

BigButton Location = new System.Drawing.Point(50, 50);

BigButton Name = "BigButton";

BigButton Size = new System.Drawing.Size(100, 100); BigButton Text =

"Click Me!";

BigButton.Click += new EventHandler(ClickHandler);

//Set properties of the Form itself

ClientSize = new System.Drawing.Size(200, 200);

Controls.Add (BigButton);

Text = "My Windows Form!";

}

Trang 88

VALUE CONTROL

 Dùng để hiển thị và chỉnh sửa các giá trị.

 Có 08 loại:

o String Values: Label, TextBox, StatusBar

o Numeric Values: NumericUpDown, HSrollBar,

VScrollBar

o Boolean Values: CheckBox, RadioButton

o Date Values: DateTimePicker, MonthCalendar

o Graphic Values: PictureBox, PrintPreviewControl

Ngày đăng: 17/08/2012, 09:52

HÌNH ẢNH LIÊN QUAN

Hình sau đây là ví dụ về giao diện một cửa sổ đăng nhập: - Lập trình GUI trong môi trường window
Hình sau đây là ví dụ về giao diện một cửa sổ đăng nhập: (Trang 6)
Hình sau đây mô tả một số form control - Lập trình GUI trong môi trường window
Hình sau đây mô tả một số form control (Trang 61)

TỪ KHÓA LIÊN QUAN

w