標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips) 鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
程式UsingLabels畫面
基本標籤
標籤點擊事件處理(1/2) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingLabels { public partial class MainForm : Form public MainForm() InitializeComponent(); }
標籤點擊事件處理(2/2) private void label1_Click(object sender, EventArgs e) { //************************ label1.Text = "程式可關閉"; }
程式UsingLinkLabels1畫面
連結標籤
連結標籤點擊事件處理(1/2) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingLinkLabels1 { public partial class MainForm : Form public MainForm() InitializeComponent(); //**************** InitLinkLabel(); }
連結標籤點擊事件處理(2/2) private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //***************************************** System.Diagnostics.Process.Start( e.Link.LinkData.ToString()); } //********************************************* private void InitLinkLabel() linkLabel1.Links.Add(1, 2, "www.ntu.edu.tw");
程式UsingLinkLabels2畫面
連結標籤點擊事件處理(1/2) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingLinkLabels2 { public partial class MainForm : Form public MainForm() InitializeComponent(); //*********************************** InitLinkLabel1(); }
連結標籤點擊事件處理(2/2) private void linkLabel1_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e){ //********************************** linkLabel1.Links[ linkLabel1.Links.IndexOf(e.Link)].Visited = true; System.Diagnostics.Process.Start( e.Link.LinkData.ToString()); //*********************************** } private void InitLinkLabel1() { linkLabel1.Links.Add(2, 2, "www.kimo.com.tw"); linkLabel1.Links.Add(5, 2, "www.yam.com.tw");
練習 撰寫應用標籤與連結標籤的視窗程式,內容自由發揮
程式UsingButtons畫面
按鈕
按鈕點擊事件處理(1/3) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingButtons { public partial class MainForm : Form public MainForm() InitializeComponent(); }
按鈕點擊事件處理(2/3) private void button1_Click( object sender, EventArgs e) { //********************************* if (button1.Text == "是(&Y)") label1.Text = "檔案已刪除"; button1.Text = "確定"; button2.Visible = false; } else Dispose(true);
按鈕點擊事件處理(3/3) private void button2_Click( object sender, EventArgs e) { //********************************* Dispose(true); }
練習 撰寫應用標籤與按鈕的視窗程式,內容自由發揮
程式UsingToolStrips畫面
工具列 (1/2)
工具列 (2/2)
工具列按鈕點擊事件處理(1/2) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingToolStrips { public partial class MainForm : Form public MainForm() InitializeComponent(); }
工具列按鈕點擊事件處理(2/2) private void toolStripButton1_Click( object sender, EventArgs e) { //*************************************** label1.Text = "工具列按鈕被按了" + Test.Increase().ToString() + "次"; }
程式Test.cs using System; using System.Collections.Generic; using System.Text; namespace UsingToolStrips { class Test private static int n = 0; public static int Increase() return (++n); }
形式與功能 Function determines forms 資料處理核心與使用介面儘量分離 (Document vs. View) 使用介面較常變動 資料處理核心較為穩定
程式UsingStatusStrips畫面
狀態列 (1/2)
狀態列 (2/2)
程式MainForm.cs (1/2) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace UsingStatusStrips { public partial class MainForm : Form public MainForm() InitializeComponent(); //********************************* InitStatusStrip(); }
程式MainForm.cs (2/2) //*********************************** private void InitStatusStrip() { toolStripStatusLabel2.Text = DateTime.Now.ToLongDateString(); toolStripStatusLabel2.ToolTipText = DateTime.Now.ToShortDateString(); }
練習 撰寫應用工具列與狀態列的視窗程式,內容自由發揮