儲存和讀取DataGridView的格式

來源:互聯網
上載者:User

     我們在做WinForm開發的時候,經常要用到DataGridView控制項,因此控制項可以調整列的順序及寬度,使用者如果想儲存最後調整的格式,怎麼辦?

    此時我們可以考慮儲存每個Form中DataGridView的格式,以XML格式儲存。

   步驟如下:

1. 在程式的目前的目錄下建立一個檔案夾,例如:XML

2.先建立儲存格式的方法,代碼如下:

  /// <summary><br /> /// 儲存DataGridView樣式<br /> /// </summary><br /> /// <param name="form">表單</param><br /> /// <param name="dgv">DataGridView</param><br /> public static void SaveDGVStyle(Form form, DataGridView dgv)<br /> {<br /> try<br /> {<br /> string XMLPath;<br /> XMLPath= Application.StartupPath + @"/XML/";<br /> string fileName = XMLPath + form.Name + "_" + dgv.Name + ".xml";<br /> DataTable tb=new DataTable();<br /> tb.TableName = dgv.Name;<br /> tb.Columns.Add("colName");//列名<br /> tb.Columns.Add("colHeader");//標題<br /> tb.Columns.Add("colWidth");//寬度<br /> tb.Columns.Add("colVisable");//是否顯示<br /> tb.Columns.Add("colDisplayIndex");//顯示順序</p><p> foreach (DataGridViewColumn col in dgv.Columns)<br /> {<br /> DataRow row = tb.NewRow();<br /> row["colName"] = col.Name;<br /> row["colHeader"] = col.HeaderText;<br /> row["colWidth"] = col.Width;<br /> row["colVisable"] = col.Visible;<br /> row["colDisplayIndex"] = col.DisplayIndex;<br /> tb.Rows.Add(row);<br /> tb.AcceptChanges();</p><p> }<br /> tb.WriteXml(fileName);<br /> }<br /> catch (Exception ex)<br /> {<br /> Console.Write(ex.Message);<br /> }</p><p> }<br />

3.讀取XML檔案,並設定DataGridView格式,代碼如下:

  /// <summary><br /> /// 讀取DataGridView格式並應用<br /> /// </summary><br /> /// <param name="form"></param><br /> /// <param name="dgv"></param><br /> public static void ReadGVStyle(Form form, DataGridView dgv)<br /> {<br /> try<br /> {<br /> string XMLPath;<br /> XMLPath= Application.StartupPath + @"/XML/";<br /> string fileName = XMLPath + form.Name + "_" + dgv.Name + ".xml";<br /> if (!File.Exists(fileName))<br /> return;</p><p> DataTable tb=new DataTable();<br /> tb.TableName = dgv.Name;<br /> tb.Columns.Add("colName");//列名<br /> tb.Columns.Add("colHeader");//標題<br /> tb.Columns.Add("colWidth");//寬度<br /> tb.Columns.Add("colVisable");//是否顯示<br /> tb.Columns.Add("colDisplayIndex");//顯示順序<br /> tb.ReadXml(fileName);<br /> foreach (DataRow row in tb.Rows)<br /> {<br /> dgv.Columns[row["colName"].ToString()].HeaderText = row["colHeader"].ToString();<br /> dgv.Columns[row["colName"].ToString()].Width =int.Parse(row["colWidth"].ToString());<br /> dgv.Columns[row["colName"].ToString()].Visible = Boolean.Parse(row["colVisable"].ToString());<br /> dgv.Columns[row["colName"].ToString()].DisplayIndex = int.Parse(row["colDisplayIndex"].ToString());</p><p> }<br /> }<br /> catch (Exception ex)<br /> {<br /> Console.Write(ex.Message);<br /> }</p><p> }

4.在表單的Load事件裡面調用上面的方法即可,

例如:ReadGVStyle(this, dgv1);<br />

當然,方法有很多,這隻是其中一種。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.