Windows窗體界面設計.ppt
《Windows窗體界面設計.ppt》由會員分享,可在線閱讀,更多相關《Windows窗體界面設計.ppt(83頁珍藏版)》請在裝配圖網(wǎng)上搜索。
Windows窗體界面設計 1窗體 屬性與事件2Windows窗體基本控件3菜單與工具欄4其他Windows窗體控件 本章教學目的介紹Windows窗體基本設計方法以及基本控件的用法 本章教學要求 1 掌握基本控件的屬性設置方法以及常用屬性 2 掌握基本控件的常用事件處理方法 3 掌握菜單與工具欄的用法 4 了解其他內容 先觀察 界面設計舉例1 1窗體的屬性和透明顯示 利用Transparent和Parent屬性 可以將Label放到PictureBox上透明顯示 也可以將多個PictureBox重疊透明顯示 舉例2 1 將label1 PictureBox1和PictureBox2重疊放到一個Panel控件內 2 設置label1 PictureBox1和PictureBox2控件的BackColor屬性均為Transparent 3 在構造函數(shù)中 設置label1和PictureBox2的父控件為PictureBox1 label1 Parent pictureBox1 pictureBox2 Parent pictureBox1 則label1和PictureBox2相對于PictureBox1是透明的 而PictureBox1相對于窗體Form1是透明的 1 2單文檔窗體 SDI 與多文檔窗體 MDI 1 默認為單文檔窗體 SDI 將窗體的IsMdiContainer屬性設置為true 即可將該窗體變?yōu)槎辔臋n窗體 MDI 2 MDI例子 1 創(chuàng)建項目MdiExample 2 添加窗體Form2 Form3 3 將Form1的IsMdiContainer屬性設置為True 然后添加菜單 a 打開與關閉子窗口子菜單 打開Form2打開Form3關閉Form2關閉Form3 b 排列子窗口 子菜單 水平平鋪 垂直平鋪 層疊 c 退出 1 2單文檔窗體 SDI 與多文檔窗體 MDI 4 添加 打開Form2 打開Form3 事件 privatevoid打開Form2ToolStripMenuItem Click Form2fm newForm2 fm MdiParent this fm Name Form2 fm Show privatevoid打開Form3ToolStripMenuItem Click Form3fm newForm3 fm MdiParent this fm Name Form3 fm Show 不能省略 如果不設置 將其作為子窗體時 其Name屬性默認為空字符串 String Empty 1 2單文檔窗體 SDI 與多文檔窗體 MDI 5 添加 關閉Form2 關閉Form3 事件 privatevoid關閉Form2ToolStripMenuItem Click Form mdiChildren this MdiChildren foreach FormfminmdiChildren if fm Name Form2 fm Close privatevoid關閉Form3ToolStripMenuItem Click Form mdiChildren this MdiChildren foreach FormfminmdiChildren if fm Name Form3 fm Close 1 2單文檔窗體 SDI 與多文檔窗體 MDI 6 添加子窗體排列事件 privatevoid水平平鋪ToolStripMenuItem Click this LayoutMdi MdiLayout TileHorizontal privatevoid垂直平鋪ToolStripMenuItem Click this LayoutMdi MdiLayout TileVertical privatevoid層疊ToolStripMenuItem Click this LayoutMdi MdiLayout Cascade 7 添加 退出 事件 privatevoid退出ToolStripMenuItem Click Application Exit 8 運行 觀察效果 實驗中發(fā)現(xiàn)的問題回答 問題 我希望知道程序是否執(zhí)行到某處 但又不希望在設計窗體上顯示 有哪些方法可以做到 答 方法1 在判斷是否執(zhí)行的地方設置斷點 方法2 利用調試輸出窗口輸出相應信息 1 選擇菜單的 視圖 輸出 以便顯示調試信息 2 利用調試信息測試執(zhí)行情況 例如測試每次循環(huán)計算的結果 intsum 0 for inti 0 i 100 i sum i System Diagnostics Debug Print 第 0 次循環(huán) 1 i sum 調試信息只在調試輸出窗口中顯示 不會在設計窗體上顯示 在進行需要大量時間的后臺操作時 這種方法很有用 2Windows窗體基本控件 2 1控件中常用的屬性和方法1 常用基本屬性除了書上講的屬性外 還要注意以下屬性的用法 1 Name 指定控件的名稱 它是控件在當前應用程序中的唯一標識 代碼通過該屬性來訪問控件2 Enabled 決定控件是否可用 取值為true時可用 取值為false時不可用3 Anchor屬性 保持控件與邊框的距離不變4 Dock屬性 讓控件始終緊靠邊框 2 1控件中常用的屬性和方法 2 Anchor屬性用法舉例 2 1控件中常用的屬性和方法 3 常用方法Focus方法 讓控件獲得焦點如果希望窗體一開始就讓某個控件獲得焦點 可以在窗體的Shown事件中實現(xiàn)各種控件都有自己常用的方法 后面會逐一介紹 2 2TextBox控件 1 文本框控件常用的基本屬性1 Text 表示文本框中顯示的內容 2 MaxLength 用戶可以鍵入的最多字符數(shù) 3 Multiline 是否顯示多行內容 4 PasswordChar 輸入密碼字符時顯示的符號 2 TextBox控件常用的基本事件TextChanged 文本框中的內容更改時觸發(fā) 3 舉例 在一個文本框中輸入內容 在另一個文本框中同時顯示 2 3MaskedTextBox控件 1 用途 通過掩碼限制用戶輸入的信息 2 常用屬性Mask屬性 設置掩碼3 常用事件TypeValidationCompleted事件4 舉例 privatevoidForm1 Load objectsender EventArgse maskedTextBox1 ValidatingType typeof System Int32 privatevoidmaskedTextBox1 TypeValidationCompleted objectsender TypeValidationEventArgse if e IsValidInput MessageBox Show 請輸入數(shù)字 2 4RichTextBox控件 1 常用屬性 1 SelectionFont表示當前選中文本或所要輸入文本的字體 大小 效果等 2 SelectionColor表示當前選中文本或所要輸入文本的顏色 2 常用方法AppendText方法 添加文本信息3 舉例 RichTextBoxExample 2 5CheckBox控件 1 三種狀態(tài)2 常用屬性Checked屬性3 常用事件CheckedChanged事件 2 6RadioButton控件 1 特點 1 單選 2 以各自所在的容器來劃分組 如果在一個窗體上創(chuàng)建多個單選按鈕組 可以使用GroupBox或者Panel控件作為容器 2 除了是單選外 其他用法與CheckBox用法相同 2 7ListBox控件 1 用法及屬性有些類似于CheckedListBox 2 常用屬性1 Items 描述控件對象中的所有項2 MutiColumn 是否以多列的形式顯示各項3 SelectionMode None One MultiSimple MultiExtended4 SelectedIndex 當前選定項的索引號5 SelectedItems 當前選定項3 常用事件SelectedIndexChanged 當SelectedIndex屬性值更改時觸發(fā) 4 舉例 2 7ListBox控件 21 新建一個windows應用程序項目 添加一個ListBox控件和兩個Button控件 設置屬性如表所示 22 privatevoidbutton1 Click objectsender EventArgse for inti 0 i listCountry Items Count i listCountry SelectedIndex i 23 privatevoidbutton2 Click objectsender EventArgse boolb for inti 0 i listCountry Items Count i b listCountry GetSelected i listCountry SetSelected i b 2 8CheckedListBox控件 1 常用屬性 1 Items屬性 項的集合 2 Count屬性 項的數(shù)目 3 CheckOnClick屬性 首次單擊時是否改變狀態(tài) 4 MultiColumn屬性 是否多列顯示 5 CheckedItems屬性 選中項的集合2 常用事件 SelectedIndexChanged事件3 例 checkedListBoxExamlple 刪除選中項 for inti checkedListBox1 CheckedItems Count 1 i 0 i checkedListBox1 Items Remove checkedListBox1 CheckedItems i 2 9ComboBox控件 1 由兩部分組合而成 一個文本框和一個列表框2 常用屬性1 DropDownStyle屬性 Simple DropDown DropDownList2 Items屬性 與ListBox的Item屬性用法相同3 SelectedItem屬性 與ListBox的SelectedItem屬性用法相同4 SelectedIndex屬性 與ListBox的SelectedIndex屬性用法相同5 SelectedValue屬性 只有在數(shù)據(jù)綁定中才用此屬性 第8章再講 3 常用方法1 Add方法 Remove方法 Insert方法2 AddRange方法3 Clear方法4 常用事件 SelectedIndexChanged事件 26 利用ComboxBox控件加載系統(tǒng)所有字體 27 usingSystem Drawing Text privatevoidbutton1 Click objectsender EventArgse InstalledFontCollectionfontCollection newInstalledFontCollection for inti 0 i fontCollection Families Length i comboFont Items Add fontCollection Families i Name 練習題 2 10Timer組件 1 檢查是否到達事先規(guī)定的時間間隔 并在到達時間間隔時觸發(fā)的事件中執(zhí)行需要的功能 2 常用屬性1 Enabled 是否啟用計時 false表示停止計時 true表示開始計時 也可以用Start方法和Stop方法 效果相同 2 Interval 觸發(fā)Tick事件的間隔時間 以毫秒為單位 3 事件Tick 每隔Interval屬性指定的時間都會觸發(fā)此事件 2 10Timer組件 4 舉例顯示循環(huán)向上滾動的動畫字幕 TimerExample 2 11PictureBox控件 1 常用屬性1 Image 獲取或設置顯示的圖像2 SizeMode AutoSize CenterImage Normal StretchImage Zoom3 Parent 僅代碼方式下可用 獲取或設置父級控件2 舉例1 例5 11舉例2 圖片透明疊加 TransparentExample 3菜單與工具欄 3 1MenuStrip控件1 可以在窗體的頂部 底部以及窗體的任何一個位置顯示菜單 2 常用屬性 1 DisplayStyle 菜單項上的顯示樣式 2 Image 指定在該菜單項上顯示的圖標 在C ProgramFiles MicrosoftVisualStudio9 Common7 VS2008ImageLibrary下有一個 zip文件 內有各種動畫文件 圖像文件和圖標文件 例如展開后在目錄 Objects png format WinVista下有打開 保存等圖像 3 ShortcutKeys 快捷鍵 3 常用事件 Click事件 3菜單與工具欄 菜單的幾種形式 Dock Top Dock Bottom 3 2ContextMenuStrip控件 1 用于制作右鍵快捷菜單2 使用該控件的關鍵是將需要顯示快捷菜單的控件的ContextMenuStrip屬性設置為添加的ContextMenuStrip控件對象 書上例子漏了這一步 3 除了是右鍵彈出菜單外 其他用法與MenuStrip相同 3 3ToolStrip與StatusStrip 1 作用為窗體添加工具欄 ToolStrip 或者狀態(tài)欄 StatusStrip 工具欄和狀態(tài)欄一般是由多個按鈕 標簽等排列組成 通過這些項可以快速地執(zhí)行程序提供的一些常用命令或者顯示一些狀態(tài)信息 2 常用屬性和事件與MenuStrip控件基本相同 3 4BackgroundWork和進度條 1 BackgroundWork組件 1 用于后臺執(zhí)行耗時的處理 單獨的線程 避免長時間運行時可能會導致用戶界面似乎處于停止響應狀態(tài) 2 在后臺利用DoWork事件調用耗時的操作 注意 不要在DoWork事件中操作任何界面對象 3 利用ProgressChanged事件通知進度 4 利用RunWorkerCompleted事件處理操作完成時的工作 2 如何啟動后臺操作 1 調用BackgroundWork對象的RunWorkerAsync方法 2 調用時 可以將對象作為參數(shù)傳遞給后臺線程 3 4BackgroundWork和進度條 3 在前臺用StatusStrip中的ToolStripProgressBar顯示后臺正在處理的進度 4 ProgressBar舉例1 在后臺執(zhí)行一個循環(huán) 在界面中顯示進度 如果不用后臺操作 在執(zhí)行循環(huán)中會看到操作控件時會像死機一樣 3 4BackgroundWork和進度條 3 VS2005建議用StatusStrip中的ToolStripProgressBar替換ProgressBar 但是在實際應用中 發(fā)現(xiàn)還是原來的ProgressBar比較好用 4 ProgressBar舉例 用無損壓縮算法壓縮文件 并顯示壓縮進度 只注意進度條是如何實現(xiàn)的即可 4其他Windows窗體控件 4 1ToolTip組件1 用途 鼠標位于某個控件上 顯示該控件功能的提示信息 2 當向窗體中添加一個ToolTip組件后 該窗體中的其他控件 包括窗體本身 屬性 對話框中都將會出現(xiàn)一個新的屬性 ToolTip1上的ToolTip 3 還可以將ToolTip顯示為下圖的形狀 ToolTipExample ToolTip的一種形式 4 2SplitContainer控件 1 功能 1 用于將窗體或者Panel控件分隔為幾部分 2 用于實現(xiàn)一些特殊的窗體效果2 舉例 SplitContainerExample 下圖為設計窗體 變換后的效果見下頁 4 2SplitContainer控件 左邊全部折疊 右邊右部全展開 左邊中間展開 右邊邊緣???左邊中間展開 右邊左部全展開 左邊展開兩個 右邊右部全展開 選項卡控件 使用TabControl類封裝 在這類控件中 通常在上部有一些標簽供選擇 每個標簽對應一個選項卡頁面TabPage 選中一個標簽就會顯示相應的頁面而隱藏其他頁面 通過這個方式 可以把大量的控件放在多個頁面中 通過選項卡標簽迅速切換 一個很常見的例子是Windows系統(tǒng)的 顯示屬性 對話框 選項卡屬性TabPages屬性 這是一個選項卡頁面的集合 可以通過它對選項卡的標簽項進行管理 在屬性窗口中單擊TabPages屬性右邊的按鈕 顯示 TabPage集合編輯器 對話框 通過它來添加刪除選項卡頁面和設置頁面屬性 如圖 要為添加后的特定頁面添加控件 通過選項卡控件的標簽切換到相應頁面 再選中該頁面 然后把控件拖動到頁面中 Alignment屬性 指定選項卡的標簽位于控件的什么位置 是一個TabAlignment枚舉類型 有Top 默認 Bottom Left Right四個值 Appearance屬性 指定標簽的外觀 有三種風格 Buttons FlatButtons Normal 默認 只有當標簽位于頂部時 才可以設置FlatButtons風格 位于其他位置時 將顯示為Buttons MultiLine屬性 指定是否可以顯示多行標簽 默認情況為單行顯示 在標簽超出選項卡可視范圍時自動使用箭頭按鈕來滾動標簽 當把標簽定位于選項卡的左邊或右邊時 MultiLine屬性自動為true 4 3TabControl控件 ItemSize屬性 指定標簽的大小 SizeMode屬性 指定標簽是否自動調整大小來填充標簽行 枚舉類型TabSizeMode定義了三種取值 Normal 根據(jù)每個標簽內容調整標簽的寬度Fixed 所有標簽寬度相同F(xiàn)illToRight 調整標簽寬度 使其填充標簽行 只有在多行標簽的情況下進行調整 TabCount屬性 指定控件中所包含的標簽的數(shù)量 SelectedIndex屬性 當前所選中標簽的索引 若沒有選中項 返回 1 SelectedTab屬性 當前所選中標簽的引用 若沒有選中項 返回null 4 3TabControl控件 管理TabPages屬性的方法可以提供索引訪問tabControl1 TabPages 0 Text 背景 添加TabPage對象 Add或者AddRange方法 刪除TabPage對象 Remove方法 參數(shù)為TabPage引用 或RemoveAt方法 參數(shù)為索引值 清除所有的TabPage對象 Clear方法 SelectedIndexChanged事件改變當前選擇的標簽時觸發(fā)這個事件可以在這個事件的處理中根據(jù)程序狀態(tài)來激活或禁止相應頁面的某些控件 示例程序 4 3TabControl控件 4 3TabControl控件 1 用途當需要有多個選項卡窗口時 可以使用此控件2 舉例 TabControlExample 4 4ListView控件 1 用途按不同方式顯示列表視圖信息2 舉例 列表視圖 用ListView類封裝 與列表框類似都是顯示一些項的列表的控件 但功能更強大 列表視圖中可以使用4中不同方式顯示列表項 大圖標 小圖標 列表和詳細信息模式 可以在應用程序中選擇使用任何一種或是所有的方式 列表視圖屬性View屬性 指定列表視圖的顯示模式 屬性值在枚舉類型View中指定LargeIcon 顯示大圖標 并在圖標的下面顯示標題 SmallIcon 顯示小圖標 并在圖標的右邊顯示標題 List 每項包含一個小圖標和一個標題 并使用列來組織列表項 但每列都沒有表頭 Details 使用報表的形式顯示列表項 每項占一行 最左邊的一列顯示該項的小圖標和標題 其他列顯示該項的子項 這種方式還可以包含一個表頭 顯示每列的標題 可以在運行時通過表頭來改變列的寬度 4 4ListView控件 HeaderStyle屬性 在詳細信息模式下 列表視圖會顯示表頭 使用這個屬性來設置表頭的不同風格 取值由枚舉類型ColumnHeaderStyle設定Clickable 顯示表頭 并且它可以響應單擊事件 Nonclickable 顯示表頭 但它不響應單擊事件 None 不顯示表頭 LargeImageList屬性和SmallImageList屬性在大圖標模式下 顯示LargeImageList中的圖像列表 在其他三個模式下 顯示SmallImageList中的圖像列表 MultiSelect屬性 設置列表視圖是否可以選擇多項 默認為只能選擇一項 Sorting屬性 指定是否對列表項進行排序 Scrollable屬性 指定是否顯示滾動條 4 4ListView控件 為列表視圖添加列表頭和列表項添加列表頭 ColumnHeader類 在屬性窗口中單擊Columns屬性旁帶省略號的按鈕 打開 ColumnHeader集合編輯器 對話框 單擊其中的 添加 按鈕添加一個新的列表頭 并在右邊可以設置它的屬性 Name設置表頭名稱 Text設置表頭標題 Width屬性設置列寬度 TextAlign屬性設置列的對齊方式等等 使用代碼添加的例子listView1 Column Add Drive 100 HorizontalAlignment Left 其中參數(shù)分別表示列名稱 列寬度和列對齊方式 4 4ListView控件 添加列表項 ListItem類 單擊列表視圖屬性窗口中Items屬性旁的按鈕 打開 ListViewItem集合編輯器 對話框 類似添加列表頭的操作添加列表項 其中ImageIndex設置列表項對應的圖像索引 Text設置列表項的標題 在包含多列的情況下 要為列表項添加子項 單擊對話框中SubItems屬性旁的按鈕 打開 ListViewSubItem集合編輯器 對話框 在其中添加子項 其中第一個子項的標題就是列表項的標題 使用代碼添加的例子listView1 Items Add listViewItem1 其中l(wèi)istViewItem1表示一個列表項對象實例 4 4ListView控件 Items屬性 包含列表視圖中的所有項 可以對其使用索引訪問 得到其中的單個項 每個列表項具有SubItems屬性來訪問它的各個子項 比如 listView1 Items 0 SubItems 0 在插入列表項時 列表項本身對應列表視圖的第一列 它的子項對應視圖的其他各列 除了詳細信息模式外 其他的顯示模式都只顯示第一列 SelectedIndices屬性和SelectedItems屬性 獲取當前選擇的項 LabelEdit屬性 設置在運行時是否可以改變列表項的標題 4 4ListView控件 列表視圖的方法BeginUpdate和EndUpdateClearGetItemAt方法 返回指定位置 x y 的列表項 列表視圖的事件ColumnClick事件 單擊列表頭時觸發(fā)這個事件 可以在這個事件的處理過程中編寫代碼對列表視圖進行排序 SelectedIndexChanged事件 對列表視圖中項的選擇發(fā)生改變時觸發(fā)這個事件 4 4ListView控件 神奇的ListView ListView 列表視圖控件 以特定樣式或視圖類型顯示列表項 大小圖標切換 模擬 我的電腦 實現(xiàn)大小圖標切換 需要用到的屬性 存放其他控件使用的圖片 圖像列表ImageList 圖像列表ImageList的屬性 練習1 顯示QQ好友頭像和昵稱 需求說明 設計QQ好友窗體在窗體上顯示好友的頭像和昵稱 能夠切換大頭像和小頭像 完成時間 15分鐘 ListView的詳細信息視圖 列的集合Columns 項的集合Items 列表視圖項ListViewItem 列表視圖項的子項ListViewSubItem 子項的集合SubItems 顯示詳細視圖 模擬 我的電腦 詳細視圖 需要用到的屬性 快捷菜單ContextMenuStrip 通過快捷菜單切換視圖 為控件指定快捷菜單 ContextMenuStrip屬性 練習2 顯示QQ好友詳細信息 需求說明 在上一個練習基礎上完善在窗體上顯示好友的詳細信息 QQ號碼 性別 年齡 通過快捷菜單實現(xiàn)3種視圖的切換 完成時間 15分鐘 動態(tài)添加ListView的數(shù)據(jù) 如何用代碼向ListView中添加數(shù)據(jù) 實現(xiàn)動態(tài)添加 創(chuàng)建ListViewItem對象添加子項 添加到ListView的Items集合中 ListViewItem對象 SubItems Add 每次添加一個子項 一次添加多個子項ListViewItem對象 SubItems AddRange 字符串數(shù)組 ListView對象 Items Add 關鍵代碼分析 1 lvMyComputer View View LargeIcon 設置大圖標關聯(lián)的ImageListlvMyComputer LargeImageList this ilLarge 設置小圖標關聯(lián)的ImageListlvMyComputer SmallImageList this ilSmall 設置ListView的視圖 View屬性 通過View類型獲取視圖種類 設置ListView關聯(lián)的ImageList 關鍵代碼分析 2 創(chuàng)建ListView的項ListViewItemitemC newListViewItem C盤 0 向項中添加子項 方式一 itemC SubItems Add 本地磁盤 itemC SubItems Add 14 2GB itemC SubItems Add 4 54GB 向項中添加子項 方式二 itemC SubItems AddRange newstring 本地磁盤 14 2GB 4 54GB 將項添加到ListView中l(wèi)vMyComputer Items Add itemC ListView的項 添加子項 創(chuàng)建項 添加項和子項 練習3 編碼添加好友信息 需求說明 重新實現(xiàn)上一個練習好友的信息全部通過編碼添加到ListView中通過右鍵菜單實現(xiàn)視圖切換 完成時間 20分鐘 總結 如何獲得ImageList中的某一張圖片 ListView控件詳細信息視圖時 要設置哪些內容 畫出它們的關系通過哪個屬性切換ListView的視圖 4 5TreeView控件 1 用途以樹形方式顯示信息2 舉例 TreeView動態(tài)綁定信息 使用TreeView控件創(chuàng)建樹形菜單 實現(xiàn)單擊子節(jié)點 文本框中顯示相應節(jié)點文本單擊 添加根節(jié)點 在TreeView中添加一個根節(jié)點選中某節(jié)點 單擊 添加子節(jié)點 在選中節(jié)點下添加子節(jié)點 根節(jié)點 子節(jié)點 組成子節(jié)點集合 TreeView的使用2 1 TreeView控件重要屬性和事件 TreeView的使用2 2 節(jié)點對象 TreeNode 的屬性 TreeView的應用 獲取當前選中的節(jié)點this tvMenu SelectedNode返回TreeNode對象為TreeView控件添加根節(jié)點 一級節(jié)點 為某選中節(jié)點添加子節(jié)點 TreeNoderootNode newTreeNode 音樂頻道 this tvMenu Nodes Add rootNode TreeNoderootNode rootNode this tvMenu Nodes Add 音樂頻道 this tvMenu SelectedNode Nodes Add node 添加節(jié)點 展開折疊 展開折疊當前節(jié)點 TreeView的應用 刪除節(jié)點清空節(jié)點 this tvMenu SelectedNode Remove this tvMenu SelectedNode Nodes Clear this tvMenu Nodes Clear 清空TreeView控件中所有節(jié)點 經常用在刷新TreeView顯示前 刪除節(jié)點 選擇節(jié)點 添加圖片 添加AfterCheck事件- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- Windows 窗體 界面設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.hcyjhs8.com/p-7426484.html