国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

增強的Windows窗體為.Net程序豐富用戶界面

2019-11-18 12:03:02
字體:
來源:轉載
供稿:網友

  微軟的 .net 框架 1.0 版確實很好地滿足了我們的要求。.NET在以下兩方面有重要的意義,它不僅根本性地改變了開發者構建與發布 Windows 應用程序的方法,而且還創建了一個巨大的具有很好伸縮特性的技術平臺,Visual Studio2005 就是一個很好的例子,它在用戶的可定制性和改進的功能性方面都表現的很好。這些變化影響的范圍主要集中在 Microsoft .NET框架中的 Windows 窗體子集,從核心的 System.Windows.Forms 命名空間擴展到多種多樣的支持性技術,既有舊的也有新的,包括ADO.NET,ObjectSpaces 以及 ClickOnce 部署。
  在 Visual Studio 2005 的各個方面都能發現生產效率的提高,包括增強的集成開發環境,改進的控件和數據設計器,還有代碼生成器。由于不必手工編寫各種各樣預定格式的代碼,代碼編寫狂們可能會感到沮喪,而我們就可以有更多的時間來享受我們的生活了。
  
  System.Windows.Forms
  一些重要的工作已經在 System.Windows.Forms 中做好了,激動人心的新技術中便包含了 Windows 窗體。就在我寫本文的同時,可用的命名空間數量和公用類型與成員的組成分別增加了67% 和 127%,這無疑標志著 Visual Studio 2005 是一個卓越的產品。當然本文中我們沒有足夠的篇幅來講述每一件事, Figure 1 向我們展示了主要改進方面的概覽,這些新增與加強的改進覆蓋面較廣,例如更好的主題支持,改進的數據綁定,以及 GridView 控件。
  
  增強的Windows窗體為.Net程序豐富用戶界面(圖一)

  
Figure 1 新的 Windows 窗體特性

  
  Windows 主題支持
  當像以往一樣創建一個新的Windows窗體工程后,你會發現一個新的變化:默認的Windows主題支持。一個Windows主題就是一組個性化的用戶設定,它展示了Windows用戶界面的外觀。你可以通過在桌面上單擊鼠標右鍵并在彈出的“顯示屬性對話框”中選擇“屬性”“主題”屬性頁來指定桌面主題。
  因為Windows主題是由用戶指定的,所以Windows窗體承擔了表現它的責任。雖然現有版本的.NET框架支持Windows主題,但是1.0版本需要開發者在文件系統的指定位置添加一個擁有非凡名字的文件來實現。而1.1版通過提供application.EnableVisualStyles方法并將每個控件的FlatStyle屬性值設為"System"來支持Windows主題,從而簡化了1.0版的實現過程。 Visual Studio 2005 將會進一步改進此過程,在建立新的Windows窗體工程時默認調用EnableVisualStyles 方法使窗體默認支持Windows主題:
  
  public class Form1 : System.Windows.Forms.Form {
  ...
  [STAThread]
  static void Main() {
  Application.EnableVisualStyles();
  Application.Run(new Form1());
  }
  ...
  }
  在以前,將控件的FlatStyle屬性值設為"System"就意味著操作系統決定了控件顯示時的外觀。現在,當FlatStyle屬性設置為默認值"Standard"時, Visual Studio 2005的大部分控件都會依據當前正在使用的Windows主題來呈現自己。這與先通過系統設定然后保存你在設計器中的設定結果基本上是一樣的。無論FlatStyle 屬性為"Standard"還是"System",窗體在運行時會依據主題的改變動態地作出反應,卻不需要編寫一行代碼,這種關于主題的靈敏性對開發者是有利的。
  
  控制布局與配置
  支持 Windows 主題只需要創建一個工程或窗體,并放入需要的控件。然而,對窗體上的控件進行布局,并對其進行配置是件耗時的工作,尤其是那些復雜的窗體。為了簡便,Windows窗體設計器加入了一些新特性,目的就是減少這些瑣碎事情所消耗的設計時間。這些特性包括吸附對齊、編輯屬性模式以及智能標記,這些特性使操作控件更加輕易。你仍然可以使用Visual Studio的布局工具條來水平或垂直對齊控件,你只需對窗體上的那些控件操縱一次。除此之外,你可以使用吸附對齊來達到與拖拽控件一樣的效果,同時避免了在使用布局工具條時選擇控件和工具條按鈕所帶來的設計時間的浪費。吸附式對齊表現為一條或多條有粘性的藍色線條,控件在這些線條的導引下與鄰近的控件對齊。
  
  增強的Windows窗體為.Net程序豐富用戶界面(圖二)

  
Figure 2 編輯屬性

  
  另一個新特性, 編輯屬性模式, 答應你用Tab鍵遍歷控件并在頁面上直接改變它們的屬性。首先在Windows窗體設計器的上下文菜單中點擊選擇與其同名的菜單項使編輯屬性模式被激活。下一步就是遍歷控件并按照你的要求修改屬性。過程如Figure 2所示。編輯完成后,點擊“返回布局模式”回到正常的編輯模式。設置屬性是一個改變控件的簡便方法。用另外一個更合適的控件來完全替換當前控件可不輕易,你需要刪除這個控件,然后將一個新控件拖入窗體并重新配置它。應付像這樣復雜的多步設計任務,智能標記正好派上用場,它將設計時的多步任務合并為一步,并在相關控件四周顯示菜單項圖標作為其標記,智能標記也可以處理簡單的設計時任務,這經常會發生,例如在將一個文本框拖放入一個窗體時改變它的"Text"屬性。
  
  控件與數據綁定
  集成開發環境的另一項改進是Visual Studio 2005中的Windows窗體提供了新的控件,并改進了廣受歡迎的舊控件例如文本框和復合列表框。Figure 3顯示了一個用新增控件和使用中的改進控件創建的小型瀏覽器,創建他們所需要的代碼比在Windows窗體的上個版本中要少。
  
  增強的Windows窗體為.Net程序豐富用戶界面(圖三)

  
Figure 3 使用新控件的Web瀏覽器

  
  這個簡單的例子展示了怎樣用Visual Studio 2005中增強的工具箱創建豐富的程序,同時減少了代碼的編寫。例如,設計這個功能齊全的小型瀏覽器僅僅花了大約10分鐘,并且只編寫了85行代碼來實現傳統的全部網頁瀏覽事件,它還實現了URL訪問歷史記錄功能。網頁導航和Html呈現的實際工作是由右側塊形容器中的WebBrowser控件完成的。分割條和左右塊形容器都是由一個SplitContainer控件提供的。
  Figure 3 中顯示的復合列表框展示了新型的自動完成支持功能。自動完成功能通過3個屬性來實現,首先是AutoCompleteMode,它可以讓你選擇樣式枚舉值來設置自動完成樣式:
  enum AutoCompleteMode {
  None = 0x0,    // No autocompletion
  AutoSuggest = 0x1, // Possible matches chosen from drop-down list
  AutoAppend = 0x2, // Possible matches
  // appended to text
  // while typing
  AutoSuggestAppend = 0x3 // AutoSuggest and
  // AutoAppend combined
  }
  除了選擇"None",其他選項都需要你設置AutoCompleteSource屬性,其值為系統預先設定好的AutoCompleteSource枚舉值 :
  
  enum AutoCompleteSource {
  FileSystem = 0x1,    // File system
  HistoryList = 0x2,   // All URLs from History list
  RecentlyUsedList = 0x4, // All URLs from Recently Used list
  AllURL = 0x6,      // HistoryList + RecentlyUsedList
  AllSystemSources = 0x7, // FileSystem + AllURL
  CustomSource = 0x40,  // AutoCompleteCustomSource
  None = 0x80       // No source
  }
  
  設定自定義源的復合列表框需要我們提供自動完成選項,這些選項可以來自存儲在AutoCompleteCustomSource屬性中的元素的集合。目前,復合列表框和文本框是僅有的提供自動完成功能的控件。
  
  GridView
  工具箱中的大多數控件都支持數據綁定,通過底層的數據綁定構件來綁定各種各樣的數據源。在目前許多情形下,尤其是原型和快速開發中,數據綁定都是要害。Windows窗體開發小組用改進的類型化數據集明顯地加強了數據綁定命名空間,包括GridView和DataContainer,并為快速開發加強了設計時支持。這些特性讓你開發分區域樣式的用戶界面或表格樣式的用戶界面時感到一樣的輕松。
  有時表格樣式的用戶界面更適合展現綁定的數據,并且另一方面,微軟在其前一個版本的.NET框架中包含了DataGrid控件。對于Visual Studio 2005來說,Windows窗體開發小組響應了社區中關于DataGrid的反饋并決定構造一個新的表格控件,System.Windows.Forms.GridView (參見 Figure 4)。
  
  增強的Windows窗體為.Net程序豐富用戶界面(圖四)

  
Figure 4 GridView 列

  
  也許DataGrid與GridView(表格視圖)最明顯的區別就是GridView的對象模型,它已經被抽象為一個基于列、行的自然表格結構,答應開發者通過大量直觀的定位函數來操縱每一個單元格,包括以下幾點:
  
  通過樣式、格式、布局和選擇項支持豐富的自定義用戶界面
  與DataGrid相比具有顯示更多種類數據的能力,新增了一組更加豐富類型,包括圖像。諸如凍結列(與Excel中的相似)這樣的出色特性和運行時列的重新排序(與Outlook中的相似)。
  構成它的子控件在導航、編輯、驗證、自繪和錯誤處理等方面擁有有超過100個事件
  結合過去廣泛的設計經驗,這些新特性使我們可以快速自定義控件而不用寫很多代碼,其實是將對DataGrid的特定編碼塞進了GridView的方法、屬性和事件中。其中的一個例子就是在DataGrid中通過單擊單元格來選擇一行, 而現在以GridView的SelectionMode 屬性的方式暴露出來。當然沒有一個控件是十全十美的,當它們表現出不足時,開發者應該依靠其擴展特性來組合出具有自定義特性的控件。GridView控件的底層實現都是基于多種單元格、行和列的,你可以繼續并進行擴展。總的來說,GridView作為表格樣式的控件比DataGrid更加引人注目。
  <

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 靖州| 禄劝| 兴业县| 个旧市| 密山市| 兰州市| 苍梧县| 常德市| 米脂县| 集贤县| 平邑县| 喀喇沁旗| 托克逊县| 金昌市| 达孜县| 垫江县| 清流县| 都安| 天柱县| 沽源县| 句容市| 元阳县| 安康市| 工布江达县| 静海县| 广宗县| 怀来县| 建水县| 平顶山市| 郁南县| 新龙县| 金川县| 赣州市| 黔西| 元江| 栾城县| 民丰县| 亚东县| 双牌县| 潜山县|