Week 3: WINDOWS PROGRAMMING Chapter 15 in “Beginning Visual C# 2010” ebook Chapter 4 in “”MCTS_Self-Paced_Training_Kit” ebook 4. GroupBoxes and Panels Arrange components on a GUI GroupBoxes can display a caption Text property determines its caption Panels can have scrollbar View additional inside the Panel controls Windows Programming 1 Group Chapter 15:Basic Windows Programming Group Slide 2 GroupBoxes and Panels GroupBox Properties Common Properties Controls Text Fig. 12.19 Description The controls that the GroupBox contains. Text displayed on the top portion of the GroupBox (its caption). GroupBox properties. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 3 GroupBoxes and Panels Panel Properties Common Properties AutoScroll Description Whether scrollbars appear when the Panel is too small to hold its controls. Default is false. BorderStyle Border of the Panel (default None; other options are Fixed3D and FixedSingle). Controls The controls that the Panel contains. Fig. 12.20 Panel properties. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 4 GroupBoxes and Panels Controls inside panel panel panel scrollbars Fig. 12.21 Creating a Panel with scrollbars. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 5 GroupBoxes and Panels Chapter 15:Basic Windows Programming The FlowLayoutPanel Control The FlowLayoutPanel control is a subclass of the Panel control Unlike the Panel control, however, the FlowLayoutPanel dynamically repositions the controls it hosts when it is resized at either design time or run time Like the Panel control, the FlowLayoutPanel control is scrollable Windows Programming 1 Chapter 15:Basic Windows Programming Slide 7 The FlowLayoutPanel Control Properties AutoScroll Description Whether scrollbars appear when the FlowLayoutPanel is too small to hold its controls. Default is false. BorderStyle Border of the Panel (default None; other options are Fixed3D and FixedSingle). FlowDirection Determines the direction of flow in FlowLayoutPanel. Can be set to LeftToRight, RightToLeft, TopDown, or BottomUp. WrapContents Determines whether controls will automatically wrap to the next column or row when the FlowLayoutPanel is resized Controls The controls that the Panel contains. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 8 The SplitContainer Control The SplitContainer control creates a subsection of the form where Splitter divides SplitContainer into two SplitterPanel controls that function similarly to Panel controls. The SplitContainer.Dock property is set to Fill by default. SplitContainer exposes its two child SplitterPanel controls through its Panel1 and Panel2 properties Windows Programming 1 Chapter 15:Basic Windows Programming Slide 9 The SplitContainer Control PROPERTY DESCRIPTION BorderStyle Represents the visual appearance of the TabPage border. It can be set to None, which indicates no border; FixedSingle, which creates a single-line border; or Fixed3D, which creates a border with a threedimensional appearance. IsSplitterFixed Determines whether the location of Splitter is fixed and cannot be moved by the user Orientation Determines whether Splitter is oriented horizontally or vertically in SplitContainer. It can be set to Horizontal or Vertical. Panel1 Exposes the properties of the SplitContainer control’s Panel1. Panel2 Exposes the properties of the SplitContainer control’s Panel2 Windows Programming 1 Chapter 15:Basic Windows Programming Slide 10 Dialog Boxes (dlg prefix) Predefined standard dialog boxes for: File Open and Saving Printing and Previewing Color selection Font selection Add the Common Dialog control to form Appears in the Component Tray, pane at bottom of Form Designer where nondisplay controls are shown Windows Programming 1 Chapter 15:Basic Windows Programming Slide 11 Drag common dialog to form Windows Programming 1 Chapter 15:Basic Windows Programming Slide 12 Common Dialog Controls OpenFileDialog SaveFileDialog FontDialog ColorDialog PrintDialog PrintPreviewDialog Windows Programming 1 Chapter 15:Basic Windows Programming Slide 13 FontDialog Windows Programming 1 Chapter 15:Basic Windows Programming Slide 14 FontDialog Property Font: Gets or sets the selected font. Property ShowEffects whether the dialog box contains controls that allow the user to specify strikethrough, underline,Color. Property Color: Gets or sets the selected font color Method Showdialog(): Windows Programming 1 Chapter 15:Basic Windows Programming Slide 15 ColorDialog Windows Programming 1 Chapter 15:Basic Windows Programming Slide 16 ColorDialog Property Color : get/set color select by the user Property FullOpen: True/false, whether the controls used to create custom colors are visible when the dialog box is opened Method Showdialog():Displays a dialog box user interface Windows Programming 1 Chapter 15:Basic Windows Programming Slide 17 ColorDialog colorDialog1.FullOpen=true; colorDialog1.Color = Color.Red; colorDialog1.ShowDialog(); lblDisplay.ForeColor = colorDialog1.Color; Windows Programming 1 Chapter 15:Basic Windows Programming Slide 18 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 19 OpenFileDialog - SaveFileDialog Property FileName: Gets or sets a string containing the file name selected in the file dialog box. Property Filter which determines the choices that appear in the "Save as file type" or "Files of type" box in the dialog box. Property FilterIndex: Gets or sets the index of the filter currently selected in the file dialog box. Property InitialDirectory: Gets or sets the initial directory displayed by the file dialog box. Property Title: Gets or sets the file dialog box title. Method Showdialog(): Windows Programming 1 Chapter 15:Basic Windows Programming Slide 20 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 21 The Button, CheckBox, and RadioButton Controls Button CheckBox Text Click (event) Checked CheckState ThreeState CheckedChanged (Event) Radio RadioButton Check box Checked CheckedChanged (Event) Windows Programming 1 Chapter 15:Basic Windows Programming Slide 22 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 23 The ListBox Control The ListBox control is the simplest of the listbased controls and serves primarily to display a simple list of items in an easy-to-navigate user interface from which users can select one or more items Windows Programming 1 Chapter 15:Basic Windows Programming Slide 24 The ListBox and ComboBox Control ListBox tool lst prefix Simple List Box with/without scroll bars ComboBox tool cbo prefix List may allow for user to add new items List may "drop down" to display items in Windows Programming 1 Chapter 15:Basic Windows Programming Slide 25 The ListBox and ComboBox Control Dropdown Combo Box Simple Combo Box List Boxes Dropdown List Box Windows Programming 1 Chapter 15:Basic Windows Programming Slide 26 ListBox & ComboBox Danh sách item Cho phép thêm item trong màn hình thiết kế form 27 ListBox & ComboBox ListBox hiển thị dạng Multi Column Hiển thị nhiều cột 28 The ListBox Control PROPERTY DESCRIPTION Items Returns the collection of items contained in this control. MultiColumn Indicates whether this item shows multiple columns of items or only a single item. SelectedIndex Gets the index of the selected item or, if the SelectionMode property is set to MultiSimple or MutilExtended, returns the index to any selected item. SelectedIndices Returns a collection of all selected indexes. SelectedItem Returns the selected item SelectedItems Returns a collection of all selected items. SelectionMode Determines how many items can be selected in a list box GetSelected returns true if property at given index is selecte Windows Programming 1 Chapter 15:Basic Windows Programming Slide 29 Common ListBox Methods METHOD DESCRIPTION Items.Add() Add the item into ListBox Items.RemoveAt(int Index) Removes the Item at the specified index within the collection Items.Remove(object value) Removes the specified object from the collections Items.Clear() Removes all items from the collection ClearSelected() Clears all selections in the ListBox. FindString() Finds the first string in the ListBox beginning with a string you specify GetSelected() Returns a value that indicates whether an item is selected. SetSelected() Sets or clears the selection of an item. ToString() Returns the currently selected item. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 30 The ListBox, CheckedListBox, and ComboBox Controls method a. <MyListBox>.Items.Add(“MyListItem”) lstMyListBox.Items.Add(“cat”); b. <MyListBox>.Items.RemoveAt(Index) lstMyListBox.Items.RemoveAt(3); c. <MyListBox>.Items.Remove(String) lstMyListbox.Item.Remove(“cat”); d. <MyListBox>.Items.Clear() lstMyListBox.Clear(); e. <MyListBox>.SetSelect(index, True/Fale) lstMyListBox.SetSelect(3,True); e. <MyListBox>.ClearSelect() Windows Programming 1 Chapter 15:Basic Windows Programming Slide 31 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 32 ComboBox Control The ComboBox control is similar to the ListBox control, but, in addition to allowing the user to select items from a list, it provides a space for a user to type an entry. Additionally, you can configure the ComboBox to either display a list of options or to provide a drop-down list of options Windows Programming 1 Chapter 15:Basic Windows Programming Slide 33 ComboBox Control PROPERTY DESCRIPTION DropDownHeight Sets the maximum height for the drop-down box. DropDownStyle Determines the style of the combo box. Can be set to Simple, which is similar to a ListBox; DropDown, which is the default; or DropDownList, which is similar to DropDown but does not allow the user to type a new value. DropDownWidth Sets the width of the drop-down section of the combobox. Text Windows Programming 1 Chapter 15:Basic Windows Programming Slide 34 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 35 The CheckedListBox Controls CheckedListBox displays a list of items to users and allows them to select multiple items by checking boxes that are displayed next to the items. Any number of items can be checked, but only one item can be selected at a time. You can retrieve a collection that represents the checked items by accessing the CheckedItems collection Windows Programming 1 Chapter 15:Basic Windows Programming Slide 36 The CheckedListBox Controls PROPERTY CheckedIndices Returns a collection that represents all the checked indexes CheckedItems Returns a collection that exposes all the checked items in the control Items Returns the collection of items contained in this control MultiColumn Indicates whether this control shows multiple columns of items or only a single item Windows Programming 1 Chapter 15:Basic Windows Programming Slide 37 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 38 The DomainUpDown and NumericUpDown Controls DomainUpDown (dud) Items ReadOnly SelectedIndex SelectedItem Sorted SelectedItemChanged (Event) Windows Programming 1 Chapter 15:Basic Windows Programming Slide 39 The DomainUpDown and NumericUpDown Controls NumericUpDown (nud) Increment Maximum Minimum Value ValueChanged Event Windows Programming 1 Chapter 15:Basic Windows Programming Slide 40 Demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 41 The MonthCalendar and DateTimePicker Controls Windows Programming 1 Chapter 15:Basic Windows Programming Slide 42 MonthCalendar properties and an event Windows Programming 1 Chapter 15:Basic Windows Programming Slide 43 DateTimePicker Control The DateTimePicker control enables the user to set a date, a time, or both in an easytounderstand graphical interface similar to a ComboBox control Windows Programming 1 Chapter 15:Basic Windows Programming Slide 44 DateTimePicker properties and an event Windows Programming 1 Chapter 15:Basic Windows Programming Slide 45 The Timer, TrackBar, and ProgressBar Controls The Timer _ tmr Enabled Interval Start() Stop() Tick Property Property Method Method Event Windows Programming 1 Chapter 15:Basic Windows Programming Slide 46 Timer Properties Enabled Stop Interval Tick 47 Timer Hiển thị thời gian Enable sự kiện Tick Khoảng thời gian chờ giữa 2 lần gọi Tick 48 Timer Sự kiện Tick Khai báo trình xử lý sự kiện Tick 49 Timer Demo Mỗi giây sự kiện Tick phát sinh. Trình xử lý của Tick sẽ lấy giờ hệ thống và hiển thị lên Label 50 The TrackBar Controls The TrackBar control provides a simple interface that enables the user to set a value from a predetermined range of values by graphically manipulating a slider with the mouse or keyboard commands. This enables the user to rapidly set a value from a potentially very large range. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 51 The TrackBar Controls PROPERTY DESCRIPTION LargeChange The number of positions the slider moves in response to mouse clicks or the Page Up and Page Down keys. Maximum The maximum value for TrackBar. Minimum The minimum value for TrackBar. SmallChange The number of positions the slider moves in response to arrow key keystrokes. TickFrequency The number of positions between tick marks on TrackBar. TickStyle Indicates where ticks appear on TrackBar. Value The value returned by TrackBar. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 52 The Timer, TrackBar, and ProgressBar Controls ProgressBar (prg) Maximum Minimum Value Property Property Property Windows Programming 1 (100) (0) (0) Chapter 15:Basic Windows Programming Slide 53 The TabControl The TabControl control enables you to group sets of controls in tabs, rather like files in a filing cabinet or dividers in a notebook. TabControl serves as a host for one or more TabPage controls, which themselves contain controls. The user can switch between tab pages (and the controls contained therein) by clicking the tabs on TabControl Windows Programming 1 Chapter 15:Basic Windows Programming Slide 54 The TabControl PROPERTY DESCRIPTION Appearance Determines the visual style of TabControl Alignment Determines whether the tabs appear on the top, bottom, left, or right of the tab control Multiline Determines whether more than one row of tabs is allowed on the tab control TabPages Represents the collection of TabPage controls hosted by TabControl AutoScroll Determines whether TabPage will display scroll bars when controls are hosted outside the visible bounds of the panel BorderStyle Represents the visual appearance of the TabPage border Text Represents the text displayed on the tab in the tab control that represents this TabPage Windows Programming 1 Chapter 15:Basic Windows Programming Slide 55 ToolTips We demonstrated tool tipsthe helpful text that appears when the mouse hovers over an item in a GUI Windows Programming 1 Chapter 15:Basic Windows Programming Slide 56 Menus (mnu prefix) Menus provide groups of related commands for Windows applications separator bars Windows Programming 1 Checked menu item Chapter 15:Basic Windows Programming Slide 57 Menu Design Standards File Menu New (Ctrl N) Open (Ctrl O) Close Save As Save (Ctrl S) Print (Ctrl P) Exit Windows Programming 1 Edit Menu Undo (Ctrl Z) Cut (Ctrl X) Copy (Ctrl C) Paste (Ctrl V) Find (Ctrl F) Replace (Ctrl H) Chapter 15:Basic Windows Programming Slide 58 The MenuStrip Control The MenuStrip control is essentially a ToolStrip control optimized for the display of ToolStripMenu items. The MenuStrip control derives from ToolStrip and can host all the tool strip items described in the previous lesson. Its primary function, however, is to host ToolStripMenu items. ToolStripMenuItem controls are the controls that provide the visual representation for items on a menu. They can appear as text, an image, or both and can execute code found in their ToolStripMenuItem Windows Programming 1 Chapter 15:Basic Windows Programming Slide 59 The MenuStrip Control PROPERTY DESCRIPTION AllowMerge Indicates whether this menu strip can be merged with another tool strip. LayoutStyle Indicates how the controls on the tool strip are laid out ShowItemToolTips Indicates whether tool tips for individual tool strip items are displayed. TextDirection Indicates the direction of the text in controls hosted in the tool strip. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 60 ToolStripMenuItem properties PROPERTY DESCRIPTION AutoSize Determines whether the menu item is automatically sized to fit the text. Checked Determines whether the menu item appears as selected. CheckOnClick Determines whether the menu item is automatically selected when clicked CheckState Returns the CheckState value of the menu item. CheckState can be Checked, Unchecked, or Indeterminate. DisplayStyle Determines how the tool strip menu item is displayed. DoubleClickEnabled Determines whether the DoubleClick event fires. DropDownItems Contains a collection of tool strip items (usually, but not necessarily, tool strip menu items) that appear in the drop-down list when this item is chosen. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 61 CREATING MENUS AND MENU ITEMS To create an access shortcut (or keyboard shortcut), Windows Programming 1 Chapter 15:Basic Windows Programming Slide 62 CREATING MENUS AND MENU ITEMS To create an access shortcut (or keyboard shortcut), Windows Programming 1 Chapter 15:Basic Windows Programming Slide 63 CREATING MENUS AND MENU ITEMS To add other shortcut keys (e.g., <Ctrl>-F9) Windows Programming 1 Chapter 15:Basic Windows Programming Slide 64 Adding Separator Bars to Menus You can add a separator to any submenu at design time by choosing Separator from the drop-down box in the menu item design interface. Using “-” Windows Programming 1 Chapter 15:Basic Windows Programming Slide 65 MenuStrip and ToolStripMenuItem an event. Click Generated when an item is clicked or a shortcut key is used. This is the default event when the menu is double clicked in the designer DropDownOpened Occurs when Dropdown hasoOpened Windows Programming 1 Slide 66 Context Menus and the ContextMenuStrip Control All controls that can display a context menu expose a ContextMenuStrip property that represents the context menu associated with that control A context menu is invoked when the user right-clicks a control. You can set this property at design time in the Properties window. Windows Programming 1 Chapter 15:Basic Windows Programming Slide 67 Context Menu Demo: tạo context Menu hiển thị trong ListBox có menu item Remove, cho phép xóa item đang được chọn. Tạo Form có mô tả như sau ListBox hiển thị các item 68 Context Menu Kéo ContextMenuStrip thả vào Form 69 Context Menu Kích vào ContextMenuStrip để thiết kế menu Tạo một menu item “Remove” như hình mô tả Soạn thảo các menu item 70 Context Menu Liên kết ContextMenu với ListBox Trong cửa sổ properties của ListBox Khai báo thuộc ContextMenuStrip1 tính ContextMenuStrip = Chọn context menu 71 Context Menu Khai báo trình xử lý sự kiện Click cho menu item 72 Context Menu Demo Context Menu hiển thị khi user kích chuột phải lên ListBox 73 The StatusBar Control Alignment AutoSize BorderStyle Icon Style ToolTipText Property Property Property Property Property Property Windows Programming 1 Chapter 15:Basic Windows Programming Slide 74 The ToolBar Control Buttons Property ButtonClick Event ImageList Property SendToBack() Method ShowToolTips Property Windows Programming 1 Chapter 15:Basic Windows Programming Slide 75 CREATING MDI APPLICATIONS Multiple Document Interface (MDI) Windows Single Document Interface (SDI) Windows Programming 1 Multiple Document Interface (MDI) Chapter 15:Basic Windows Programming Slide 76 CREATING MDI APPLICATIONS ActiveMdiChild IsMdiContainer MdiChildActivate MdiChildren MdiParent LayoutMdi() Windows Programming 1 Property Property Event Property Property Method Chapter 15:Basic Windows Programming Slide 77 Multiple Document Interface (MDI) Windows ArrangeIcons LayoutMdi( MdiLayout.ArrangeIcons); Windows Programming 1 Cascade LayoutMdi( MdiLayout.Cascade); Chapter 15:Basic Windows Programming Slide 78 Multiple Document Interface (MDI) Windows TileHorizontal LayoutMdi(MdiLayout.TileHorizontal); Windows Programming 1 TileVertical LayoutMdi(MdiLayout.TileVertical); Chapter 15:Basic Windows Programming Slide 79 Form Splash Windows Programming 1 Chapter 15:Basic Windows Programming Slide 80 Form Splash FormBorderStyle StartPosition = TopMost Windows Programming 1 = None; CenterToScreen; = true; Chapter 15:Basic Windows Programming Slide 81 Form Splash static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frmFlashForm f = new frmFlashForm(); f.ShowDialog(); if (f.DialogResult == DialogResult.OK) { Application.Run(new frmFormMain()); } } Windows Programming 1 Chapter 15:Basic Windows Programming Slide 82 Form Splash private void timer1_Tick(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; timer1.Enabled = false; } Windows Programming 1 Chapter 15:Basic Windows Programming Slide 83 Form About Windows Programming 1 Chapter 15:Basic Windows Programming Slide 84 Mouse-Event Handling Mouse events can be handled for any control that derives from class System.Windows.Forms.Control MouseEventArgs (object as arguments ) MouseEventHandler (requires an object ) Class MouseEventArgs contains information related to the mouse event, such as the mouse pointer's x- and y-coordinates, the mouse button pressed (Right, Left or Middle) and the number of times the mouse was clicked Windows Programming 1 Chapter 15:Basic Windows Programming Slide 85 Mouse Event MouseEventArgs Số lần kích chuột Button được nhấn Tọa độ (x,y) của con trỏ chuột 86 Mouse events and event arguments Windows Programming 1 Chapter 15:Basic Windows Programming Slide 87 Mouse Event Sự kiện chuột với tham số kiểu EventArgs MouseEnter Occurs when mouse enters the visible part of control MouseLeave Xuất hiện khi con trỏ chuột rời khỏi biên của control Sự kiện chuột với tham số kiểu MouseEventArgs 88 MouseDown/ MouseUp Xuất hiện khi button được nhấn/thả và con trỏ chuột đang ở trong vùng biên của control MouseMove Xuất hiện khi chuột di chuyển và con trỏ chuột ở trong vùng biên của control Mouse Event MouseMove 89 Mouse Event - Mousemove Demo Vị trí hiện tại của con trỏ chuột Hiển thị tọa độ hiện tại của con trỏ chuột 90 Mouse Event Demo thao tác: kích chuột trái tại một điểm A, giữ chuột trái và di chuyển chuột, chương trình sẽ vẽ đường thẳng từ điểm A đến vị trí hiện tại chuột. Các sự kiện cần xử lý MouseDown: Xác định điểm A ban đầu MouseMove Kiểm tra nếu Left button của chuột đang giữ Sử dụng Graphics để vẽ đường thẳng từ A đến vị trí hiện tại 91 Mouse Event Bước 1: Tạo biến lưu trữ điểm A khi user kích chuột trái Biến pA có kiểu Point là biến thành viên của Form1 Lớp Form1 Biến pA lưu giữ tọa độ khi chuột trái được click 92 Mouse Event Bước 2 Khai báo xử lý sự kiện MouseDown trong Form1 Trong cửa sổ event của Form1, kích đúp vào sự kiện MouseDown Lưu lại điểm được nhấn chuột 93 Mouse Event Bước 3 Cài đặt xử lý sự kiện MouseMove Kiểm tra nếu LeftButton được nhấn Vẽ đường thẳng từ pA đến vị trí hiện tại 94 demo Windows Programming 1 Chapter 15:Basic Windows Programming Slide 95 Keyboard - Event Handling Key events occur when keyboard keys are pressed and released. Such events can be handled for any control that inherits from System.Windows.Forms.Control There are three key events KeyPress, KeyUp and KeyDown Windows Programming 1 Chapter 15:Basic Windows Programming Slide 96 Keyboard - Event Handling The KeyPress event occurs when the user presses a key that represents an ASCII character The specific key can be determined with property KeyChar of the event handler's KeyPressEventArgs argument The KeyPress event does not indicate whether modifier keys (e.g., Shift, Alt and Ctrl) were pressed when a key event occurred If this information is important, the KeyUp or KeyDown events can be used The KeyEventArgs argument for each of these events contains information about modifier keys Windows Programming 1 Chapter 15:Basic Windows Programming Slide 97 Keyboard events and event arguments Windows Programming 1 Chapter 15:Basic Windows Programming Slide 98 Windows Programming 1 Chapter 15:Basic Windows Programming Slide 99 Windows Programming 1 Chapter 15:Basic Windows Programming Slide Finish Windows Programming 1 Chapter 15:Basic Windows Programming Slide