创建可按比例调整的布局的 Windows 窗体
?
?
能夠正確調整大小的窗體可以提高您的用戶界面的易用性。
此演練演示了如何創建當用戶調整窗體大小時按比例調整的布局。?您將使用?TableLayoutPanel?控件實現一個接收聯系人信息的數據輸入窗體。
本演練涉及以下任務:
-
創建項目
-
創建布局面板
-
設置布局網格
-
創建“姓名”字段
-
創建“地址”字段
-
創建“電話號碼”字段
-
創建“備注”字段
完成這些操作后,窗體應如下所示:
若要復制此主題中的完整代碼列表,請參見如何:創建用于數據輸入的大小可調的 Windows 窗體。
| 顯示的對話框和菜單命令可能會與“幫助”中的描述不同,具體取決于您現用的設置或版本。?若要更改設置,請在“工具”菜單上選擇“導入和導出設置”。?有關更多信息,請參見?使用設置。 |
若要完成本演練,您需要:
-
足夠的權限,以便能夠在安裝 Visual Studio 的計算機上創建和運行 Windows 窗體應用程序項目。
第一步是創建應用程序項目。?使用此項目生成顯示數據輸入窗體的應用程序。
創建項目
-
創建名為 DemoDataEntryLayout 的 Windows 應用程序項目。?有關更多信息,請參見如何:創建新的 Windows 窗體應用程序項目。
下一步是創建包含可調整大小的布局的布局面板。
創建布局面板
在“窗體設計器”中選擇窗體。
從“工具箱”中將一個?TableLayoutPanel?控件拖到窗體上。
在“屬性”窗口中,將?TableLayoutPanel?控件的?Dock?屬性的值更改為?Fill。
將?ColumnCount?屬性的值更改為 4,并將?RowCount?屬性的值更改為 6。
下一步是指定布局網格。?設置?ColumnStyles?和?RowStyles?集合中的屬性以確定當窗體的尺寸改變時列和行如何調整大小。
設置布局網格
單擊?TableLayoutPanel?控件的智能標記符號 () 并選擇“編輯行和列”以打開“列和行樣式”對話框。?有關更多信息,請參見?如何:在 TableLayoutPanel 控件中編輯行和列。
從“顯示”下拉框中選擇“列”。
選擇第一列并將其?SizeType?屬性的值更改為?Percent。?將“百分比”NumericUpDown?控件的值設置為 25。?此列將容納?Label?控件。
選擇第二列。?將其?SizeType?屬性的值更改為?Percent。?將“百分比”NumericUpDown?控件的值設置為 50。?此列將容納數據輸入字段的?TextBox?控件。
選擇第三列。?將其?SizeType?屬性的值更改為?Percent。?將“百分比”NumericUpDown?控件的值設置為 25。?此列將容納?Label?控件。
選擇第四列。?將其?SizeType?屬性的值更改為?Percent。?將“百分比”NumericUpDown?控件的值設置為 50。?此列將容納數據輸入字段的?TextBox?控件。
從“顯示”下拉框中選擇“行”。
對于前面五行,將?SizeType?屬性的值設置為?Absolute,并將“絕對”NumericUpDown?控件的值設置為 28。?對于第六行,將?SizeType?屬性的值設置為?Percent,并將“百分比”NumericUpDown?控件的值設置為 80。
單擊“確定”接受更改。
現在可以使用控件填充布局了。?此數據輸入窗體是用于聯系人信息的,所以它有“名”字段、“姓”字段、“地址”字段、“電話號碼”字段和“備注”字段。?下面的列表顯示了創建這些控件的順序:
“姓名”字段
“地址”字段
“電話號碼”字段
“備注”字段
姓名輸入字段置于?TableLayoutPanel?控件的第一行。?它們由?Label?控件和?TextBox?控件(用于輸入名)以及?Label?控件和?TextBox?控件(用于輸入姓)組成。
創建“姓名”字段
將一個?Label?控件從“工具箱”拖到?TableLayoutPanel?控件中的第一個單元格中。
在“屬性”窗口中,將?Label?控件的?Anchor?屬性的值設置為?Right。
將?AutoSize?屬性的值設置為?true。
將?Text?屬性的值設置為“名”。
將一個?TextBox?控件從“工具箱”拖到第一行的第二單元格中,位于?Label?控件旁邊。
將?TextBox?控件的?Anchor?屬性的值設置為?Left、Right。
將一個?Label?控件從“工具箱”拖到第一行的第三個單元格中。?將?Label?控件的?Anchor?屬性的值設置為?Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“姓”。
將一個?TextBox?控件從“工具箱”拖到第一行的第四個單元格中。?將?TextBox?控件的?Anchor?屬性的值設置為?Left、Right。
“地址”字段占用第二、三、四行。?因為街道地址可能很長,所以?Address1?和?Address2?字段跨三列。
創建“地址”字段
將一個?Label?控件從“工具箱”拖到第二行的第一個單元格中。
在“屬性”窗口中,將?Label?控件的?Anchor?屬性的值設置為?Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“地址 1”。
將一個?TextBox?控件從“工具箱”拖到第二行的第二單元格中,位于?Label?控件旁邊。
將?TextBox?控件的?Anchor?屬性的值設置為?Left、Right。
將“ColumnSpan”屬性的值設置為 3。?此屬性由?TableLayoutPanel?控件提供。?有關所提供的屬性的更多信息,請參見擴展程序提供程序概述。
對第三行重復步驟 1 到 5。?將?Label?控件的?Text?屬性的值設置為“地址 2”。
將一個?Label?控件從“工具箱”拖到第四行的第一個單元格中。
將?Label?控件的?Anchor?屬性的值設置為?Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“城市”。
將一個?TextBox?控件從“工具箱”拖到第四行的第二單元格中,位于?Label?控件旁邊。
將?TextBox?控件的?Anchor?屬性的值設置為?Left、Right。
將一個?Label?控件從“工具箱”拖到第四行的第三個單元格中。
將?Label?控件的?Anchor?屬性的值設置為?Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“州/省”。
將一個?ComboBox?控件從“工具箱”拖到第四行的第四個單元格中。
將?ComboBox?控件的?Anchor?屬性的值設置為?Left。?將?FormattingEnabled?屬性的值設置為?true。
“電話號碼”字段占用第五行。?若要確保用戶僅輸入有效電話號碼,請使用?MaskedTextBox?控件來實現。
創建“電話號碼”字段
將一個?Label?控件從“工具箱”拖到第五行的第一個單元格中。
在“屬性”窗口中,將?Label?控件的?Anchor?屬性的值設置為?Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“工作電話”。
將一個?MaskedTextBox?控件從“工具箱”拖到第五行的第二個單元格中。
將?MaskedTextBox?控件的?Anchor?屬性的值設置為?Left。
單擊?MaskedTextBox?控件上的智能標記 () 以打開?Mask?編輯器。
在“輸入掩碼”對話框中選擇“電話號碼”掩碼。?單擊“確定”。
對“家庭電話號碼”字段重復步驟 1 到 5。?將?Text?屬性的值設置為“家庭電話”。
最后一個字段占用第六行。?它用于輸入備注并且允許任意形式的文本輸入。
創建“備注”字段
將一個?Label?控件從“工具箱”拖到第六行的第一個單元格中。
在“屬性”窗口中,將?Label?控件的?Anchor?屬性的值設置為?Top、Right。?將?AutoSize?屬性的值設置為?true。?將?Text?屬性的值設置為“備注”。
將一個?RichTextBox?控件從“工具箱”拖到第六行的第二個單元格中。
將“ColumnSpan”屬性的值設置為 3。
將?RichTextBox?控件的?Dock?屬性的值設置為?Fill。
最后一步是完成布局網格設置。?第一列和第三列應設置為?AutoSize。?由于已在這些列中放置了控件,因此在設計時這些列可見。
設置布局網格
選擇?TableLayoutPanel?控件并單擊其智能標記標志符號 ()。?選擇“編輯行和列”打開“列和行樣式”對話框。?有關更多信息,請參見?如何:在 TableLayoutPanel 控件中編輯行和列。
從“顯示”下拉框中選擇“列”。
選擇第一列和第三列并將?SizeType?屬性的值更改為?AutoSize。
單擊“確定”接受更改。
至此,可以運行應用程序以檢查窗體的動態布局。
檢查窗體的布局
-
生成并運行該項目。?當窗體出現時,增大和縮小該窗體。
| 控件將按比例調整大小以填充可用空間。 |
注意,您可以創建實現動態布局的窗體,使窗體適于本地化。?有關更多信息,請參見演練:創建可根據本地化需要調整比例的布局。
轉載于:https://www.cnblogs.com/txw1958/archive/2012/07/30/2615656.html
總結
以上是生活随笔為你收集整理的创建可按比例调整的布局的 Windows 窗体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Phone开发(13):
- 下一篇: WPF 重要新概念读书笔记(转)