15. Building Applications with Windows Forms

Post on 31-Dec-2015

48 views 5 download

Tags:

description

15. Building Applications with Windows Forms. Why Use Windows Forms? Structure of Windows Forms Using Windows Forms Using Controls. Code Samples. Why Use Windows Forms?. Accessibility support Visual inheritance Extensible object model Advanced forms design. Rich set of controls - PowerPoint PPT Presentation

Transcript of 15. Building Applications with Windows Forms

1

15. Building Applications with Windows Forms Why Use Windows Forms?Structure of Windows FormsUsing Windows FormsUsing Controls

Code Samples

2

Why Use Windows Forms?Rich set of controlsFlat look styleAdvanced printing

supportAdvanced graphics

support – GDI+

Accessibility support

Visual inheritance

Extensible object model

Advanced forms design

3

• Structure of Windows Forms

Windows Forms Class HierarchyUsing the Windows.Forms.Application ClassExamining the Code Behind Windows Forms

4

Windows Forms Class Hierarchy

Control

ContainerControl

Form

UserControl

ScrollableControl

5

Using the Windows.Forms.Application Class

static void Main() { frmCustomers f = new frmCustomers(); f.Show(); Application.Run(); }

Allows the application to continue after the form is closed

6

Examining the Code Behind Windows Forms Imports

To alias namespaces in external assemblies

Class Inherits from System.Windows.Forms.FormConstructor – public frmCustomers() Initializer – private void InitializeComponent()Destructor – protected override void Dispose( … )

using Winforms = System.Windows.Forms;using Winforms = System.Windows.Forms;

7

Using Windows Forms

Using Form PropertiesUsing Form MethodsUsing Form EventsHandling EventsCreating MDI FormsUsing Standard Dialog Boxes

8

Using Form Properties

DialogResultFontOpacityMaximumSize and MinimumSizeTopMostAcceptButton and CancelButton

9

Using Form MethodsClose

ShowDialog and Show

if blnEndApp = true {

this.Close( );}

if blnEndApp = true {

this.Close( );}

//Create a second form frmCustomerDetails f = new frmCustomerDetails(); //Show as a dialog box (modal) //f.ShowDialog(); //Show as a owned form (non-modal) this.AddOwnedForm(f); f.Show();

//Create a second form frmCustomerDetails f = new frmCustomerDetails(); //Show as a dialog box (modal) //f.ShowDialog(); //Show as a owned form (non-modal) this.AddOwnedForm(f); f.Show();

10

Using Form Events

Activated and DeactivateClosingClosed

11

Handling Events

Handling multiple events with one procedure

this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);this.btnEdit.Click += new System.EventHandler(this.btnAdd_Click);

this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);this.btnEdit.Click += new System.EventHandler(this.btnAdd_Click);

12

Creating MDI Forms

Creating the parent form

Creating child forms

Accessing child forms Arranging child forms

this.IsMdiContainer = true;this.WindowState = FormWindowState.Maximized;

this.IsMdiContainer = true;this.WindowState = FormWindowState.Maximized;

Form2 doc = new Form2( );doc.MdiParent = this;doc.Show( );

Form2 doc = new Form2( );doc.MdiParent = this;doc.Show( );

13

Using Standard Dialog Boxes

MsgBox

MessageBox Class

InputBox

if (MsgBox("Continue?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Question") == MsgBoxResult.Yes){ ...}

if (MsgBox("Continue?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Question") == MsgBoxResult.Yes){ ...}

if (MessageBox.Show("Continue?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question)= DialogResult.Yes){ ...}

if (MessageBox.Show("Continue?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question)= DialogResult.Yes){ ...}

14

Demonstration: Manipulating Windows Forms

15

Using Controls

New ControlsUsing Control PropertiesUsing Control MethodsCreating MenusProviding User Help Implementing Drag-and-Drop Functionality

16

Using Control Properties

PositioningAnchorDockingLocation

Text property

17

Using Control Methods

BringToFront and SendToBack

FocusTextBox1.Focus( );TextBox1.SelectAll( );

TextBox1.Focus( );TextBox1.SelectAll( );

Button1.BringToFront( );Button2.SendToBack( );

Button1.BringToFront( );Button2.SendToBack( );

18

Providing User Help

ErrorProvider controlError icon appears next to control, and message

appears like a ToolTip when mouse pauses over iconUsed mainly for data binding

HelpProvider controlPoints to .chm, .hlp, or .html Help fileControls provide Help information by means of

HelpString or HelpTopic properties

19

Demonstration: Using Controls

20

Implementing Drag-and-Drop Functionality

Starting the process Use the DoDragDrop method in the MouseDown

event of the originating control

Changing the drag icon Set the AllowDrop property of the receiving

control to True Set the Effect property of the DragEventsArg in

the DragOver event of the receiving control

Dropping the data Use the Data.GetData method to access the data

21

Demonstration: Implementing Drag-and-Drop Functionality

22

Advanced Features OverviewEnhanced Design-Time SupportNew Controls and ComponentsNew Data-Binding Model and FeaturesAsynchronous ProgrammingOther Significant New FeaturesDemonstration: RAD Data BindingWhat Is ClickOnce?Features and Benefits

23

New Controls and ComponentsFlowLayoutPanel and TableLayoutPanel controlsSplitContainer controlToolStrip, MenuStrip, StatusStrip, and

ContextMenuStrip controlsDataGridView controlBindingNavigator controlMaskedTextBox controlWebBrowser control

24

New Data-Binding Model and Features BindingSource component

Layer of indirection/abstraction between controls and data sourceCan act as strongly typed data sourceInteroperates closely with BindingNavigator and DataGridView

controls Data components (concept-not class/component)

Building blocks of typed DataSetConsist of DataTables, TableAdapters, TableAdapter queriesCreate/edit using DataSet Designer

Data sources (concept-not class/component)Simplified management of data sourcesEnable drag-and-drop creation of data-bound forms

Smart tags

25

Asynchronous ProgrammingBackgroundWorker component

DoWork, RunWorkerCompleted, ProgressChanged eventsRunWorkerAsync, CancelAsync, ReportProgress methods

Asynchronous Pattern for ComponentsUsed by .NET Framework components with long-running

methodsPictureBox has Load and LoadAsync methods, and a

LoadCompleted event

26

What is ClickOnce?

ClickOnce is a new application deployment technology

It makes deploying Windows applications as easy as deploying Web applications

Application updates are easy to administer

27

Features and BenefitsClickOnce applications are low impact

No administrative rights are required on the client machineDeployment is through Web servers, CDs, or file systemsApplications can be installed on the client machine or can

run remotelyClickOnce applications execute in a secure environmentVisual Studio provides a rich set of support features for

publishing ClickOnce applicationsPrerequisite software can be installed alongside the

application installation

28

Review Why Use Windows Forms? Structure of Windows Forms Using Windows Forms Windows Forms Inheritance Enhanced Design-Time Support New Controls and Components New Data-Binding Model and Features Asynchronous Programming What Is ClickOnce?

29

Lab 15: Building Applications with Windows Forms

Exercise 1: Using the layout properties of the controls and form

Exercise 2: adding a ToolStrip and a ToolTip control

Exercise 3: Opening forms and using the new container controls & provider controls