1. 程式人生 > >C#學習筆記——控制元件篇

C#學習筆記——控制元件篇

資料庫系統課程設計已經過去好幾天了,兩週的課程設計強度除了強制到場其實強度並不大。起初的任務書原版本是以python語言為基礎在flask框架下完成,不過因為涉及到頻繁的表單操作,而這恰恰也是我還並不太熟練的部分,於是果斷改用了C#。

雖然之前並未嘗試過C#程式設計,但由於之前有一些語言基礎,加之C#窗體程式設計的傻瓜式操作,方便的介面設計,so用了兩天時間熟悉了一下C#窗體控制元件便開始了自己的課程設計。下面記錄一下我所使用的一些基本的C#窗體控制元件:

1.TreeView控制元件

一般用作目錄或選單

<pre name="code" class="csharp" style="font-size: 13.3333339691162px;"><span style="font-family:Microsoft YaHei;font-size:12px;">//初始化樹形選單控制元件
        public void initTree()
        {
            TreeNode node = new TreeNode();
            //設定Treeview上方間距
            myTree.Top = 94;		//myTree為控制元件名
            //新增根節點
            string[] TreeStr = new string[5] { "使用者操作", "前臺服務", "後臺管理", "系統設定" ,"退出系統"};
            for (int i = 0; i <= 4; i++)
            {
                myTree.Nodes.Add(new TreeNode(TreeStr[i]));
                myTree.Nodes[i].ForeColor = Color.Black;
                myTree.Nodes[i].ExpandAll();
            }
            //新增子節點
            myTree.Nodes[0].Nodes.Add("使用者登入");
            myTree.Nodes[0].Nodes.Add("使用者註冊");
            myTree.Nodes[1].Nodes.Add("賓客登記");
            myTree.Nodes[1].Nodes.Add("賓客退房");
            myTree.Nodes[1].Nodes.Add("賓客預約");
            myTree.Nodes[2].Nodes.Add("客戶管理");
            myTree.Nodes[2].Nodes.Add("客房管理");
        }</span>

<span style="font-family:Microsoft YaHei;">//TreeView點選事件
TreeNode node = new TreeNode();
node = myTree.SelectedNode; //node為選中的節點
if(node.Text=="使用者操作")
{
//完成相應操作
}
else if(node.Text=="前臺服務")
{
//完成相應操作
}
else if.......</span>
<span style="font-family:Microsoft YaHei;">//節點游標隨介面跳轉移動
        public void focusNode(string nText)
        {
            myTree.Focus();
            for (int i = 0; i < myTree.Nodes.Count; i++)
            {
                for (int j = 0; j < myTree.Nodes[i].Nodes.Count; j++)
                {
                    if (myTree.Nodes[i].Nodes[j].Text == nText)
                    {
                        myTree.SelectedNode = myTree.Nodes[i].Nodes[j];//第二層節點選中
                    }
                    for (int k = 0; k < myTree.Nodes[i].Nodes[j].Nodes.Count; k++)
                    {
                        if (myTree.Nodes[i].Nodes[j].Nodes[k].Text == nText)
                        {
                            myTree.SelectedNode = myTree.Nodes[i].Nodes[j].Nodes[k];//第三層節點選中
                        }
                    }
                }
            }          
        }</span>


2.Panel控制元件

一般用作其他控制元件的容器,這裡我將其用來實現在同一主頁根據選單展示不同的功能介面

<span style="font-family:Microsoft YaHei;">//切換使用者註冊介面
        public void panel_Reg()
        {
            focusNode("使用者註冊");<span style="white-space:pre">			</span>//TreeView節點游標移動
            RegitForm reg = new RegitForm();<span style="white-space:pre">	</span>//為使用者註冊介面視窗建立一個物件
            reg.Home = this;<span style="white-space:pre">					</span>//使用者註冊類中的Home為主視窗的一個物件,此行程式碼加入後方能生效
            reg.TopLevel = false;
            this.mainPanel.Controls.Clear();		/清除panel控制元件中原有內容,mainPanel為Panel控制元件名
            this.mainPanel.Controls.Add(reg);	//新增使用者註冊視窗到Panel控制元件
            reg.Show();						//展示使用者註冊視窗
        }</span>

3.ListView控制元件

一般用作資料的展示

<span style="font-family:Microsoft YaHei;">//初始化ListView,roomList為控制元件名
        public void initListView()
        {</span>
<span style="font-family:Microsoft YaHei;">//新增表頭
            roomList.Columns.Add("客房號", 110, HorizontalAlignment.Center);<span style="white-space:pre">	</span>
            roomList.Columns.Add("型別", 130, HorizontalAlignment.Center);
            roomList.Columns.Add("價格", 100, HorizontalAlignment.Center);
            roomList.Columns.Add("入住狀態", 100, HorizontalAlignment.Center);
            roomList.Columns.Add("預約狀態", 100, HorizontalAlignment.Center);
            roomList.Columns.Add("預約時間", 110, HorizontalAlignment.Center);
<span style="white-space:pre">	</span>//將資料集DataSet中的資料內容新增到ListView中
            for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
            {
                ListViewItem item = roomList.Items.Add(dataSet.Tables[0].Rows[i][0].ToString());
                for (int j = 1; j < dataSet.Tables[0].Columns.Count; j++)
                {
                    item.SubItems.Add(dataSet.Tables[0].Rows[i][j].ToString());
                }
            }
            dataSet.Dispose();
<span style="white-space:pre">	</span>}</span>

4.ComboBox(下拉列表)控制元件
<span style="font-family:Microsoft YaHei;font-size:12px;">//初始化控制元件,combType為控制元件名
 combType.Items.Add(//內容);

//使用控制元件
combType.Text為選中項</span>

5.DateTimePicker(時間選擇)控制元件
<span style="font-family:Microsoft YaHei;">datePicker.Value.ToString("yyyy-MM-dd");//日期格式</span>

6.TabControl控制元件

比mfc好操作的多,並不需要自己建立子視窗,直接在新建的不同頁中新增自己需要的控制元件即可

<span style="font-family:Microsoft YaHei;">點選TabPages屬性可以新增選項並修改名稱
在不同TabPages中新增自己需要的控制元件即可
<strong>注意:因為所有TabPages都是在同一個類中,故其中的控制元件ID不能重複</strong></span>