C# 3.0 Practical Learning II

1282
Visual C# 3.0 Application Design II

Transcript of C# 3.0 Practical Learning II

Visual C# 3.0 Application Design IIFunctionX Press

SUMARYQUERYING A LIST......................................................................................20 THE LANGUAGE INTEGRATED QUERY.....................................................................20 Introduction to Querying....................................................................20 Introduction to LINQ..........................................................................20 Selecting the Values...........................................................................21 Using a Collection-Based Variable......................................................23 Using a Criterion to Create a Sub-List.................................................24 OPERATIONS ON QUERIES.................................................................................27 Using Logical Conjunctions and Disjunctions.....................................27 Arranging the List...............................................................................29 INFLUENCING A LINQ STATEMENT......................................................................32 Using the Primitive Types...................................................................32 Using the String Class........................................................................32 LINQ AND CLASSES......................................................................................34 Using Built-In Classes........................................................................38 LINQ OPERATORS........................................................................................38 Letting a Sub-List...............................................................................38 Creating a new List.............................................................................40 EXPLORING THE LINQ...............................................................................43 THE IENUMERABLE GENERIC INTERFACE................................................................43 Using IEnumerable.............................................................................44 The Characteristics of IEnumerable....................................................45 INTRODUCTION TO XML............................................................................49 THE EXTENSIBLE MARKUP LANGUAGE....................................................................49 Overview of Files................................................................................49 Markup...............................................................................................53 The Document Type Declaration (DTD)..............................................53 Encoding Declaration..........................................................................53 Creating an XML File...........................................................................54 Practical Learning: Introducing XML..................................................54 WRITING XML CODE.....................................................................................54 Writing XML Code Using XmlDocument..............................................55 Practical Learning: Creating an XML Document..................................55 Writing XML Code Using the Code Editor............................................55 SAVING AN XML FILE....................................................................................56 Using the Wizard................................................................................57 Practical Learning: Creating the Root Tag..........................................57 Saving a DOM Object..........................................................................57 OPENING AN XML FILE..................................................................................58 An XML File in a Browser....................................................................58 Using a Style Sheet to Display an XML File in a Browser.....................59 Programmatically Opening an XML File Using the DOM......................60 Programmatically Reading an XML File...............................................62 XML WELLFORMEDNESS..................................................................................65 Tag Creation.......................................................................................65 Practical Learning: Creating XML........................................................66 Tag Names.........................................................................................66 The Root.............................................................................................67 THE STRUCTURE OF AN XML TAG.......................................................................70 Empty Tags.........................................................................................70 White Spaces......................................................................................70

C# 3.0 Practical Learning II

2

Nesting Tags......................................................................................71 Practical Learning: Creating XML........................................................71 THE NODES OF AN XML ELEMENT..............................................................74 AN XML NODE............................................................................................74 Introduction to Node Types................................................................75 ELEMENTS FUNDAMENTALS................................................................................75 Practical Learning: Introducing XML Elements...................................77 The Name of an Element.....................................................................78 The Text or Value of an Element.........................................................80 Practical Learning: Getting the Text of an Element.............................82 Empty Elements..................................................................................83 Character Entities in an Element Value...............................................84 Practical Learning: Introducing XML Elements...................................89 IDENTIFYING THE MARKUP OF A NODE..................................................................91 The Inner Text of a node....................................................................91 The Outer XML Code of a node............................................................92 The Inner XML Code of a node............................................................93 THE CHILD NODES OF A NODE.........................................................................94 A Collection of Child Nodes.................................................................94 Accessing a Node in a Collection........................................................95 The Parent of a Node..........................................................................98 The First Child Node...........................................................................98 The Last Child Node..........................................................................103 The Siblings of a Node......................................................................103 OPERATIONS ON XML ELEMENTS.............................................................105 FUNDAMENTAL OPERATIONS.............................................................................105 Practical Learning: Introducing operations on XML Elements...........105 Adding an Empty Element.................................................................106 Adding an Element With Value.........................................................108 Practical Learning: Programmatically Adding an Element................114 Adding a Filled Child Element...........................................................118 INSERTING AN ELEMENT.................................................................................120 Locating an Element.........................................................................120 Inserting an Element as a Last Child................................................122 Practical Learning: Adding Elements................................................131 Insertion an Element Referencing a Sibling......................................137 Node Removal..................................................................................140 THE ATTRIBUTES OF AN XML ELEMENT...................................................143 FUNDAMENTALS OF ATTRIBUTES........................................................................143 Practical Learning: Introducing Attributes ......................................143 Creating an Attribute........................................................................144 OPERATIONS ON AN XML ATTRIBUTE.................................................................145 Manually Creating an Attribute.........................................................145 Practical Learning: Creating Simple Attributes ................................146 Programmatically Creating an Attribute .........................................146 Practical Learning: Creating an Attribute.........................................149 The Parent of an Attribute................................................................151 Attribute Removal............................................................................151 THE COLLECTION OF ATTRIBUTES OF AN ELEMENT....................................................152 Practical Learning: Adding Attributes...............................................153 Access to an Attribute......................................................................153 Practical Learning: Accessing an Attribute.......................................155 Attribute Addition.............................................................................156 Practical Learning: Creating Attributes.............................................157

C# 3.0 Practical Learning II

3

Attribute Removal............................................................................168 CHARACTERISTICS OF XML NODES..........................................................170 OVERVIEW OF TYPES OF NODES........................................................................170 Comments........................................................................................170 CDATA..............................................................................................172 XML Serialization..............................................................................173 INTRODUCTION TO DATA SETS AND TABLES...........................................175 A SET OF DATA..........................................................................................175 Data Set Creation.............................................................................175 TABLES FUNDAMENTALS.................................................................................177 Introduction to Tables......................................................................177 Practical Learning: Introducing Tables.............................................178 Creating a Table...............................................................................178 THE TABLES OF A DATA SET...........................................................................180 Accessing a Table in the Collection...................................................181 Adding a New Table to a Collection..................................................182 Creating a Range of Tables...............................................................184 Practical Learning: Creating Tables..................................................184 Locating a Table in a Collection........................................................185 Practical Learning: Showing Tables..................................................190 TABLES MAINTENANCE...................................................................................192 Deleting a Table...............................................................................192 Checking the Existence of a Table in a Collection.............................194 Clearing a Collection of Tables..........................................................196 THE COLUMNS OF A TABLE......................................................................197 FUNDAMENTALS OF COLUMNS OF A TABLE.............................................................197 Practical Learning: Introducing Columns..........................................198 Creating a Column............................................................................199 OPERATIONS ON THE COLUMNS OF A TABLE...........................................................201 Adding a Column to a Table..............................................................201 Practical Learning: Creating Columns...............................................203 Adding an Array of Columns.............................................................204 Specifying the Type of Data of a Column..........................................205 Practical Learning: Specifying the Data Types of Columns Columns. 206 COLUMNS MAINTENANCE................................................................................208 The Parent Table of a Column...........................................................208 Identifying a Column........................................................................208 Practical Learning: Listing the Columns of a table............................209 DELETING COLUMNS.....................................................................................213 Deleting a Column by Name.............................................................213 Deleting a Column by Index.............................................................217 Clearing the Table of Columns..........................................................218 THE RECORDS OF A TABLE.......................................................................219 THE ROWS OF A TABLE.................................................................................219 Introduction to Records...................................................................219 Practical Learning: Introducing Data Records..................................220 The Row of a Table...........................................................................220 Introduction to Data Entry...............................................................221 DATA ENTRY.............................................................................................221 Adding a Record to a Table...............................................................222 Adding an Array of Records..............................................................223 The Number of Records of a Table....................................................225 SAVING THE RECORDS OF A TABLE.....................................................................225

C# 3.0 Practical Learning II

4

Saving a Data Set.............................................................................225 Practical Learning: Creating a Data Set............................................228 Opening a Data Set...........................................................................236 Committing or Rejecting Changes to a List.......................................239 LOCATING RECORDS AND THEIR VALUES..............................................................239 Locating a Record.............................................................................239 Locating a Value...............................................................................243 Practical Learning: Getting the Values of a Data Set........................247 RECORDS MANAGEMENT..........................................................................257 RECORDS MAINTENANCE.................................................................................257 Editing a Record by the Columns' Object Names..............................258 Editing a Record by the Columns' Indices.........................................265 DELETING RECORDS......................................................................................265 Deleting the Current Row.................................................................265 Removing a Row From the Collection of Records..............................267 Deleting a Record by its Index.........................................................269 Deleting all Records of a Table.........................................................269 DATA RELATIONSHIPS...................................................................................270 Table Preparation.............................................................................270 Creating a Relationship....................................................................275 INTRODUCTION TO ADO..........................................................................284 ADO FUNDAMENTALS...................................................................................284 Introduction to Databases................................................................284 Microsoft JET....................................................................................284 Referencing a Library in a .NET Framework......................................285 MICROSOFT ADO EXT..................................................................................285 The Catalog Class.............................................................................286 DATABASE CREATION....................................................................................287 The Catalog Class.............................................................................287 The Provider.....................................................................................287 The Data Source of a Connection String...........................................289 The ODBC Data Source ....................................................................290 USING THE MICROSOFT ACTIVEX DATA OBJECTS (ADO).........................................292 Referencing ADO..............................................................................293 The ADODB Namespace....................................................................293 THE CONNECTION TO A DATABASE.....................................................................294 Opening a Connection.......................................................................294 The Connection String......................................................................295 The Login Credentials.......................................................................296 Executing a SQL Statement..............................................................297 Closing a Connection........................................................................298 THE RECORDS OF A DATABASE................................................................301 TABLE CREATION.........................................................................................301 Table Creation..................................................................................302 The Name of a Table.........................................................................302 TABLE MAINTENANCE....................................................................................303 The Tables Collection........................................................................303 Deleting a Table...............................................................................303 COLUMNS FUNDAMENTALS...............................................................................304 Column Creation...............................................................................305 CHARACTERISTICS OF A COLUMN........................................................................305 The Types of Columns.......................................................................306 COLUMN MAINTENANCE..................................................................................311 Adding a New Column......................................................................311

C# 3.0 Practical Learning II

5

Deleting a Column............................................................................312 DATA ENTRY FUNDAMENTALS...........................................................................313 New Record Creation........................................................................314 Adjacent Data entry.........................................................................316 Random Data Entry..........................................................................316 DATA ENTRY ASSISTANCE...............................................................................317 The Nullity of a Field.........................................................................318 Auto-Increment................................................................................319 Fields Sizes.......................................................................................320 Default Values..................................................................................321 MATHEMATICS IN C#..............................................................................322 OVERVIEW OF NUMBERS.................................................................................322 The Sign of a Number ......................................................................322 The Integral Side of a Floating-Point Number .................................324 The Minimum of Two Values ............................................................325 The Maximum Integer Value of a Series ..........................................326 VALUE CONVERSIONS....................................................................................326 Implicit Conversions ........................................................................327 Explicit Conversions ........................................................................328 The Convert Class ............................................................................330 ARITHMETIC..............................................................................................332 Absolute Values ...............................................................................332 The Ceiling of a Number ..................................................................333 The Floor of a Number .....................................................................334 The Power of a Number ...................................................................334 The Exponential ...............................................................................335 The Natural Logarithm .....................................................................336 The Base 10 Logarithm ....................................................................336 The Logarithm of Any Base .............................................................337 The Square Root ..............................................................................338 TRIGONOMETRY...........................................................................................338 The Pi Constant ...............................................................................340 The Cosine of a Value ......................................................................340 The Sine of a Value...........................................................................341 Tangents .........................................................................................342 The Arc Tangent ..............................................................................342 DATES AND TIMES...................................................................................344 DATES AND TIMES.......................................................................................344 Date Time Value Creation.................................................................345 The Characteristics of a Date-Time Value.........................................346 The Default Date and Time Values....................................................347 DATES.....................................................................................................347 Date Creation...................................................................................347 Converting a String to Date..............................................................348 Rules of Date Formats......................................................................348 DATE FORMATS...........................................................................................353 The Computers System of Displaying Dates.....................................353 Getting a Date Value From a DateTime Object..................................353 The Short Date.................................................................................356 The Long Date Format......................................................................358 Other Date Formats..........................................................................359 OPERATIONS ON DATES.................................................................................360 The Leap Year...................................................................................360 The Day of the Week........................................................................361 A Time Span.....................................................................................362

C# 3.0 Practical Learning II

6

Adding and/or Subtracting Days......................................................362 Adding or Subtracting Months to a Date...........................................364 Adding or Subtracting Years to a Date..............................................364 Logical Operations on Dates.............................................................365 TIME......................................................................................................366 Creating a Time Value......................................................................367 Retrieving a Time Value....................................................................368 THE CHARACTERISTICS OF A TIME VALUE.............................................................369 The Components of a Time...............................................................369 The Time of Day of a DateTime Value...............................................370 OPERATIONS ON TIME VALUES.........................................................................370 Converting a Time Value to a String.................................................370 Time Rules and Formats...................................................................371 Comparison Operations On Time Values...........................................379 COMBINING DATE AND TIME............................................................................379 The Current Date and Time...............................................................379 Formatting Date and Time Combinations..........................................380 WINDOWS CONTROL: THE BUTTON.........................................................381 DESCRIPTION.............................................................................................381 CREATING A BUTTON....................................................................................385 THE CHARACTERISTICS OF A BUTTON.....................................................387 THE CAPTION OF A BUTTON............................................................................387 THE IMAGE ON A BUTTON ..............................................................................393 THE FLAT STYLE OF A BUTTON ........................................................................394 THE RESULT OF A DIALOG BOX .......................................................................395 Applications:....................................................................................396 WINDOWS CONTROL: THE COMBO BOX...................................................397 DESCRIPTION.............................................................................................397 CREATING A COMBO BOX...............................................................................398 THE COMBO BOX: CREATING AND SELECTING ITEMS................................................405 CREATING THE LIST OF ITEMS..........................................................................405 SELECTING AN ITEM.....................................................................................407 FINDING A STRING IN THE COMBO BOX...............................................................427 THE STYLES OF A COMBO BOX.................................................................428 THE THE THE THE FLAT STYLES........................................................................................428 DROP DOWN STYLE................................................................................430 DROP DOWN LIST.................................................................................434 SIMPLE COMBO BOX...............................................................................434 EXTERNAL LIST..............................................................................436 CUSTOM LIST..................................................................................438

THE COMBO BOX: AUTOMATIC LIST CREATION.......................................436 USING USINGAN A

ACCESSORIES FOR CONTROL DESIGN: THE FLOW LAYOUT PANEL...........439 INTRODUCTION...........................................................................................439 CHARACTERISTICS OF THE FLOW LAYOUT PANEL......................................................440 THE CHARACTERISTICS OF A BUTTON.....................................................441 THE CAPTION OF A BUTTON............................................................................441 THE IMAGE ON A BUTTON ..............................................................................447 THE FLAT STYLE OF A BUTTON ........................................................................448 THE RESULT OF A DIALOG BOX .......................................................................449 Applications:....................................................................................450

C# 3.0 Practical Learning II

7

WINDOWS CONTROL: THE LINK LABEL...................................................450 INTRODUCTION...........................................................................................450 CHARACTERISTICS OF THE LINK LABEL.................................................................450 WINDOWS CONTROL: THE MONTH CALENDAR.........................................451 DESCRIPTION.............................................................................................451 CREATING A CALENDAR..................................................................................454 USING A MONTH CALENDAR CONTROL....................................................462 SELECTING A DATE.......................................................................................462 THE DATE RANGE SELECTION..........................................................................464 THE MAXIMUM DATE RANGE SELECTION..............................................................468 WINDOWS CONTROLS: THE PICTURE BOX...............................................469 DESCRIPTION.............................................................................................469 GETTING A PICTURE BOX...............................................................................469 INTRODUCTION ..........................................................................................470 THE BORDER STYLE OF A PICTURE BOX ..............................................................471 THE IMAGE OF A PICTURE BOX ........................................................................471 THE IMAGE LOCATION OF THE IMAGE OF A PICTURE BOX ..........................................473 THE SIZE MODE OF A PICTURE BOX ..................................................................475 WINDOWS CONTROL: RICH TEXT BOX.....................................................483 DESCRIPTION.............................................................................................483 CREATING A RICH TEXT CONTROL.....................................................................483 INTRODUCTION ..........................................................................................488 SAVING THE CONTENTS OF A RICH TEXT DOCUMENT ................................................489 OPENING A RICH TEXT FILE ...........................................................................490 FORMATTING TEXT ......................................................................................496 THE PARAGRAPH ALIGNMENT ..........................................................................497 THE INDENTATION OF A PARAGRAPH ..................................................................499 A BULLETED PARAGRAPH ...............................................................................499 ACCESSORIES FOR CONTROL DESIGN: THE TABLE LAYOUT PANEL..........500 INTRODUCTION...........................................................................................500 CHARACTERISTICS OF A TABLE LAYOUT................................................................501 THE CHARACTERISTICS OF A BUTTON.....................................................502 THE CAPTION OF A BUTTON............................................................................502 THE IMAGE ON A BUTTON ..............................................................................508 THE FLAT STYLE OF A BUTTON ........................................................................510 THE RESULT OF A DIALOG BOX .......................................................................510 Applications:....................................................................................511 THE BROWSE FOR FOLDER DIALOG BOX..................................................512 DESCRIPTION.............................................................................................512 CREATING A BROWSE FOR FOLDER DIALOG BOX.....................................................513 CHARACTERISTICS OF THE BROWSE FOR FOLDER DIALOG BOX..............514 THE THE THE THE DESCRIPTION.......................................................................................514 ROOT FOLDER......................................................................................515 SELECTED PATH.....................................................................................516 MAKE NEW FOLDER BUTTON......................................................................517

APPLICATION MENUS: CONTEXTUAL MENUS...........................................519 INTRODUCTION...........................................................................................519 CREATING A CONTEXTUAL MENU.......................................................................520

C# 3.0 Practical Learning II

8

USING A CONTEXTUAL MENU...........................................................................524 CODING CONTEXTUAL MENUS...........................................................................526 THE FONT DIALOG BOX...........................................................................530 INTRODUCTION...........................................................................................531 CREATING A FONT DIALOG BOX........................................................................532 THE FONT OF A FONT DIALOG BOX...................................................................534 THE APPLY BUTTON.....................................................................................535 THE EFFECTS OF A FONT DIALOG BOX................................................................536 THE COLOR COMBO BOX................................................................................536 WINDOWS CONTROL: THE LIST BOX.......................................................538 DESCRIPTION.............................................................................................538 CREATING A LIST BOX..................................................................................539 THE ITEMS OF A LIST BOX.......................................................................544 INTRODUCTION...........................................................................................544 ADDING ITEMS TO A LIST BOX.........................................................................545 SELECTING AN ITEM IN A LIST BOX...................................................................552 REMOVING ITEMS FROM A LIST BOX..................................................................564 SORTING A LIST BOX...................................................................................567 CHARACTERISTICS OF A LIST BOX..........................................................567 THE SCROLL BARS.......................................................................................567 A MULTI-COLUMN LIST BOX...........................................................................571 A CUSTOM OWNER-DRAW LIST BOX.................................................................572 WINDOWS CONTROL: THE NUMERIC UP-DOWN......................................572 DESCRIPTION.............................................................................................572 CREATING AN UP-DOWN CONTROL....................................................................572 CHARACTERISTICS OF THE NUMERIC UP-DOWN CONTROL.....................574 THE UP-DOWN ALIGNMENT............................................................................574 INTERCEPTING THE ARROW KEYS.......................................................................574 THE MINIMUM AND THE MAXIMUM VALUES...........................................................575 THE VALUE OF THE CONTROL...........................................................................576 THE TYPE OF VALUE.....................................................................................576 DISPLAYING DECIMAL NUMBERS.......................................................................576 THE THOUSAND SEPARATOR............................................................................576 THE INCREMENTING VALUE.............................................................................577 Applications:....................................................................................577 THE PRINT DIALOG BOX..........................................................................578 INTRODUCTION...........................................................................................578 PROVIDING A PRINTER..................................................................................579 THE DOCUMENT TO PRINT..............................................................................580 EVENTS RELATED TO PRINTING.........................................................................581 THE PRINTER SETTINGS.................................................................................582 THE SAVE DIALOG BOX............................................................................586 DESCRIPTION.............................................................................................586 SAVE AS DIALOG BOX CREATION......................................................................587 CHARACTERISTICS OF THE SAVE AS DIALOG BOX...................................588 THE FILE EXTENSION ...................................................................................588 THE FILTER ..............................................................................................589 THE FILTER INDEX ......................................................................................591

C# 3.0 Practical Learning II

9

THE DEFAULT EXTENSION ..............................................................................592 DISPLAYING THE DIALOG BOX .........................................................................593 WINDOWS CONTROL: THE TEXT BOX.......................................................595 INTRODUCTION...........................................................................................595 CREATING A TEXT BOX..................................................................................595 INTRODUCTION...........................................................................................595 SELECTING TEXT.........................................................................................596 OPERATIONS ON TEXT...................................................................................596 MNEMONICS..............................................................................................597 THE READ-ONLY ATTRIBUTE...........................................................................598 AUTO-COMPLETING A TEXT BOX.......................................................................598 CHARACTER CASING......................................................................................598 CHARACTER PASSWORD..................................................................................599 INTRODUCTION...........................................................................................599 CREATING A MULTI-LINE TEXT BOX..................................................................600 INTRODUCTION...........................................................................................600 THE LINES OF TEXT ....................................................................................600 THE MODIFIED ATTRIBUTE .............................................................................600 THE MAXIMUM LENGTH OF TEXT ......................................................................601 USING THE ENTER KEY .................................................................................601 USING THE TAB KEY ...................................................................................601 WRAPPING TEXT ........................................................................................602 USING SCROLL BARS....................................................................................602 METHODS TO MANAGE A MULTI-LINE TEXT BOX....................................................603 Application.......................................................................................603 WINDOWS CONTROLS: THE TRACK BAR..................................................604 INTRODUCTION...........................................................................................604 CREATING A TRACK BAR................................................................................605 CHARACTERISTICS OF A TRACK BAR.......................................................606 THE ORIENTATION ......................................................................................606 THE VALUE OF A TRACK BAR ..........................................................................608 THE MAXIMUM AND THE MINIMUM VALUES ..........................................................608 THE TICKS OF A TRACK BAR ..........................................................................610 THE TICK FREQUENCY ..................................................................................610 THE TICK STYLE ........................................................................................611 THE SMALL CHANGE ....................................................................................611 THE LARGE CHANGE ....................................................................................612 Applications:....................................................................................612 WINDOWS CONTROLS: CHECK BOXES.....................................................612 INTRODUCTION...........................................................................................612 CREATING A CHECK BOX................................................................................613 WINDOWS CONTROLS: CHECK BOXES.....................................................621 CHECKING A CHECK BOX................................................................................621 THE ALIGNMENT OF A CHECK BOX.....................................................................629 THE CHECKED STATE OF A CHECK BOX................................................................629 THE APPEARANCE OF A CHECK BOX....................................................................630 Applications......................................................................................631 WINDOWS CONTROL: THE DATA GRID VIEW...........................................631 INTRODUCTION...........................................................................................631 CREATING A DATA GRID VIEW.........................................................................632 INTRODUCTION...........................................................................................634

C# 3.0 Practical Learning II

10

CREATING A COLUMN....................................................................................635 DELETING A COLUMN....................................................................................636 THE CELL TEMPLATE OF A COLUMN....................................................................637 THE NAME OF A COLUMN...............................................................................642 THE CAPTION OF A COLUMN............................................................................643 THE WIDTH OF A COLUMN..............................................................................645 REFERRING TO A COLUMN...............................................................................646 INTRODUCTION TO ROWS................................................................................647 THE ROWS OF A DATA GRID VIEW....................................................................648 THE HEIGHT OF A ROW.................................................................................650 INTRODUCTION...........................................................................................650 THE CELLS OF A ROW...................................................................................651 THE VALUE OF A CELL...................................................................................652 CREATING A RECORD....................................................................................655 WINDOWS CONTROL: THE GROUP BOX...................................................657 DESCRIPTION.............................................................................................657 GROUP BOX CREATION..................................................................................658 THE CAPTION OF A GROUP BOX.......................................................................659 THE GROUP BOX AS A CONTAINER.....................................................................659 AUTOMATICALLY RESIZING A GROUP BOX.............................................................660 GIVING FOCUS TO A GROUP BOX......................................................................661 USING A MNEMONIC.....................................................................................661 WINDOWS CONTROL: THE LIST VIEW.....................................................662 INTRODUCTION...........................................................................................662 LIST VIEW CREATION...................................................................................662 VISUALLY CREATING THE ITEMS OF A LIST VIEW...................................664 THE MAIN ITEMS OF THE LIST VIEW..................................................................664 VIEW STYLES.............................................................................................666 LIST VIEW ITEMS AND THEIR ICONS...................................................................670 THE COLUMNS OF A LIST VIEW...............................................................678 INTRODUCTION...........................................................................................678 VISUALLY CREATING COLUMNS.........................................................................678 PROGRAMMATICALLY CREATING COLUMNS.............................................................679 COLUMN INSERTION.....................................................................................683 THE NUMBER OF COLUMNS OF A LIST VIEW..........................................................685 LOCATING COLUMNS.....................................................................................685 DELETING COLUMNS.....................................................................................686 THE ITEMS OF A LIST VIEW.....................................................................686 ADDING ADDINGAN AN

ITEM TO THE LIST VIEW .................................................................686 ARRAY OF ITEMS...........................................................................691

USING A LIST VIEW................................................................................692 SELECTING AN ITEM FROM THE LIST VIEW ..........................................................692 EDITING A LABEL........................................................................................693 ACTIVATING AN ITEM....................................................................................694 USING COLUMNS.........................................................................................695 IDENTIFYING AN ITEM...................................................................................696 THE SUB ITEMS OF AN ITEM....................................................................696 INTRODUCTION ..........................................................................................696 VISUALLY CREATING SUB ITEMS.......................................................................697 PROGRAMMATICALLY CREATING SUB ITEMS...........................................................700

C# 3.0 Practical Learning II

11

MANAGING SUB ITEMS..................................................................................709 MANAGING THE ITEMS OF A LIST VIEW..................................................711 THE FONT, TEXT COLOR, AND BACKGROUND OF AN ITEM...........................................711 LOCATING A LIST VIEW ITEM..........................................................................714 DELETING ITEMS.........................................................................................715 CHARACTERISTICS OF A LIST VIEW........................................................715 COLUMN HEADER STYLE.................................................................................716 SELECTING ITEMS IN A LIST VIEW.....................................................................717 FULL ROW SELECTION...................................................................................718 GRID LINES..............................................................................................718 LIST ITEMS AND CHECK BOXES........................................................................719 THE OPEN DIALOG BOX...........................................................................719 DESCRIPTION.............................................................................................719 OPEN FILE DIALOG BOX CREATION...................................................................720 CHARACTERISTICS OF THE OPEN DIALOG BOX.......................................721 THE FILENAME ...........................................................................................721 THE FILTER ..............................................................................................721 THE FILTER INDEX ......................................................................................722 SHOWING THE DIALOG BOX ...........................................................................722 OPENING VARIOUS FILES ..............................................................................722 OPENING A FILE AS READ-ONLY .....................................................................723 PRINT PREVIEW......................................................................................724 INTRODUCTION...........................................................................................724 PROVIDING PRINT PREVIEW............................................................................724 CHARACTERISTICS OF THE PRINT PREVIEW...........................................726 THE PREVIEW AREA.....................................................................................726 PRINTING FROM THE PRINT PREVIEW.................................................................729 ZOOMING THE PREVIEW.................................................................................730 A DOCUMENT OF VARIOUS PAGES.....................................................................730 WINDOWS CONTROL: SCROLL BARS........................................................731 DESCRIPTION ............................................................................................731 AUTOMATICALLY-ADDED SCROLL BARS................................................................732 SCROLL BARS UPON REQUEST..........................................................................733 TEXT-BASED APPLICATIONS AND SCROLL BARS......................................................734 INTRODUCTION...........................................................................................735 CREATING A SCROLL BAR CONTROL....................................................................735 THE MINIMUM AND MAXIMUM..........................................................................736 THE VALUE OF A SCROLL BAR..........................................................................736 THE SMALL CHANGE.....................................................................................737 THE LARGE CHANGE.....................................................................................737 WINDOWS CONTROL: THE SCROLL BARS................................................737 INTRODUCTION ..........................................................................................738 CREATING A SCROLL BAR CONTROL....................................................................738 THE MINIMUM AND MAXIMUM..........................................................................738 THE VALUE OF A SCROLL BAR..........................................................................739 THE SMALL CHANGE.....................................................................................740 THE LARGE CHANGE.....................................................................................740 WINDOWS CONTROL: THE TICK COUNTER..............................................740

C# 3.0 Practical Learning II

12

INTRODUCTION...........................................................................................740 WINDOWS CONTROL: CHECKED LIST BOXES...........................................744 DESCRIPTION.............................................................................................744 CREATING A CHECKED LIST BOX.......................................................................747 CHARACTERISTICS OF A CHECKED LIST BOX...........................................750 INTRODUCTION...........................................................................................750 CREATING THE LIST OF ITEMS..........................................................................751 CHECKING AN ITEM......................................................................................752 AUTOMATICALLY CHECKING AN ITEM WHEN CLICKED................................................760 3-D CHECKED ITEMS...................................................................................761 WINDOWS CONTROL: THE DATE PICKER CONTROL.................................761 INTRODUCTION TO THE DATE PICKER CONTROL.......................................................761 CREATING A DATE/TIME PICKER......................................................................762 INTRODUCTION TO THE DATE PICKER..................................................................762 CHARACTERISTICS OF THE DATE PICKER................................................763 THE SPIN BUTTON.......................................................................................763 THE CHECK BOX ........................................................................................763 USING THE DATE PICKER ..............................................................................764 THE CALENDAR VISUAL CHARACTERISTICS ...........................................................765 THE ALIGNMENT OF THE CALENDAR ...................................................................766 THE MINIMUM AND THE MAXIMUM DATES ...........................................................766 THE VALUE OF THE CALENDAR .........................................................................766 THE CUSTOM FORMAT OF THE CALENDAR .............................................................766 WINDOWS CONTROLS: AN IMAGE LIST...................................................768 INTRODUCTION...........................................................................................768 CREATING AN IMAGE LIST..............................................................................769 THE SIZE OF THE IMAGES...............................................................................770 THE COLOR DEPTH......................................................................................773 CREATING THE COLLECTION OF IMAGES................................................................773 USING AN IMAGE LIST..................................................................................776 THE TRANSPARENT COLOR..............................................................................778 WINDOWS CONTROL: MASKED TEXT BOX................................................778 INTRODUCTION...........................................................................................778 MASKEDIT CHARACTERISTICS...........................................................................778 THE PAGE SETUP DIALOG BOX................................................................782 INTRODUCTION...........................................................................................782 CHARACTERISTICS OF THE PAGE SETUP DIALOG BOX................................................783 WINDOWS CONTROL: THE PROGRESS BAR..............................................785 DESCRIPTION.............................................................................................785 CREATING A PROGRESS BAR............................................................................785 CHARACTERISTICS OF A PROGRESS BAR.................................................786 INTRODUCTION...........................................................................................786 THE MINIMUM AND MAXIMUM..........................................................................787 THE VALUE OF A PROGRESS BAR......................................................................787 THE STEP VALUE OF A PROGRESS BAR................................................................789 THE STYLE OF A PROGRESS BAR.......................................................................790 WINDOWS CONTROL: THE SPLIT CONTAINER.........................................791

C# 3.0 Practical Learning II

13

INTRODUCTION...........................................................................................791 CREATING A SPLITTER...................................................................................792 INTRODUCTION...........................................................................................794 THE BACKGROUND OF A SPLIT CONTAINER............................................................794 THE SIZE OF THE SPLITTER.............................................................................794 THE ORIENTATION OF THE SPLITTER...................................................................795 MOVING THE SPLITTER..................................................................................795 THE SPLITTER INCREMENT..............................................................................795 FIXING A PANEL.........................................................................................795 WINDOWS CONTROL: THE TIMER............................................................796 INTRODUCTION...........................................................................................796 CHARACTERISTICS OF A TIMER..........................................................................798 WINDOWS CONTROL: THE TREE VIEW....................................................806 INTRODUCTION...........................................................................................806 TREE VIEW CREATION...................................................................................807 INTRODUCTION TO CREATING TREE VIEW NODES..................................813 VISUALLY CREATING NODES............................................................................813 PROGRAMMATICALLY CREATING NODES................................................................814 A NODE AND ITS CHILDREN....................................................................818 INTRODUCTION...........................................................................................818 CREATING CHILD NODES................................................................................821 THE NUMBER OF CHILD NODES........................................................................830 THE NODES OF A NODE.................................................................................831 NODE SELECTION........................................................................................831 NODE EDITION...........................................................................................832 NODE LOCATION.........................................................................................833 DELETING NODES........................................................................................847 CHARACTERISTICS OF A TREE VIEW.......................................................848 THE PATH TO A NODE...................................................................................848 HOT TRACKING...........................................................................................848 THE INTERMEDIARY LINES OF RELATED NODES.......................................................849 THE ROOT LINES........................................................................................850 NODE INDENTATION.....................................................................................850 FULL ROW SELECTION...................................................................................851 HIDING SELECTION AFTER LOSING FOCUS............................................................852 THE + AND - BUTTONS.................................................................................852 EXPANDING AND COLLAPSING TREE NODES...........................................................852 TREE NODES AND CHECK BOXES.......................................................................853 TREE NODES AND ICONS................................................................................854 WINDOWS CONTROLS: THE COLOR DIALOG BOX....................................863 INTRODUCTION...........................................................................................863 MAKING A COLOR DIALOG BOX AVAILABLE...........................................................865 THE COLOR PRODUCED BY A COLOR DIALOG BOX...................................................865 THE FULL VIEW OF A COLOR DIALOG BOX...........................................................866 SETTING THE COLOR OF, OR PAINTING, A PIXEL.....................................................867 GETTING THE COLOR OF A PIXEL.......................................................................869 WINDOWS CONTROL: THE DOMAIN UP-DOWN........................................869 DESCRIPTION.............................................................................................869 CREATING A DOMAIN UP-DOWN CONTROL...........................................................870 CHARACTERISTICS OF THE NUMERIC UP-DOWN CONTROL.....................871

C# 3.0 Practical Learning II

14

THE UP-DOWN ALIGNMENT............................................................................871 INTERCEPTING THE ARROW KEYS.......................................................................872 THE MINIMUM AND THE MAXIMUM VALUES...........................................................872 THE VALUE OF THE CONTROL...........................................................................873 THE TYPE OF VALUE.....................................................................................873 DISPLAYING DECIMAL NUMBERS.......................................................................873 THE THOUSAND SEPARATOR............................................................................873 THE INCREMENTING VALUE.............................................................................874 Applications:....................................................................................874 WINDOWS CONTROL: THE LABEL............................................................875 DESCRIPTION.............................................................................................875 CREATING A LABEL.......................................................................................875 THE CAPTION.............................................................................................876 AUTOMATICALLY SIZING A LABEL......................................................................878 CONTENT ALIGNMENT....................................................................................879 PICTURES ON A LABEL...................................................................................880 A LABEL'S MNEMONIC..................................................................................880 APPLICATION MENUS: THE MAIN MENU..................................................887 INTRODUCTION...........................................................................................887 MAIN MENU CREATION.................................................................................888 MENU CATEGORIES......................................................................................889 INTRODUCTION TO MENU ITEMS........................................................................892 ASSOCIATING MENU ITEMS TO MENU CATEGORIES...................................................894 ASSOCIATING MENU CATEGORIES TO THE MAIN MENU .............................................897 CODING A MENU ITEM..................................................................................905 WINDOWS CONTROL: THE PANEL CONTROL............................................906 INTRODUCTION...........................................................................................906 CREATING A PANEL......................................................................................907 CHARACTERISTICS OF A PANEL..........................................................................908 WINDOWS CONTROL: THE RADIO BUTTONS............................................909 DESCRIPTION.............................................................................................909 CREATING RADIO BUTTONS.............................................................................910 THE LOCATION OF A RADIO BUTTON..................................................................910 THE CAPTION OF A RADIO BUTTON....................................................................911 CHECKING A RADIO BUTTON............................................................................912 THE ALIGNMENT OF A RADIO BUTTON.................................................................913 THE APPEARANCE OF A RADIO BUTTON...............................................................914 Applications: ...................................................................................917 TAB CONTROLS AND TAB PAGES..............................................................917 DESCRIPTION.............................................................................................917 TAB CONTROL CREATION................................................................................920 THE TAB PAGES OF A TAB CONTROL........................................................921 INTRODUCTION...........................................................................................921 CREATING A TAB PAGE..................................................................................921 REMOVING A TAB PAGE.................................................................................927 TAB CONTROL AND TAB PAGE SELECTION...............................................927 TAB CONTROL SELECTION...............................................................................927 TAB PAGE SELECTION...................................................................................928 THE TAB OF A TAB PAGE..........................................................................930

C# 3.0 Practical Learning II

15

INTRODUCTION...........................................................................................930 THE CAPTION OF A TAB.................................................................................930 HOT TRACKING THE CAPTION OF A TAB PAGE........................................................933 PADDING THE CAPTION OF A TAB PAGE...............................................................933 THE TOOL TIP OF A TAB PAGE........................................................................934 A PICTURE ON A TAB...................................................................................934 MANAGING THE TABS..............................................................................936 THE NAVIGATION ARROWS OF A TAB CONTROL......................................................937 A TAB CONTROL WITH MULTI-LINE..................................................................937 THE SIZE MODE.........................................................................................938 THE TABS SIZE..........................................................................................940 THE ALIGNMENT OF TABS...............................................................................940 THE APPEARANCE OF THE TABS.........................................................................942 WINDOWS CONTROL: THE TIMER............................................................943 INTRODUCTION...........................................................................................943 CHARACTERISTICS OF A TIMER..........................................................................945 THE FORMS OF AN APPLICATION: INTRODUCTION.................................953 INTRODUCTION...........................................................................................953 FORM CREATION.........................................................................................954 THE NAME OF A FORM..................................................................................955 THE FORMS OF AN APPLICATION: THE TITLE BAR........................................................................................956 THE SYSTEM ICON.......................................................................................956 THE FORM'S CAPTION...................................................................................958 THE SYSTEM BUTTONS..................................................................................959 THE FORMS OF AN APPLICATION: THE FORM'S POSITION............................................................................962 THE THE THE THE FORM'S LOCATION..................................................................................962 STARTUP POSITION OF A FORM...................................................................965 WINDOW STATE OF A FORM......................................................................966 FORM'S TASKBAR PRESENCE......................................................................967

THE FORMS OF AN APPLICATION: THE FORM'S MEASURES...........................................................................968 THE FORM'S SIZE.......................................................................................968 THE FORM BORDERS.....................................................................................971 THE FORMS OF AN APPLICATION: THE CLIENT AREA OF A FORM..................................................................973 INTRODUCTION...........................................................................................973 THE BACKGROUND COLOR OF A FORM.................................................................975 THE FORMS OF AN APPLICATION: THE BACKGROUND IMAGE OF A FORM.....................................................976 INTRODUCTION...........................................................................................976 BACKGROUND IMAGE OPTIONS.........................................................................978 FORM CREATION.........................................................................................983 FORM ACTIVATION.......................................................................................983 FORM DEACTIVATION....................................................................................983 FORM CLOSURE...........................................................................................984 DIALOG BOXES........................................................................................984

C# 3.0 Practical Learning II

16

DESCRIPTION.............................................................................................984 DIALOG BOX CREATION.................................................................................986 CHARACTERISTICS OF DIALOG BOXES....................................................987 THE BORDER STYLE OF A DIALOG BOX...............................................................987 THE MINIMIZE AND MAXIMIZE BOXES.................................................................988 CLOSING A DIALOG BOX................................................................................990 ACCEPTING AN ACTION..................................................................................990 CANCELLING AN ACTION.................................................................................990 THE HELP BUTTON......................................................................................991 MODAL AND MODELESS DIALOG BOXES..................................................992 MODAL DIALOG BOXES..................................................................................992 MODELESS DIALOG BOXES..............................................................................993 AN APPLICATION WITH VARIOUS FORMS OR DIALOG BOXES.......................................995 MESSAGE BOXES.....................................................................................997 INTRODUCTION...........................................................................................998 THE RETURN VALUE OF A MESSAGE BOX.............................................................998 THE MESSAGE OF A MESSAGE BOX....................................................................999 THE CAPTION OF A MESSAGE BOX.....................................................................999 THE BUTTONS OF A MESSAGE BOX...................................................................1000 THE ICON OF A MESSAGE BOX.......................................................................1001 THE DEFAULT BUTTON OF A MESSAGE BOX.........................................................1002 THE CODE EDITOR.................................................................................1004 INTRODUCTION.........................................................................................1004 THE TABS BAR.........................................................................................1006 THE TYPES COMBO BOX..............................................................................1008 THE MEMBERS COMBO BOX..........................................................................1008 CODE COLORS..........................................................................................1010 REGIONS................................................................................................1010 METHODS AND EVENTS OF WINDOWS CONTROLS.................................1013 INTRODUCTION.........................................................................................1013 CONTROL'S CONSTRUCTION AND DESTRUCTION.....................................................1013 CONTROL'S VISIBILITY................................................................................1015 CONTROL'S FOCUS.....................................................................................1016 THE Z-ORDER OF CONTROLS.........................................................................1017 CREATING NEW METHODS............................................................................1018 INTRODUCTION.........................................................................................1019 MICROSOFT VISUAL BASIC FUNCTIONS..............................................................1019 USING A LIBRARY......................................................................................1019 USING A VISUAL C++/CLI LIBRARY.............................................................1020 USING THE WIN32 LIBRARY........................................................................1020 A REVIEW OF DELEGATES......................................................................1022 INTRODUCTION.........................................................................................1022 DECLARING A DELEGATE...............................................................................1022 DELEGATES AND CLASSES..............................................................................1025 DELEGATES COMPOSITIONS............................................................................1026 A DELEGATE THAT TAKES ONE OF MORE ARGUMENTS............................................1026 A DELEGATE PASSED AS ARGUMENT.................................................................1027 APPLICATION ONLINE HELP..................................................................1029 INTRODUCTION.........................................................................................1029 STATUS BAR MESSAGES...............................................................................1034

C# 3.0 Practical Learning II

17

TOOL TIPS..............................................................................................1037 ONLINE HELP........................................................................................1039 INTRODUCTION.........................................................................................1039 THE HELP PROVIDER..................................................................................1044 INTRODUCTION TO HTML HELP.....................................................................1048 HTML HELP AND VISUAL STUDIO 2005APPLICATIONS.........................................1069 THE TOOLBOX........................................................................................1072 INTRODUCTION.........................................................................................1072 THE TOOLBOX AND ADDITIONAL CONTROLS.........................................................1073 THE SECTIONS OF THE TOOLBOX.....................................................................1075 THE LAYOUT OF A CATEGORY.........................................................................1076 ARRANGEMENT OF ITEMS IN THE TOOLBOX..........................................................1078 INTRODUCTION TO APPLICATION DESIGN............................................1078 INTRODUCTION ........................................................................................1079 COPYING A CONTROL .................................................................................1081 DYNAMIC CONTROL CREATION..............................................................1082 INTRODUCTION.........................................................................................1082 INITIALIZING THE COMPONENTS......................................................................1084 USING A PARTIAL CLASS..............................................................................1085 COMPONENTS TRACKING ON AN APPLICATION.......................................................1086 CONTROL DERIVATION.................................................................................1086 CONTROL SELECTION............................................................................1088 INTRODUCTION.........................................................................................1088 SINGLE CONTROL SELECTION.........................................................................1088 MULTIPLE CONTROL SELECTION......................................................................1089 CONTROL DELETION....................................................................................1090 THE PROPERTIES WINDOW...................................................................1090 INTRODUCTION.........................................................................................1090 DESCRIPTION...........................................................................................1091 ACCESSING THE PROPERTIES OF ONE OR MORE CONTROLS.......................................1092 PROPERTIES CATEGORIES.....................................................................1094 INTRODUCTION.........................................................................................1094 EMPTY FIELDS..........................................................................................1095 TEXT FIELDS............................................................................................1096 NUMERIC FIELDS.......................................................................................1097 DATE-BASED FIELDS..................................................................................1099 EXPANDABLE FIELDS...................................................................................1100 BOOLEAN FIELDS.......................................................................................1102 ACTION FIELDS.........................................................................................1102 LIST-BASED FIELDS...................................................................................1103 AREA-SELECTION FIELDS.............................................................................1104

C# 3.0 Practical Learning II

18

C# 3.0 Practical Learning II

19

Querying a ListThe Language Integrated QueryIntroduction to QueryingWhen using for or foreach loops on a list, you get the value or a range of values inside of the loop. Once you exit the loop, the operation ends and you cannot access the value(s) that was(were) isolated. If you want to get the isolated value or an isolated list of values again, you would have to perform the operation (create the loop), again. In some cases, you may want to prepare and get one value, a few values, or a range of values for later use, or to use over and over again. To do this, you would create a value or a list of values and store that list in a variable, outside of any loop, then use the value or the list of values when needed. As applied to the for or the foreach loop, to perform this operation, you use a conditional statement that would examine the list, look for the value(s), get that value or those values that respond(s) to the condition. Any value(s) that respond(s) to the condition is(are) then stored in the new list. This technique of examining an array is referred to as querying.

Introduction to LINQTo support the ability to query a list, you can use the Language Integrated Query, abbreviated LINQ. To use LINQ in your application, you must include the System.Core.dll assembly in your program. If you started your application as an empty project:

On the main menu, you can click Project -> Add Reference... In the Solution Explorer, you can right-click the name of the project and click Add Reference... In the Class View, you can right-click the name of the project and click Add Reference...

In the .NET tab of the Add Reference dialog box, you can clickSystem.Core

C# 3.0 Practical Learning II

20

Then click OK. You must then use the System.Linq namespace in your code or you should include the using System.Linq; line in your list of namespaces. If you create an application by selecting the Console Application option from the New Project dialog box, the studio would add the necessary assembly to your project and the necessary namespace to your code file.

Selecting the ValuesTo query a list, you write a statement using words and operators of the LINQ. If you have already used another query language, such as SQL, you may be wondering about LINQ's case-sensitivity. Here is the difference. Because the LINQ statements are written directly in the same sections with the langue of your code, LINQ's case-sensitivity depends on that language. For example, if you write your LINQ statement in a C# application as we will do here or in a C++ application where the language is case-sensitive, the LINQ's statement is case-sensitive and must be in lowercase. If you write the statement in a case-insensitive language such as Visual Basic or Pascal (such as CodeGear Delphi), you can write the statement with the case of your choice.

C# 3.0 Practical Learning II

21

The most fundamental operation you can perform on LINQ consists of creating, also referred to as selecting, a list of values, from an existing list such as an array. The basic formula to use is:var SubListName = from ValueHolder in List select ValueHolder;

The var keyword, the assignment operator "=", the from keyword, the in keyword, the select keyword, and the semicolon are required. The SubListName is a name of a new variable that will hold the list of values produced by this operation. The ValueHolder is the name of a variable that will be used to identify each resulting member of this operation. This variable will be equivalent to getting each member of the array that responds to a condition. The List factor represents the name of the variable that you would have created already. The List can be an array. Here is an example:using System; using System.Linq; public class Exercise { static int Main(string[] args) { var Numbers = new double[] { 12.44, 525.38, 6.28, 2448.32, 632.04 }; var Number = from n in Numbers select n; foreach(var member in Number) Console.WriteLine("Number: {0}", member); return 0; } }

This would produce:Number: 12.44 Number: 525.38 Number: 6.28 Number: 2448.32 Number: 632.04 Press any key to continue . . .

To make the code easier to read, you can spread the select statement to various lines. Here is an example:using System; using System.Linq;

C# 3.0 Practical Learning II

22

public class Exercise { static int Main(string[] args) { var Numbers = new double[] { 12.44, 525.38, 6.28, 2448.32, 632.04 }; var Number = from n in Numbers select n; foreach(var member in Number) Console.WriteLine("Number: {0}", member); return 0; } }

Using a Collection-Based VariableWe mentioned that the List factor of our formula could be an array. It can also be a collection-based variable; that is, a variable created from a collection-based class. The collection class you use must implement the IEnumerable generic interface. If you want, you can create your own class that implements this interface but the .NET Framework provides a complete set of classes that should suit every need. One of the built-in generic classes of the .NET Framework is called List and you can easily use it to create a list of values. Here is an example:using System; using System.Collections.Generic; public class Exercise { static int Main(string[] args) { var Numbers = new List(); Numbers.Add(12.44); Numbers.Add(525.38); Numbers.Add(6.28); Numbers.Add(2448.32); Numbers.Add(632.04); } } return 0;

After creating the collection, you can use the same LINQ formula we saw for an array. Here is an example:using System; using System.Linq;

C# 3.0 Practical Learning II

23

using System.Collections.Generic; pub