C#.NET 程式設計 第十一章 Windows Forms 控制項.

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系.
計算機程式及實習 期末報告 題目:商店結帳系統
第 9 章 表单控件的使用 本章提要:VFP表单控件工具栏上的21个基类控件及表单集,它们的常用属性、方法、事件及主要功能等。为叙述的方便,将VFP的基类控件及表单集按主要功能分为五类: 1.输出类:标签、图像、线条、形状。 2.输入类:文本框、编辑框、微调控件、列表框、组合框。 3.控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器。
Excel –格式設定 資訊教育.
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
CH09.
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
第13章多项目设计与开发.
6.1VB.net概述 6.2初学者工具包 6.3图形图像处理 6.4声音及视频处理
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic.NET 程序设计语言课程内容
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
程式簡介、VB、物件導向 國立北門高中 林明璋.
第十章 進階輸出入元件(一) StringGrid 10-1 核對框(CheckBox)
進階輸出入元件(一) 本書第三章已介紹Form 、Label 、Edit 及Button 等最基本的輸出入元件, 本章將繼續介紹一些可以提昇輸出入視覺效果的元件, 例如CheckBox 、RadioButton 及RadioGroup 等17 個進階元件, 學習本章將可提昇使用介面的親和性。 核對框(CheckBox)
課程名稱:程式設計 授課老師:________
第九章 常用控制項(ㄧ) 資訊教育研究室 編著 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
第13章 WinForms基础知识.
程式語言 -Visual Basic 變數、常數與資料型態.
项目五 窗体上绘图 任务列表: 1、在窗体上绘制各种基本图形 2、在窗体上绘制文本.
页眉 基础综合 C++ Builder 按钮组件
C#图形程序设计基础 1 GDI+绘图基础 2 基本图形的绘制 3 实用图形程序设计.
第9章 Windows窗体应用程序设计 9.1 窗体设计 9.2 常用的控件设计 9.3 多个窗体之间的数据传递 9.4 多文档窗体
第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項
C#程序设计 c# programming GDI+绘图 C#程序设计课程组.
Visual Basic程序设计基础 计算机科学学院.
R教學 安裝RStudio 羅琪老師.
第10章 視窗應用程式的工具列與功能表.
第五章 Windows窗体界面设计 5.1 鼠标事件与键盘事件 5.2 Windows窗体基本控件 5.3 菜单与工具栏
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第十二章 Win32環境程式設計 這一章節可以說是本書精華之一,Win32程式設計算是比較複雜的部分,但是我們以最簡單的敘述帶領著大家進入Win32程式設計的殿堂,讓你寫出來的程式具有一定的水準以上。若能將本章與下一章的技巧靈活運用,更能讓大家寫出高階的視窗程式。
Visual Basic 物件導向程式設計簡介.
第7章 VB.NET程序设计基础 本章主要内容: 介绍VB.NET的集成开发环境; 常用控件(主要属性,方法和事件)的使用;
系統設定 IE8相容性檢視
第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 繪出文字和圖形 12-3 載入與顯示圖形檔案 12-4 建立多媒體的動畫效果
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
網頁切換移轉 JS vs. ASP.NET.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
VS.NET 2003 IDE.
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
第6章 GDI+编程 GDI+ 已完全替代 GDI,以图形图像作为对象,可在 Windows 窗体应用程序中以编程方式绘制或操作图形图像。虽然无法对 Web 窗体直接使用 GDI+,但可以通过 Web 服务器的“图像”(Image) 控件显示图形图像。 处理图像图形包括创建 Graphics 对象,使用.
PowerPoint 2019/4/9.
Ch 08 陣列 視窗程式設計.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
SuperGIS DataManager的使用
Visual C++ Windows Programming
第 12 章 視窗介面進階.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
第4章 ASP.NET服务器控件.
雙按button1,2,3,4 Method 方法/動作 textBox2.Text textBox1 textBox3.Text 轉為數字 c是數字 int c = int.Parse(textBox1.Text) + …; textBox3.Text = c.ToString();
Visual C# 2005程序设计 第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计
GridView.
GridView操作 (II).
Visual Basic 程序设计及应用教程 (6.0版)
Dreamweaver 進階網頁製作 B 許天彰.
Visual C# 程序设计 第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
若要查看更多祕訣、影片、說明和訓練,請瀏覽 aka.ms/officetips
MenuStrip by Szeto CY Visual C# 2008.
Presentation transcript:

C#.NET 程式設計 第十一章 Windows Forms 控制項

11-1 Windows Forms 簡介 “Windows Forms” 是全新的視窗應用程式介面 “Web Forms” 與 “Web Services” 組成了全新的網際網路應用程式介面,.NET Framework 將之統稱為 “ASP.NET” 查看 System.Windows.Forms 命名空間提供的成員

11-2 設計階段的表單 11-2-1 建立表單 啟動 Visual Studio.NET。 點取 [起始頁] 的 [新增專案] 按鈕。 11-2 設計階段的表單 11-2-1 建立表單 啟動 Visual Studio.NET。 點取 [起始頁] 的 [新增專案] 按鈕。 選擇 [Visual C# 專案] 類型及 [Windows 應用程式] 範本,並輸入專案的名稱,然後按 [確定]。

11-2-2 設定表單的格線大小 格線可以幫助我們對齊控制項,如果要設定格線的大小或顯示與否,可以選取 [工具] \ [選項],然後點取 [Windows Forms 設計工具],再依照下圖操作:

11-2-3 設定起始表單 在方案總管內的專案名稱按一下滑鼠右鍵,然後從快顯功能表中選取 [屬性],再於如下對話方塊的 [啟始物件] 欄位選取該表單:

11-2-4 設定表單的屬性 只要選取表單,屬性視窗就會列出被選取之表單的常用屬性供您查看或修改

表單的外觀屬性 表單的視窗樣式屬性 BackColor BackgroundImage Cursor ForeColor ControlBox HelpButton Icon IsMdiContainer MaximizeBox Menu Opacity ShowInTaskBar SizeGripStyle TopMost TransparencyKey 表單的外觀屬性 BackColor BackgroundImage Cursor ForeColor RightToLeft Text Font FormBorderStyle

表單的配置方式:「單一文件介面」(SDI) 、「多重文件介面」(MDI) 、「總管樣式介面」(Explorer-Style Interface) 表單的配置屬性 AutoScale AutoScroll AutoScrollMargin AutoScrollMinSize DockPadding Location MaximumSize MinimumSize Size StartPosition WindowState 表單的行為屬性 AllowDrop ContextMenu Enabled ImeMode 表單的其他屬性 AcceptButton CancelButton KeyPreview Name

11-3 執行階段的表單 執行階段的表單就像所有物件,會有建立與終止的時候。 相關的控制項事件:

11-4 文字編輯控制項 11-4-1 TextBox (文字方塊) 文字方塊的外觀屬性 BackColor BorderStyle 11-4 文字編輯控制項 11-4-1 TextBox (文字方塊) 文字方塊的外觀屬性 BackColor BorderStyle Cursor Font ForeColor Lines RightToLeft ScrollBars Text TextAlign

文字方塊的行為屬性 AcceptsReturn AcceptsTab AllowDrop AutoSize CharacterCasting ContextMenu Enabled HideSelection ImeMode MaxLength Multiline PasswordChar ReadOnly TabIndex TabStop Visible WordWrap 文字方塊的配置屬性 Anchor Dock Location Size Name

11-4-2 RichTextBox RichTextBox 的屬性 AutoWordSelection BulletIndent DetectUrls ShowSelectionMargin -ZoomFactor 

RichTextBox 的格式化屬性 SelectedText SelectionAlignment SelectionBullet SelectionCharOffset SelectionColor SelectionFont SelectionIndent SelectionHangingIndent SelectionRightIndent SelectionStart SelectionLength SelectionProtected SelectionType SelectionTabs

private void richTextBox1_Enter(object sender, System.EventArgs e) { richTextBox1.SelectionBullet = true; richTextBox1.BulletIndent = 10; } private void richTextBox2_Enter(object sender, System.EventArgs e) richTextBox2.SelectionHangingIndent = 15;

11-5 命令控制項 11-5-1 Button (按鈕) Button 的外觀屬性 BackColor BackgroundImage 11-5 命令控制項 11-5-1 Button (按鈕) Button 的外觀屬性 BackColor BackgroundImage Cursor FlatStyle Font ForeColor Image ImageAlign ImageIndex ImageList RightToLeft Text TextAlign

Button 的行為屬性 AllowDrop ContextMenu DialogResult Enabled TabIndex TabStop Visible Name 

11-5-2 NotifyIcon (告知圖示) 比較重要的屬性有 Icon 、Visible 、Text

11-5-3 ToolBar (工具列) ToolBar 的外觀屬性 BorderStyle ButtonSize Divider DropDownArrows Font TextAlign

Toolbar 的行為屬性 AllowDrop Appearance AutoSize Buttons ContextMenu Enabled ImageList ShowToolTips TabIndex TabStop Visible Wrappable Name 

讓程式根據使用者點取第幾個工具列按鈕,秀出對應的對話方塊: private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { switch(toolBar1.Buttons.IndexOf(e.Button)) case 0: MessageBox.Show("您按下的是第一個按鈕"); break; case 1: MessageBox.Show("您按下的是第二個按鈕"); case 2: MessageBox.Show("您按下的是第三個按鈕"); case 3: MessageBox.Show("您按下的是第四個按鈕"); case 4: MessageBox.Show("您按下的是第五個按鈕"); }

11-6 文字顯示控制項 11-6-1 Label (標籤) Label 的外觀屬性 BackColor BorderStyle 11-6 文字顯示控制項 11-6-1 Label (標籤) Label 的外觀屬性 BackColor BorderStyle Cursor FlatStyle ForeColor Font Image ImageAlign ImageIndex ImageList RightToLeft Text TextAlign UseMnemonic

Label 的行為屬性 AllowDrop AutoSize ContextMenu Enabled TabIndex Visible Name  第一個 Label 將第一個 TextBox 的快速存取鍵設定為 [Alt] + [1],也就是當使用者按下 [Alt] 鍵加上第一個 Label 內有底線的字元 [1] 時,就會將焦點移至第一個 TextBox;同理,第二個 Label 將第二個 TextBox 的快速存取鍵設定為 [Alt] + [2]。

11-6-2 LinkLabel (超連結標籤) ActiveLinkColor DiabledLinkColor LinkColor LinkVisited VisitedLinkColor LinkBehavior LinkArea

private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { // 將 LinkVisited 屬性設定為 true, 將使藍色的超連結變成已瀏覽的超連結色彩-紫色 linkLabel1.LinkVisited = true; // 呼叫 Process.Start() 方法以預設的瀏覽器開啟指定的網址 System.Diagnostics.Process.Start("http://tw.yahoo.com/"); } private void linkLabel2_LinkClicked(object sender, Form Form2 = new Form(); // 建立另一個表單 Form2.Show(); // 呼叫 Show() 方法將表單顯示出來 linkLabel2.LinkVisited = true;

11-6-3 StatusBar (狀態列) StatusBar 的外觀屬性 StatusBar 的行為屬性 Cursor Font Panels RightToLeft SizingGrip Text StatusBar 的行為屬性 AllowDrop ContextMenu Enabled ShowPanels TabIndex TabStop Visible Name 

private void statusBar1_PanelClick(object sender, System.Windows.Forms.StatusBarPanelClickEventArgs e) { switch(statusBar1.Panels.IndexOf(e.StatusBarPanel)) case 0: MessageBox.Show("您點取的是第一個面板"); //您可以在此定義其它動作 break; case 1: MessageBox.Show("您點取的是第二個面板"); //您可以在此定義其它動作 }

11-7 圖片控制項 11-7-1 PictureBox (圖片方塊) BackColor Background Image 11-7 圖片控制項 11-7-1 PictureBox (圖片方塊) PictureBox 的外觀屬性 BackColor Background Image BorderStyle Cursor PictureBox 的行為屬性 ContextMenu Enabled SizeMode Visible Name

private void pictureBox1_Click(object sender, System.EventArgs e) { pictureBox3.Visible = true; // 顯示第三個 PictureBox 控制項的圖片 } private void pictureBox2_Click(object sender, System.EventArgs e) { pictureBox3.Visible = false; // 不顯示第三個 PictureBox 控制項的圖片 }

11-7-2 ImageList (圖片清單) ImageList 控制項可以用來儲存圖片清單,以便稍後經由其它控制項顯示,例如 ToolBar、ListView、TreeView、TabControl、Button、CheckBox、RadioButton 和 Label 等控制項都可以搭配 ImageList 控制項來儲存圖片清單。

11-8 清單控制項 11-8-1 CheckBox (核取方塊) 屬性 Appearance CheckAlign Checked 11-8 清單控制項 11-8-1 CheckBox (核取方塊) 屬性 Appearance CheckAlign Checked CheckState AutoCheck ThreeState 

private void button1_Click(object sender, System.EventArgs e) { string Prefer = "您喜愛的早餐有 "; if (checkBox1.Checked == true) Prefer = Prefer + "三明治 "; if (checkBox2.Checked == true) Prefer = Prefer + "潛水艇 "; if (checkBox3.Checked == true) Prefer = Prefer + "燒餅 "; if (checkBox4.Checked == true) Prefer = Prefer + "飯糰 "; if (checkBox5.Checked == true) Prefer = Prefer + "羅蔔糕 "; MessageBox.Show(Prefer); }

11-8-2 RadioButton (選項按鈕) private void button1_Click(object sender, System.EventArgs e) { string Prefer = "您喜愛的早餐有 "; if (radioButton1.Checked == true) Prefer = Prefer + "三明治 "; if (radioButton2.Checked == true) Prefer = Prefer + "潛水艇 "; if (radioButton3.Checked == true) Prefer = Prefer + "燒餅 "; if (radioButton4.Checked == true) Prefer = Prefer + "飯糰 "; if (radioButton5.Checked == true) Prefer = Prefer + "羅蔔糕 "; MessageBox.Show(Prefer); }

11-8-3 ListBox (清單方塊) 屬性 ColumnWidth DrawMode HorizontalExtent HorizontalScrollBar IntegralHeight ItemHeight MultiColumn ScrollAlwaysVisible SelectedIndex SelectedIndices SelectedItem SelectedItems SelectionMode Sorted

private void button1_Click(object sender, System.EventArgs e) {  MessageBox.Show("這個清單方塊內總共有" + listBox1.Items.Count + "個項目\n" + "您所選擇的最高學歷為" + listBox1.SelectedItem); }

private void button1_Click(object sender, System.EventArgs e) { string Msg = "這個清單方塊內總共有" + listBox1.Items.Count + "個項目\n" + "您所選擇的休閒活動為"; if (listBox1.SelectedItems.Count != 0) for(int i = 0; i < listBox1.SelectedItems.Count; i++) Msg = Msg + listBox1.SelectedItems[i].ToString() + " "; } MessageBox.Show(Msg);

11-8-4 CheckedListBox (核取清單方塊) private void button1_Click(object sender, System.EventArgs e) { string Msg = "這個清單方塊內總共有" + checkedListBox1.Items.Count + "個項目\n" + "您所選擇的休閒活動為"; if (checkedListBox1.CheckedItems.Count != 0) for(int i = 0; i < checkedListBox1.CheckedItems.Count; i++) Msg = Msg + checkedListBox1.CheckedItems[i].ToString() + " "; } MessageBox.Show(Msg);

11-8-5 ComboBox (下拉式清單) private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show("這個清單方塊內總共有" + comboBox1.Items.Count + "個項目\n" + "您所選擇的年薪為" + comboBox1.SelectedItem); }

11-8-6 DomainUpDown private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show("這個清單方塊內總共有" + domainUpDown1.Items.Count + "個項目\n" + "您所選擇的年薪為" + domainUpDown1.SelectedItem); }

11-8-7 NumericUpDown private void button1_Click(object sender, System.EventArgs e) {   MessageBox.Show("您輸入的年齡為" + numericUpDown1.Value); }

11-8-8 ListView (清單檢視) 屬性 CheckBoxes、CheckedIndices、CheckedItems、FullRowSelect、GridLines、View、Activation、AllowColumnReorder、AutoArrange、Columns、HeaderStyle、HideSelection、HoverSelection、Items、LabelEdit、LabelWrap、LargeImageList、MultiSelectScrollable、SmallImageList、Sorting、StateImageList

設計一個 ListView 控制項,使其大型圖示、小型圖示、清單、詳細資料等四種檢視模式如下所示:

11-8-9 TreeView (樹狀檢視) 屬性 CheckBoxes、ItemHeight、FullRowSelect、HideSelection、HotTracking、Indent、LabelEdit、Nodes、PathSeparator、Scrollable、ShowLines、ShowPlusMinus、ShowRootLines、Sorted

11-9 功能表控制項 11-9-1 MainMenu (主功能表) MainMenu 控制項可以用來在表單上插入主功能表,如下圖所示:

11-9-2 ContextMenu (快顯功能表)

11-10 其它控制項 11-10-1 FontDialog (字型對話方塊) 屬性 11-10 其它控制項 11-10-1 FontDialog (字型對話方塊) 屬性 AllowSimulations、AllowVectorFonts、AllowVerticalFonts、Color、Font、FontMustExist、MaxSize、MinSize、ScriptsOnly、ShowApply、ShowColor、ShowEffects、ShowHelp

private void button1_Click(object sender, System.EventArgs e) { fontDialog1.ShowDialog(); // 呼叫 ShowDialog() 方法來顯示對話方塊 label1.Font = fontDialog1.Font; // 將標籤的字型設定為選取的字型 label1.ForeColor = fontDialog1.Color; // 將標籤的前景色彩設定為選取的色彩 }

11-10-2 ColorDialog (色彩對話方塊) 屬性 AllowFullOpen AnyColor Color FullOpen ShowHelp SolidColorOnly

請在表單上放置按鈕、文字方塊和色彩對話方塊,使其執行結果如下:

11-10-3 TrackBar (滑動軸) 屬性 Orientation LargeChange SmallChange TickFrequency TickStyle Maximum Minimum Value

請設計一個表單,使其執行結果如下: private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show("您設定的音量大小為" + trackBar1.Value); }

11-10-4 DateTimePicker (日期時間清單) 屬性 Format ShowCheckBox ShowUpDown MaxDate MinDate Value

請設計一個表單,使其執行結果如下

11-10-5 MonthCalendar (月曆) 屬性 CalendarDimentions、TitleBackcolor、TitleForecolor、TrailingForeColor、FirstDayOfWeek、MaxDate、MinDate、MaxSelectionCount、MonthlyBoldDates、ScrollChange、SelectionEnd、SelectionStart、SelectionRange、ShowToday、ShowTodayCircle、ShowWeekNumbers、TodayDate

請設計如下表單,使其執行結果如下

11-10-6 GroupBox (群組方塊) 請設計如右表單,內有兩個 GroupBox 控制項,而 GroupBox 控制項裡面又有 Label、RadioBox、TextBox、CheckBox 等控制項。

11-10-7 Panel (面板)

11-10-8 TabControl (標籤) 屬性 ItemSize Multiline Padding ShowToolTips TabCount TabPages

請設計如下表單,使其 TabControl 控制項有 6 個標籤:

11-10-9 Timer (計時器) Interval 屬性 Enabled 屬性 Tick 事件處理程序 Start() 方法 Stop() 方法

11-10-10 ProgressBar (進度列) 屬性 Maximum Minimum Step Value

請設計如右表單,進度列的最大值為 100、最小值為 0,每隔 3 秒鐘會自動增量 10,而多顯示一個藍色矩形,直到藍色矩形填滿整個進度列。

11-10-11 SaveFileDialog (儲存檔案 對話方塊) 屬性 AddExtension、CheckFileExists、CheckPathExists、CreatePrompt、DefaultExt、DereferenceLinks、FileName、FileNames、Filter、FilterIndex、InitialDirectory、OverwritePrompt、RestoreDirectory、ShowReadOnly、ShowHelp、Title、ValidateNames

請設計一個表單,使其執行結果如下:

11-10-12 OpenFileDialog (開啟舊檔 對話方塊)

11-11 Windows Forms 的 GDI+ 繪圖 11-11-1 建立 Graphics 物件 方式一 private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics MyGraphics = e.Graphics; //接下來可以撰寫進行繪圖的程式碼 } 方式二 Graphics MyGraphics = this.CreateGraphics();

11-11-2 建立色彩、畫筆與筆刷 建立色彩 建立筆刷,類型如下: SolidBrush HatchBrush TextureBrush 11-11-2 建立色彩、畫筆與筆刷 建立色彩 Dim MyColor as Color : MyColor = Color.FromArgb(0, 255, 0) 建立筆刷,類型如下: SolidBrush HatchBrush TextureBrush LinearGradientBrush PathGradientBrush

11-11-3 繪製線條與形狀 Point 結構和 Rectangle 結構 方法 11-11-3 繪製線條與形狀 Point 結構和 Rectangle 結構 Point[] MyPoint = {new Point(x1, y1), new Point(x2, y2), new Point(x3, y3)...}; Rectangle MyRec = new Rectangle(x1, y1, x2, y2); 方法 DrawBezier(pen, point1, point2, point3, point4) DrawCurve(pen, point()) DrawClosedCurve(pen, point()) DrawEllipse(pen, x, y, width, height) DrawLine(pen, x1, y1, x2, y2) DrawPolygon(pen, point()) DrawRectangle(pen, x1, y1, x2, y2) DrawArc(pen, x, y, width, height, startAngle, sweepAngle)

DrawPie(pen, x, y, width, height, startAngle, sweepAngle) FillClosedCurve(brush, point()) FillEllipse(brush, x, y, width, height) FillPie(brush, x, y, width, height, startAngle, sweepAngle) FillPolygon(brush, point()) FillRectangle(brush, x1, y1, x2, y2) ResetTransform() RotateTransform(angle) ScaleTransform(sw, sh) TranslateTransform (dx, dy) Clear(color) Dispose() Save()

請依照指示在表單上繪製如下的線條或形狀,裡面定義了三種畫筆,色彩分別為 Red、Blue、Green,寬度分別為 1、3、5 個像素點:

請依照指示將前一個隨堂練習的封閉圖形填滿色彩:

請依照指示在表單上繪製如下圖形,前者是繪製 10 個圓形,每個圓形之間位移 10 像素點,後者是繪製 36 個矩形,每個矩形之間旋轉 10 度:

11-11-4 繪製文字 首先,建立 Graphices 物件。 接著,建立用來繪製文字的筆刷。 繼續,建立用來繪製文字的字型,例如: 11-11-4 繪製文字 首先,建立 Graphices 物件。 接著,建立用來繪製文字的筆刷。 繼續,建立用來繪製文字的字型,例如: Font MyFont = new Font(“標楷體”, 24, FontStyle.Italic); 呼叫 Graphics 物件提供的 DrawString() 方法 繪製文字,例如 : MyGraphics.DrawString ("VC#.NET程式設計", MyFont, MyBrush, 10, 10);

將前面的四個步驟整合在一起,可以得到如下結果: private void Form1_Paint (object sender, System.Windows.Forms.PaintEventArgs e) { Graphics MyGraphics = e.Graphics; LinearGradientBrush MyBrush = new LinearGradientBrush(ClientRectangle, Color.Red, Color.Yellow, LinearGradientMode.Horizontal); Font MyFont = new Font("標楷體", 20, FontStyle.Italic); MyGraphics.DrawString("VC#.NET程式設計", MyFont, MyBrush, 10, 10); }

11-11-5 顯示圖形影像 首先,建立 Graphices 物件。 接著,建立用來表示所要顯示之圖形影像的物件,如: 11-11-5 顯示圖形影像 首先,建立 Graphices 物件。 接著,建立用來表示所要顯示之圖形影像的物件,如: Bitmap MyBitmap = new Bitmap(@"..\..\img1.bmp"); 呼叫Graphics物件提供的DrawImage() 方法繪製文字,例如 : MyGraphics.DrawImage(MyBitmap, 10, 10);

將前面的三個步驟整合在一起,可以得到如下結果: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics MyGraphics = e.Graphics; Bitmap MyBitmap = new Bitmap(@"..\..\img1.bmp"); MyGraphics.DrawImage(MyBitmap, 10, 10); }

11-12 Windows Forms的列印支援

1. 2. 3. 將 PrintPreviewDialog1、PrintDialog1 的 Document 屬性設定為 PrintDocument1 ,表示要進行預覽及列印的文件為 PrintDocument1。

4. 撰寫 PrintDocument1 的 PrintPage 事件處理程序 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Graphics MyGraphics = e.Graphics; SolidBrush MyBrush = new SolidBrush(Color.Black); Font MyFont = new Font("新細明體", 12); MyGraphics.DrawString(textBox1.Text, MyFont, MyBrush, 10, 10); } 5. 撰寫 [預覽列印] 按鈕的 Click 事件處理程序 private void button1_Click(object sender, System.EventArgs e) { printPreviewDialog1.ShowDialog(); }

6. 在程式碼視窗中撰寫 [列印] 按鈕 (Button2) 的 Click 事件處理程序 private void button2_Click(object sender, System.EventArgs e) { DialogResult Result = printDialog1.ShowDialog(); if (Result == DialogResult.OK) printDocument1.Print(); }