【開源EFW框架】框架中自定義控件GridBoxCard使用實例說明

回《【開源】EFW框架系列文章索引》       html

EFW框架源代碼下載V1.3:http://pan.baidu.com/s/1c0dADO0
前端

EFW框架實例源代碼下載:http://pan.baidu.com/s/1eQCc69G架構

 

       在《二十5、EFW框架Winform前端開發之自定義控件》中列出了EFW框架中的強大自定義控件及每一個控件的API說明,可是對如何使用這些控件還不是很明白,本章經過實例的方式詳細說明GridBoxCard控件的使用方法;框架

本文要點:工具

1.實例功能說明this

2.控件屬性設置編碼

3.編寫後臺代碼spa

1.實例功能說明

效果圖:設計

 

製做一個書單在網格中,點擊「新增」按鈕網格新增空白行,焦點定位在書籍名稱列,並彈出下拉書籍目錄,能夠經過拼音五筆碼過濾書籍,回車選定書籍添加到網格中,再選擇下一本書籍,如此在網格中生成了一個自定義的書單。code

 

2.控件屬性設置

1)將工具欄中的GridBoxCard控件拖入窗體,並設置好網格的列;其中ReadOnly屬性爲false,打開Columns屬性中「書籍名稱」列的ReadOnly設置爲false,其餘的幾列都設置爲true;

2)設置GridBoxCard控件的一些自定義屬性,特別是SelectionCards屬性,點擊添加一個成員,若是有多列須要綁定下拉網格,那麼這裏就要添加多個成員,此處只須要將「書籍名稱「這列 綁定下拉網格;

3)須要設置DataGridViewSelectionCard成員的屬性,其中BindColumnIndex爲列索引,」書籍名稱「此列的索引是1,因此此處設置爲1。其中CardColumn屬性指定下拉網格顯示的列」code|編碼|50,name|名稱|auto「表示顯示兩列」編碼「和」名稱「。其中QueryFieldsString屬性指定過濾網格數據的列名」name,pym,wbm「表示能夠經過名稱、拼音碼、五筆碼三個字段進行過濾書籍;

 

3.編寫後臺代碼

1)構建數據源「書籍字典」

 //數據源
        private DataTable GetData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("code");
            dt.Columns.Add("name");
            dt.Columns.Add("pym");
            dt.Columns.Add("wbm");
            dt.Columns.Add("price");
            dt.Columns.Add("buydate");

            dt.Rows.Add("01", "人月神話", "rysh", "rysh", "12.00", "2014-02-21");
            dt.Rows.Add("02", "浪潮之巔", "lczd", "lczd", "12.00", "2014-03-11");
            dt.Rows.Add("03", "人件", "rj", "rj", "12.00", "2014-08-01");
            dt.Rows.Add("04", "面向對象設計", "mxdxsj", "mxdxsj", "12.00", "2014-12-01");
            dt.Rows.Add("05", "架構之美", "jgzm", "jzzm", "12.00", "2014-12-21");
            dt.Rows.Add("06", "設計本來", "sjyb", "sjyb", "12.00", "2014-05-21");
            dt.Rows.Add("07", "敏捷項目管理", "mjxmgl", "mjxmgl", "12.00", "2014-01-11");
            dt.Rows.Add("08", "代碼之美", "dmzm", "dmzm", "12.00", "2014-04-21");
            dt.Rows.Add("09", "大道至簡", "dzzj", "ddzj", "12.00", "2014-01-01");
            dt.Rows.Add("10", "走出軟件做坊", "zcrjzh", "zcfjzh", "22.00", "2014-02-11");

            return dt;
        }

2)控件綁定數據源,分別給控件的DataSource和控件列的下拉網格綁定數據源

private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dtsource = GetData().Clone();
            //綁定數據源
            gridBoxCard1.DataSource = dtsource;
            //綁定下拉網格數據源
            gridBoxCard1.BindSelectionCardDataSource(0, GetData().Copy());
        }

3)點擊「新增」開始編輯網格數據

//新增
        private void button1_Click(object sender, EventArgs e)
        {
            gridBoxCard1.AddRow();
        }

4)選定下拉網格數據賦值給網格控件

//選定下拉網格行,數據賦值
        private void gridBoxCard1_SelectCardRowSelected(object SelectedValue, ref bool stop, ref int customNextColumnIndex)
        {
            DataTable dt = (DataTable)this.gridBoxCard1.DataSource;
            int rowindex = gridBoxCard1.CurrentCell.RowIndex;
            dt.Rows[rowindex]["code"] = ((DataRow)SelectedValue)["code"];
            dt.Rows[rowindex]["name"] = ((DataRow)SelectedValue)["name"];
            dt.Rows[rowindex]["price"] = ((DataRow)SelectedValue)["price"];
            dt.Rows[rowindex]["buydate"] = ((DataRow)SelectedValue)["buydate"];
        }

 

      總結:此控件適合於直接在網格中編輯數據的功能,下拉網格數據來源字典數據,這樣用戶操做起來很是直觀;控件簡化了對網格操做控制的代碼,特別是列綁定下拉網格不須要過多代碼,只要設置幾個屬性就好了;

相關文章
相關標籤/搜索