C#中右键通过listview来控制datagridview字段值的是否显示、显示顺序,并存储到XML中。

最终显示效果,如下图所示:

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();  //调用事件进行显示页面的调整
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arduino ide 开发esp8266注意事项

1.引脚序列号必须是常量来定义&#xff0c;否则会无限重启。 #define p2 2 const int Pin2p2; pinMode(Pin2, OUTPUT); 2.关于wifi的模式&#xff0c;ap,sta&#xff0c;apsta三种模式的初始化必须放在void set_up(){}这个函数里&#xff0c;不能额外搞个自定义函数&#xf…

GitHub配置SSH Key(详细版本)

GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码是&#xff0c;不需要繁琐的验证过程&#xff0c;简化操作流程。比如新建的仓库可以下载, 但是提交需要账号密码。 步骤 一、设置git的user name和email 如果你是第一次使用&#xff0c;或者还没有配置过的话需要操作…

鸿蒙Harmony应用开发—ArkTS-高级组件:@ohos.arkui.advanced.ComposeTitleBar(头像和单双行文本标题栏)

一种普通标题栏&#xff0c;支持设置标题、头像&#xff08;可选&#xff09;和副标题&#xff08;可选&#xff09;&#xff0c;可用于一级页面、二级及其以上界面配置返回键。 说明&#xff1a; 该组件从API Version 10开始支持。后续版本如有新增内容&#xff0c;则采用上角…

java 通过 IMetaStoreClient 取 hive 元数据信息

1 pom.xml配置&#xff0c;要与服务器上的版本要一致&#xff0c;并将hive-site.xml 文件放入resources文件夹中 <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>&l…

演讲嘉宾公布 | 3D音频专题论坛将于3月27日举办

一、3D音频专题论坛 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验&#xff0c;跨越时空的限制&#xff0c;探索未知的世界。同时&#xff0c;提供更加丰富、立体的情感表达和交流方式&#xff0c;让人类能够更加深入地理解彼此&#xff0c;建立更加紧密的联系。3D音频未…

风速预测(八)VMD-CNN-Transformer预测模型

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

图片编辑器中实现文件上传的三种方式和二进制流及文件头校验文件类型

背景 最近在 vue-design-editor 开源项目中实现 psd 等多种文件格式上传解析成模板过程中, 发现搞定设计文件上传没有使用 input 实现文件上传, 所以我研究了一下相关技术, 总结了以下三种文件上传方法 input 文件选择window.showOpenFilePicker 和 window.showDirectoryPicke…

Android Selinux详解[七]--如何给可执行程序bin加标签

经过前面几篇文章的介绍&#xff0c;你应该对Selinux有一定的了解了&#xff0c;现在我们就来实战一下。 你可能会在工作的过程遇到要给可执行程序bin加标签的需求&#xff0c;以下来讲解一下怎么给bin加标签 1. 一个bin通常是通过adb shell bin名字拉起来的&#xff0c;拉起…

WPF 中 样式触发器机制 Style.Triggers

在 WPF (Windows Presentation Foundation) 中&#xff0c;Style.Triggers 是一种样式触发器机制&#xff0c;它允许你在特定条件下改变控件的外观或行为。Style.Triggers 元素是 Style 元素的子元素&#xff0c;用于定义触发器集合。 每个触发器都关联到一个条件&#xff0c;…

何恺明重提十年之争——模型表现好是源于能力提升还是捕获数据集偏见

2011年,知名学者Antonio Torralba和Alyosha Efros提出了“数据集偏差之战”&#xff0c;他们发现机器学习模型很容易“过拟合”到特定的数据集上&#xff0c;导致在其他数据集上表现不佳。过去十年&#xff0c;随着深度学习革命的到来&#xff0c;建立多样化、大规模、全面且尽…

应急响应-Web2

应急响应-Web2 1.攻击者的IP地址&#xff08;两个&#xff09;&#xff1f; 192.168.126.135 192.168.126.129 通过phpstudy查看日志&#xff0c;发现192.168.126.135这个IP一直在404访问 &#xff0c; 并且在日志的最后几条一直在访问system.php &#xff0c;从这可以推断 …

机器学习_聚类(Clustering)

文章目录 简介K-均值算法(K_Means) 简介 你经常跟哪些人联系&#xff0c;而这些人又经常给哪些人发邮件&#xff0c;由此找到关系密切的人群。因此&#xff0c;这可能需要另一个聚类算法&#xff0c;你希望用它发现社交网络中关系密切的朋友。 K-均值算法(K_Means) K-均值是…

查看angular版本的问题The Angular CLI requires a minimum Node.js version of v18.13.

angular版本与node.js版本不匹配的问题 下载安装angular 查看版本&#xff0c;发现不匹配 安装指定版本即可 查看版本并运行

stm32f103c8t6学习笔记(学习B站up江科大自化协)-ADC

ADC简介 ADC&#xff0c;英文全称是Analog to Digital Convert&#xff0c;意为模拟数字转换器&#xff0c;简称模数转换器&#xff0c;或者叫AD转换器&#xff0c;STM32主要是数字电路&#xff0c;数字电路只有高低电平&#xff0c;没有几V电压的概念&#xff0c;如果想读取电…

Android 优化 - 数据结构

一、概念 数据结构&#xff1a;数据存储在内存中的顺序和位置关系&#xff0c;选择合适的数据结构能提高内存的利用率。 线性结构链表结构树形结构 二、线性结构 结构优点缺点数组数据呈线性排列&#xff0c;初始化时就要指定长度且无法更改&#xff0c;会开辟一块连续的内…

使用ansible批量修改操作系统管理员账号密码

一、ansible server端配置 1、对于Linux主机配置免密登录ssh-copy-id -i ~/.ssh/id_rsa.pub rootremote_ip 2、在/etc/ansible/hosts文件中添加相应主机IP 3、对于Windows主机需要在/etc/ansible/hosts文件中进行以下配置 192.168.83.132 ansible_ssh_useradministrator an…

神经网络(深度学习,计算机视觉,得分函数,损失函数,前向传播,反向传播,激活函数)

目录 一、神经网络简介 二、深度学习要解决的问题 三、深度学习的应用 四、计算机视觉 五、计算机视觉面临的挑战 六、得分函数 七、损失函数 八、前向传播 九、反向传播 十、神经元的个数对结果的影响 十一、正则化与激活函数 一、神经网络简介 神经网络是一种有监督…

在vue项目中封装并使用WebSocket(2)

创建一个websocket组件 <script> export default {name: "index",props: {wsUrl: {type: String,require: true,},},data() {return {socket: "",};},watch: {wsUrl: {immediate: true,handler() {this.init();},},},methods: {init() {console.log…

RocketMq 顺序消费、分区消息、延迟发送消息、Topic、tag分类 实战 (延迟发送消息) (四)

延迟发送消息生产者配置 如下所示&#xff1a;Bean注解向Spring容器注入一个名字叫delayOrderProducerBean、类型为OrderProducerBean 的对象&#xff08;下文需要用到&#xff09; Configuration public class DelayProducerClient {Autowiredprivate RocketMqDelayPropertie…

打开打包好的.APK文件,使用Android Studio

1. 没有android studio的 下载安装 Android 开发者 | Android Developers 2. 打开file下面的 “Profile or debug apk” 选择想要打开的.apk文件 3. 打开AndroidManifest.xml就可以看到想要看到版本号等基本信息