C1FlexGrid的屬性操作


1.  列自由拖拽

我們可以拖動教育的列放到最后一行,如圖

C1控件默認支持

 C1FlexGrid的屬性操作

2.  前幾列鎖定

 C1FlexGrid的屬性操作

Frozen 的數值 設為2,則前兩列鎖定,拉動橫向滾動條,前2列是不動的。用於定義性的屬性數據的顯示,比如工卡,姓名或物料代碼,物料名稱等數據。

 C1FlexGrid的屬性操作

3.  相同行合並的統計功能

總的C1控件設置

 C1FlexGrid的屬性操作

分列合並設置

 

 C1FlexGrid的屬性操作

 C1FlexGrid的屬性操作

4.  相同標題合並設置

 C1FlexGrid的屬性操作

完成這樣的功能不僅需要在C1控件進行設置,還需要完成一部分編碼才可以實現。

A. 首先像操作3一樣,對C1控件進行整體設置為可合並

B. 對具體的標題列設置為為可合並

C. 編寫代碼部分,放在觸發事件內部

            c1FlexGrid1.Rows[0].AllowMerging = true;

            // 循環標題行(共兩行)

            for (int m = 0; m < c1FlexGrid1.Rows.Fixed; m++)

            {

               //設置列標題

                if (m == 0)

                {

                    c1FlexGrid1[m, 1] = "工卡";

                    c1FlexGrid1[m, 2] = "姓名";

                    c1FlexGrid1[m, 3] = "個人信息";

                    c1FlexGrid1[m, 4] = "個人信息";

                    c1FlexGrid1[m, 5] = "個人信息";

                    c1FlexGrid1[m, 6] = "個人信息";                   

                }

 

                if (m == 1)

                {

                    c1FlexGrid1[m, 1] = "工卡";

                    c1FlexGrid1[m, 2] = "姓名";

                    c1FlexGrid1[m, 3] = "生日";

                    c1FlexGrid1[m, 4] = "地址";

                    c1FlexGrid1[m, 5] = "省份";

                    c1FlexGrid1[m, 6] = "教育";

                }

            }

 

5.  C1行標題列居中的腳本

 C1FlexGrid的屬性操作

                CellStyle style = c1FlexGrid1.Styles.Add("Row_TextAlign");

           style.TextAlign = TextAlignEnum.CenterCenter;

            c1FlexGrid1.Rows[0].Style = style;

 

6.  C1行的Label信息提示Tip

 

C1FlexGrid的屬性操作

 

 C1FlexGrid的屬性操作

7.  C1行的Notes信息提示Tip

沒有實現

8.  C1行背景色變換

 C1FlexGrid的屬性操作

            // 循環標題行(共兩行)

            for (int m = c1FlexGrid1.Rows.Fixed; m < c1FlexGrid1.Rows.Count; m++)

            {

                //設置列標題

                if (m%2 == 0)

                {

                    c1FlexGrid1.Rows[m].StyleNew.BackColor = Color.Gold;

                }

            }

C1的Cell的背景色變換

 C1FlexGrid的屬性操作

--這個Range的參數左上角到右下角的坐標

c1FlexGrid1.GetCellRange(3, 4).StyleNew.BackColor = Color.Cyan;

 

9.  C1表達樹型控件

 C1FlexGrid的屬性操作

l         首先Grid的樣式要定義為Tree結構

l         增加根節點

l         在根節點下增加子節點即可

相關代碼如下:

            c1FlexGrid1.Tree.Column = 1;

            c1FlexGrid1.Tree.Style = C1.Win.C1FlexGrid.TreeStyleFlags.Simple;

 

            Node node = null; List strList= new List();

 

            strList.Add("河南");

            strList.Add("四川");

            strList.Add("廣西");

            strList.Add("廣東");

 

            for (int jj = 0; jj < strList.Count; jj++)

            {

                node = c1FlexGrid1.Rows.InsertNode(c1FlexGrid1.Rows.Count, 0);

                node.Row[1] = strList[jj];

 

                DataRow[] tmpRows = dt.Select("NATIVE_PLACE ='" + strList[jj] + "'");

 

                for (int ii = 0; ii < tmpRows.Length; ii++)

                {

                    node = c1FlexGrid1.Rows.InsertNode(c1FlexGrid1.Rows.Count, 1);

                    //node.Row[1] = tmpRows[ii][0].ToString();

                    node.Row[2] = tmpRows[ii][1].ToString();

                    node.Row[3] = tmpRows[ii][2].ToString();

                    node.Row[4] = tmpRows[ii][3].ToString();

                    node.Row[5] = tmpRows[ii][4].ToString();

                    node.Row[6] = tmpRows[ii][5].ToString();

                    node.Row[7] = tmpRows[ii][6].ToString();

                    node.Row[8] = tmpRows[ii][7].ToString();

                }

            }

 

10.              C1設置顯示行數信息

 C1FlexGrid的屬性操作

對應的代碼信息

        private void button3_Click(object sender, EventArgs e)

        {

            //為空或者無數據就退出

            if (c1FlexGrid1 == null || c1FlexGrid1.Rows.Count == 1)

            {

                return;

            }

 

            c1FlexGrid1.Cols[0].Width = 30;

            c1FlexGrid1.Cols[0].TextAlign = TextAlignEnum.LeftCenter;

 

            int m, i, iFrom, iRow;

 

            //設定行NO

            m = c1FlexGrid1.Rows.Count;

            iFrom = c1FlexGrid1.Rows.Fixed;

            iRow = 1;

            for (i = iFrom; i < m; i++)

            {

                c1FlexGrid1[i, 0] = iRow.ToString();

                iRow++;

            }//for (i = 1; i < m; i++)      

        }

 

11.              C1的Excel導出

 C1FlexGrid的屬性操作

對應的代碼信息

        private void button1_Click(object sender, EventArgs e)

        {

            //有數據才導出

            if (c1FlexGrid1.Rows.Count <= c1FlexGrid1.Rows.Fixed)

            {

                MessageBox.Show("沒有數據可以導出");

                return;

            }

            SaveFileDialog dlgSaveFile = new SaveFileDialog();

 

            dlgSaveFile.Filter = "Excel Files(*.xls)|*.xls|CSV Files(*.csv)|*.csv";

            dlgSaveFile.RestoreDirectory = true;

            dlgSaveFile.CheckFileExists = false;

 

            //選擇了文件才導出

            if (dlgSaveFile.ShowDialog() == DialogResult.OK)

            {

                c1FlexGrid1.SaveExcel(dlgSaveFile.FileName);

            }

        }

 

12.              C1設置顯示列信息

這個功能實現起來比較復雜,在SSB框架里面窗體基類實現了這個方法。點擊命令按鈕,彈出在選擇列的對話框,在對話框自動獲取該Grid里面所有的列,當對話框確定的時候,把保存選擇列的Style 保存在客戶端本地的文件里面,當原始窗體重新登陸的時候,就可以讀取這個Style文件,把保存好的數據參數重新讀取。

 C1FlexGrid的屬性操作

 

 C1FlexGrid的屬性操作

代碼比較復雜,只列舉程序的關鍵點,具體代碼可以參照原程序。

l         點擊列顯示設置,彈出列選擇對話框時,自動獲得父窗體對象,父窗體的Grid所有的列

l         選擇是否顯示Grid后,點擊對話框的確定,保存選擇的Style到緩存中一份,同時更改父窗體的Grid顯示,再保存一份Style數據到客戶端本地。

l         點擊列顯示讀取,從客戶端本地的Style文件讀取數據,設置Grid屬性。在SSB架構時,在窗體讀取的時候自動加載自定義的Style 文件屬性的。

 

13.              C1設置的查找功能實現

這個功能實現起來也比較復雜,在SSB框架里面窗體基類實現了這個方法。點擊命令按鈕,彈出在查找對話的對話框,輸入要查找的信息,選中對應的Grid列,就可以在該列中查找對應的信息。目前僅支持選中列的查找,不支持全Grid數據的查找。

 C1FlexGrid的屬性操作

 

 

C1常用操作指南 B/S部分

C/S部分引用的是C1WebGrid控件,因為大家對GridView和ZTEGridView比較熟,相同的屬性我這里就不介紹了,只介紹C1WebGrid特有的屬性。

  1. 列寬度改變

可以手工拖拽行的寬度

 C1FlexGrid的屬性操作

  1. 列位置拖拽

與C/S一樣,C1WebGird可以手動改變列的位置

 C1FlexGrid的屬性操作

  1. 列鎖定

當滾動條滾動時,前面Fix的列是固定不動

 

 

C1FlexGrid的屬性操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM