C#中右键通过listview来控制datagridview字段值的是否显示、显示顺序,并存储到XML中。
- 互联网
- 2025-07-22 20:51:01

最终显示效果,如下图所示:
datagridview开始显示通过调用XML存储的字段值及顺序来显示,右键调出Tools来控制显示的顺序及是否显示,通过加号和减号进行调整顺序。
XML存储字段值及顺序
主要代码及事件:
获取datagridview当前显示的字段值及顺序,并存储到数组中,用于listview显示原始的全部的字段值,以及当前显示的顺序;
private string[] _GetColunmName() { string[] value=new string[dataGridView1.ColumnCount]; for (int i = 0; i < dataGridView1.ColumnCount; i++) { int x = dataGridView1.Columns[i].DisplayIndex; value[x]= dataGridView1.Columns[i].HeaderText; } return value; }
从XML中获取需要显示的字段值的信息,并进行显示及显示顺序的设置;
private void SetColumn(string GridName) //GridName为指定节点的名称; { string d = GetXmlColumnName(GridName); //调用事件获取指定节点的内容 string[] dstr = d.Split(','); dataGridView1.SuspendLayout(); for (int i = 0; i < dataGridView1.Columns.Count; i++) { dataGridView1.Columns[i].Visible = dstr.Contains(dataGridView1.Columns[i].HeaderText); string _header = dataGridView1.Columns[i].HeaderText; for (int j = 0; j < dstr.Length; j++) { string s = dstr[j]; if (s == _header) { dataGridView1.Columns[i].DisplayIndex = j; } } } dataGridView1.ResumeLayout(true); }
tools页面与主页面通过委托与事件的方式进行调用;
tools的主要代码
Tools的onload的事件代码
private void Tools_Load(object sender, EventArgs e) { string[] str = _columnname;//获取调用模块的列明; string d = GetXmlColumnName(_mainname); //获取xml中存储的值;
string[] dstr = d.Split(',');//xml中的列 //显示全部的GridView名称 foreach (var _str in str) { listView1.Items.Add(_str.ToString()); } //将XML中存在的字段名进行打钩选中 for (int i = 0; i < listView1.Items.Count; i++) { foreach (var _str in dstr) { if (listView1.Items[i].Text == _str.ToString()) { listView1.Items[i].Checked = true; } } } }
//保存到XML的代码;_mainname为节点的名称,value为获取的字段名称的顺序;
private void SaveXmlColumn() { string value = ""; for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Checked==true) { value += listView1.Items[i].Text + ","; } } if (value.Length > 0) { value = value.Remove(value.Length - 1, 1); } SaveXmlHeader(_mainname, value); //调用保存到XML中; SetXmlColumn(); //调用事件进行显示页面的调整 }
C#中右键通过listview来控制datagridview字段值的是否显示、显示顺序,并存储到XML中。由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#中右键通过listview来控制datagridview字段值的是否显示、显示顺序,并存储到XML中。”