Visual Studio2008發布后,迅速吸引了大量的VB.NET愛好者。Visual Studio2008以優化性和強大的功能而著稱,所以一時間同樣也吸引了大量的專業編程人員。經過人們幾個月的試用后,可以發現使用者普遍對這個新版本的Visual Studio感到滿意。當然Visual Studio2008最為突出的特點是快捷而更具有人性化了。如今的Visual Studio2008的控件應用仍然相當重要而且很實用。今天我將要介紹幾個比較常用的控件和它們的相關屬性,通過一個實例讓大家詳細的了解程序的基本開發過程與控件使用技巧。本文適合VB.net初學者和具備一定基礎的VB.net使用者,讀者將在本文學習到GroupBox、 DateTimePicker、ComboBox、Textbox、Label、MonthCalendar、CheckBox等控件的使用,以及對于 Windows窗體設計器的操作和方法的簡單介紹。 打開 Visual Studio 2008。在文件 (File) 菜單上,單擊新建項目 (New Project)。 在新建項目 (New Project) 對話框的模板 (Templates) 窗格中,單擊 Windows 應用程序(Windows Application)。單擊確定 (OK)。 在Form1窗體靠右側中添加GroupBox1,GroupBox2控件(注意:GroupBox2創建在GroupBox1上)。其中GroupBox1的Text為: 時間日期,GroupBox2的Text為:選項。如圖1所示

完成后,我們需要在GroupBox1中添加DateTimePicker1控件。 DateTimePicker控件詳細屬性解釋: DateTimePicker控件屬性: CalendarFont 獲取或設置應用于日歷的字體樣式。 CalendarForeColor 獲取或設置日歷的前景色。 CalendarmonthBackground 獲取或設置歷月的背景色。 CalendarTitleBackColor 獲取或設置日歷標題的背景色。 CalendarTitleForeColor 獲取或設置日歷標題的前景色。 CalendarTrailingForeColor 獲取或設置日歷結尾日期的前景色。 CanFocus 獲取一個值,該值指示控件是否可以接收焦點。 (從 Control 繼承。) CanSelect 獲取一個值,該值指示是否可以選中控件。 (從 Control 繼承。) Capture 獲取或設置一個值,該值指示控件是否已捕獲鼠標。 (從 Control 繼承。) CausesValidation 獲取或設置一個值,該值指示控件是否會引起在任何需要在接收焦點時執行驗證的控件上執行驗證。 (從 Control 繼承。) Checked 獲取或設置一個值,該值指示是否已用有效日期/時間值設置了 Value 屬性且顯示的值可以更新。 CheckForIllegalCrossThreadCalls 獲取或設置一個值,該值指示是否捕獲對錯誤線程的調用,這些調用訪問控件的 Handle 屬性。 (從 Control 繼承。) ClientRectangle 獲取表示控件的工作區的矩形。 (從 Control 繼承。) ClientSize 獲取或設置控件的工作區的高度和寬度。 (從 Control 繼承。) CompanyName 獲取包含控件的應用程序的公司名稱或創建者。 (從 Control 繼承。) Container 獲取 IContainer,它包含 Component。 (從 Component 繼承。) ContainsFocus 獲取一個值,該值指示控件或它的一個子控件當前是否有輸入焦點。(從 Control 繼承。) ContextMenu 獲取或設置與控件關聯的快捷菜單。 (從 Control 繼承。) ContextMenuStrip 獲取或設置與此控件關聯的 ContextMenuStrip。 (從 Control 繼承。) Controls 獲取包含在控件內的控件的集合。 (從 Control 繼承。) Created 獲取一個值,該值指示控件是否已經創建。 (從 Control 繼承。) Cursor 獲取或設置當鼠標指針位于控件上時顯示的光標。 (從 Control 繼承。) CustomFormat 獲取或設置自定義日期/時間格式字符串。 DataBindings 為該控件獲取數據綁定。 (從 Control 繼承。) DefaultBackColor 獲取控件的默認背景色。 (從 Control 繼承。) DefaultFont 獲取控件的默認字體。 (從 Control 繼承。) DefaultForeColor 獲取控件的默認前景色。 (從 Control 繼承。) 在GroupBox2中添加3個Label控件. 屬性Text分別設置如下: Label1 Text:Time Label2 Text:日期風格 Label3 Text:日期格式 設置完成后,效果如圖2

設置后,我們還需要在GroupBox2中添加2個ComboBox1與ComboBox2控件,
以及一Textbox1控件。如圖3

Form1窗體中右側界面工作完成了。接著我們需要完成Form1左側界面了(也是我們最重要的顯示日期日歷的界面)
在Form1窗體左側添加MonthCalendar1控件,效果如圖4

MonthCalendar1的控件的詳細屬性: MonthCalendar1屬性: Margin 獲取或設置控件之間的空間。 (從 Control 繼承。) MaxDate 獲取或設置允許的最大日期。 MaximumSize 獲取或設置大小,該大小是 GetPreferredSize 可以指定的上限。 (從Control 繼承。) MaxSelectionCount 獲取或設置月歷控件中可選擇的最大天數。 MinDate 獲取或設置允許的最小日期。 MinimumSize 獲取或設置大小,該大小是 GetPreferredSize 可以指定的下限。 (從Control 繼承。) ModifierKeys 獲取一個值,該值指示哪一個修改鍵(Shift、Ctrl 和 Alt)處于按下的狀態。 (從 Control 繼承。) MonthlyBoldedDates 獲取或設置 DateTime 對象的數組,確定每月要用粗體顯示的日期。 MouseButtons 獲取一個值,該值指示哪一個鼠標按鈕處于按下的狀態。 (從Control 繼承。) MousePosition 獲取鼠標光標的位置(以屏幕坐標表示)。 (從 Control 繼承。) Name 獲取或設置控件的名稱。 (從 Control 繼承。) Padding 獲取或設置 MonthCalendar 控件的邊緣與該控件的內容之間的空間。 Parent 獲取或設置控件的父容器。 (從 Control 繼承。) PreferredSize 獲取可以容納控件的矩形區域的大小。
(從 Control 繼承。) ProductName 獲取包含控件的程序集的產品名稱。 (從 Control 繼承。) ProductVersion 獲取包含控件的程序集的版本。 (從 Control 繼承。) RecreatingHandle 獲取一個值,該值指示控件當前是否在重新創建其句柄。 (從Control 繼承。) Region 獲取或設置與控件關聯的窗口區域。 (從 Control 繼承。) Right 獲取控件右邊緣與其容器的工作區左邊緣之間的距離(以像素為單位)。 (從Control 繼承。) RightToLeft 獲取或設置一個值,該值指示是否將控件的元素對齊以支持使用從右向左的字體的區域設置。 (從 Control 繼承。) RightToLeftLayout 獲取或設置一個值,該值指示控件是否從右到左布局。 ScrollChange 獲取或設置月歷控件的滾動率。 SelectionEnd 獲取或設置選定日期范圍的結束日期。 SelectionRange 為月歷控件獲取或設置選定的日期范圍。 SelectionStart 獲取或設置所選日期范圍的開始日期。 ShowToday 獲取或設置一個值,該值指示控件底端是否顯示 TodayDate 屬性表示的日期。 ShowTodayCircle 獲取或設置一個值,它指示是否用圓形或用正方形標識當天日期。 ShowWeekNumbers 獲取或設置一個值,該值指示月歷控件是否在每行日期的左側顯示周數 (1-52)。 SingleMonthSize 獲取顯示一個日歷月所需的最小大小。 Site 獲取或設置控件的站點。 (從 Control 繼承。) Size 獲取或設置 MonthCalendar 控件的大小。 TabIndex 獲取或設置在控件的容器的控件的 Tab 鍵順序。 (從 Control 繼承。) TabStop 獲取或設置一個值,該值指示用戶能否使用 Tab 鍵將焦點放到該控件上。(從 Control 繼承。) Tag 獲取或設置包含有關控件的數據的對象。 (從 Control 繼承。) Text 已重寫。 獲取或設置要在 MonthCalendar 上顯示的文本。 TitleBackColor 獲取或設置指示日歷標題區的背景色的值。 TitleForeColor 獲取或設置指示日歷標題區的前景色的值。 TodayDate 獲取或設置由 MonthCalendar 用作今天的日期的值。 TodayDateSet 獲取指示是否已顯式設置 TodayDate 屬性的值。 Top 獲取或設置控件上邊緣與其容器的工作區上邊緣之間的距離(以像素為單位)。(從 Control 繼承。) TopLevelControl 獲取沒有另一個 Windows 窗體控件作為其父級的父控件。通常,這是控件所在的最外面的 Form。 (從 Control 繼承。) TrailingForeColor 獲取或設置一個值,該值指示控件中沒有完全顯示的月中日期的顏色。 UseWaitCursor 獲取或設置一個值,該值指示是否將等待光標用于當前控件以及所有子控件。 在Form1中左側添加一個CheckBox1控件Text屬性設置為:展示今天的日期。再在CheckBox1控件下部添加一個Button控件Text屬性設置為:Exit
最終效果如圖5

基本上我們的界面工作完成了。接下來我們該輸入代碼了,詳細過程如下: 雙擊Form1窗體進入Form1_Load事件中 代碼如下: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ComboBox1.Items.Add("long") Me.ComboBox1.Items.Add("short") Me.ComboBox1.Items.Add("timedate") Me.ComboBox1.Items.Add("custom1") Me.ComboBox1.Items.Add("custom2") Me.ComboBox1.Items.Add("custom3") Me.ComboBox1.Items.Add("custom4") '添加日期顯示格式 Me.ComboBox2.Items.Add("下拉菜單式") Me.ComboBox2.Items.Add("點擊/選擇式") '添加起始星期 Me.ComboBox1.SelectedIndex = 0 Me.ComboBox2.SelectedIndex = 0 Me.TextBox1.Text = TimeOfDay End Sub 進入ComboBox1_SelectedIndexChanged事件中 代碼如下: Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Select Case Me.ComboBox1.SelectedIndex Case 0 Me.DateTimePicker1.Format = DateTimePickerFormat.Long Case 1 Me.DateTimePicker1.Format = DateTimePickerFormat.Short Case 2 Me.DateTimePicker1.Format = DateTimePickerFormat.Time Case 3 Me.DateTimePicker1.Format = DateTimePickerFormat.Custom 'd表示一位
或兩位的天數 Me.DateTimePicker1.CustomFormat = "MMM dd,yyy - ddd" 'dd表示兩位數的天數, Case 4 Me.DateTimePicker1.Format = DateTimePickerFormat.Custom Me.DateTimePicker1.CustomFormat = "ddd,hh:mm:ss,tt" '星期幾名稱 Case 5 Me.DateTimePicker1.Format = DateTimePickerFormat.Custom Me.DateTimePicker1.CustomFormat = "dddd,HH:mm:ss,tt" Case 6 Me.DateTimePicker1.Format = DateTimePickerFormat.Custom Me.DateTimePicker1.CustomFormat = "dddd,HH:m:ss,t" End Select Me.TextBox1.Text = TimeOfDay End Sub 進入ComboBox2_SelectedIndexChanged事件中 代碼如下: Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Select Case Me.ComboBox2.SelectedIndex Case 0 Me.DateTimePicker1.ShowUpDown = False Case 1 Me.DateTimePicker1.ShowUpDown = True End Select Me.TextBox1.Text = TimeOfDay End Sub 進入CheckBox1_CheckStateChanged事件中 代碼如下: Private Sub CheckBox1_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckStateChanged If Me.CheckBox1.Checked Then Me.MonthCalendar1.ShowToday = True '顯示今天日期 Else Me.MonthCalendar1.ShowToday = False End If End Sub 進入Button1_Click事件中 代碼如下: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End End Sub 好了代碼輸入完畢。在這里補充說明:如果我們平時編寫程序時輸入完代碼以后,
在代碼視圖中出現了Windows窗體設計器,有很多初學者不知道是什么。實際上Windows窗體設計器里面是系統自動生成代碼,這里面的代碼更加詳細。有興趣的朋友可看一看。具體打開Windows窗體設計器步驟如下,因為在平時Windows窗體設計器是隱藏的。 詳細的操作過程如下: 1. 先選擇<解決方案資源管理器>在上面有我們可以看到一些小圖標,選中第2個圖標(顯示所有文件)如圖6

這個時候我們可以看到之前所沒有顯示的文件了,單擊Form1.vb的節點,
看到了嗎?就是這個文件Form1.Designer.vb 雙擊打開它可以看到如圖8所示的代碼視圖,這就是Windows窗體設計器了

好了,我們的所有要做的工作已經完成了,最后我們來測試一下程序吧,最終程序界面如下

在這個程序中,我們可以任意的選擇多個復選框來選擇一些樣式。當然我們還可以增加更多的功能打造一個個性化的電子日歷程序。
|