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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前后端分离项目springsecurity实现用户登录认证快速使用

目录 1、引入依赖 2、创建类继承WebSecurityConfigurerAdapter &#xff08;1&#xff09;重写里面的configure(HttpSecurity http)方法 &#xff08;2&#xff09;重写AuthenticationManager authenticationManagerBean() &#xff08;3&#xff09;密码加密工具 3、继承…

支付宝手机网站支付,微信扫描二维码支付

支付宝手机网站支付 支付宝文档 响应示例 <form name"punchout_form" method"post" action"https://openapi.alipay.com/gateway.do?charsetUTF-8&methodalipay.trade.wap.pay&formatjson&signERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE…

【用法总结】Systrace使用基础

【用法总结】Systrace使用基础 一、systrace基本介绍被弃用了?二、快捷键用法二、systrace命令用法2.1 命令格式:2.2 option取值:2.3 category取值:2.4 命令用法举例:2.5 快捷键用法:三、systrace报告怎么看?3.1 CPU调度信息3.2 线程状态信息3.2.1 绿色 : 运行中(Runni…

MyBatis3源码深度解析(十七)MyBatis缓存(一)一级缓存和二级缓存的实现原理

文章目录 前言第六章 MyBatis缓存6.1 MyBatis缓存实现类6.2 MyBatis一级缓存实现原理6.2.1 一级缓存在查询时的使用6.2.2 一级缓存在更新时的清空 6.3 MyBatis二级缓存的实现原理6.3.1 实现的二级缓存的Executor类型6.3.2 二级缓存在查询时使用6.3.3 二级缓存在更新时清空 前言…

thresh:基于Flutter的移动跨平台动态UI框架

Hello大家好&#xff01;我是咕噜铁蛋&#xff01;在移动应用开发的领域里&#xff0c;跨平台框架一直是一个热门话题。随着技术的不断发展&#xff0c;开发者们对于能够快速构建高质量、多平台兼容的应用的需求也越来越强烈。而Flutter&#xff0c;作为Google推出的一个高性能…

java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

今天在使用springBoot连接influxdb报错 java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics 详细报错如下&#xff0c;提出我们缺少一个依赖 原因是由于创建influxdb客户端缺少Kotlin运行时库 解决办法就是 1.显示的添加okhttp的依赖 <dependency>…

华为综合案例-普通WLAN全覆盖配置(1)

适用范围和业务需求 适用范围 本案例适用于大多数场景&#xff0c;如办公室、普通教室、会议室等普通非高密场景。 业务需求 主要业务需求如下&#xff1a; 接入需求 随时、随地无线业务接入。无线覆盖需要做到覆盖均匀、无盲区。 无线漫游需求 多层网络、快速切换、网络…

【Vue】el-select下选组件

系列文章 【Vue】vue增加导航标签 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/134965353 【Vue】Element开发笔记 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/133947977 【Vue】vue&#xff0c;在Windows IIS平台…

简单记录一次帮维修手机经历(Vivo x9)

简介 手边有一台朋友亲戚之前坏掉的Vivo X9手机&#xff0c; 一直说要我帮忙修理一下&#xff0c; 我一直是拒绝的&#xff0c; 因为搞程序的不等于维修的&#xff08;会电脑不等于维修电器&#xff09;&#xff0c;不知道这种思路如何根深蒂固的&#xff0c;不过好吧&#xff…

12 对称加密AES和非对称加密RSA

文章目录 一、对称加密算法AES1. AES简介2. AES代码 二、非对称加密RSA1. RSA简介2. 生成公钥私钥3. RSA代码 一、对称加密算法AES 1. AES简介 对称加密算法AES是目前广泛使用的一种加密技术&#xff0c;它采用相同的密钥来进行数据的加密和解密。 AES的优点 高效性&#x…

Maxwell监听mysql的binlog日志变化写入kafka消费者

一. 环境&#xff1a; maxwell:v1.29.2 (从1.30开始maxwell停止了对java8的使用&#xff0c;改为为11) maxwell1.29.2这个版本对mysql8.0以后的缺少utf8mb3字符的解码问题&#xff0c;需要对原码中加上一个部分内容 &#xff1a;具体也给大家做了总结 &#xff1a; 关于v1.…

UniTask 异步任务

文章目录 前言一、UniTask是什么&#xff1f;二、使用步骤三、常用的UniTask API和示例1.编写异步方法2.处理异常3.延迟执行4.等待多个UniTask或者一个UniTas完成5.异步加载资源示例6.手动控制UniTask的完成状态7.UniTask.Lazy延迟任务的创建8.后台线程切换Unity主线程9.不要返…

小程序跨端组件库 Mpx-cube-ui 开源:助力高效业务开发与主题定制

Mpx-cube-ui 是一款基于 Mpx 小程序框架的移动端基础组件库&#xff0c;一份源码可以跨端输出所有小程序平台及 Web&#xff0c;同时具备良好的拓展能力和可定制化的能力来帮助你快速构建 Mpx 应用项目。 Mpx-cube-ui 提供了灵活配置的主题定制能力&#xff0c;在组件设计开发阶…

​HTTP与HTTPS:网络通信的安全卫士

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起进步&am…

容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践...

作者&#xff1a;宋文欣&#xff0c;智领云科技联合创始人兼CTO 01 简介 大语言模型&#xff08;LLMs&#xff09;正逐渐成为人工智能领域的一颗璀璨明星&#xff0c;它们的强大之处在于能够理解和生成自然语言&#xff0c;为各种应用提供了无限可能。为了让这些模型更好地服务…

Java柠檬班Java全栈自动化课程

Java柠檬班Java全栈自动化课程旨在教授学员Java编程技能与全栈开发知识&#xff0c;包括自动化测试、前端开发和后端开发。学员将学习如何构建完整的应用程序&#xff0c;并掌握自动化测试框架&#xff0c;为职业发展打下坚实基础。 课程大小&#xff1a;14G 课程下载&#x…

PyTorch 深度学习(GPT 重译)(二)

四、使用张量表示真实世界数据 本章内容包括 将现实世界的数据表示为 PyTorch 张量 处理各种数据类型 从文件加载数据 将数据转换为张量 塑造张量&#xff0c;使其可以作为神经网络模型的输入 在上一章中&#xff0c;我们了解到张量是 PyTorch 中数据的构建块。神经网络…

挖掘网络宝藏:利用Scala和Fetch库下载Facebook网页内容

介绍 在数据驱动的世界里&#xff0c;网络爬虫技术是获取和分析网络信息的重要工具。本文将探讨如何使用Scala语言和Fetch库来下载Facebook网页内容。我们还将讨论如何通过代理IP技术绕过网络限制&#xff0c;以爬虫代理服务为例。 技术分析 Scala是一种多范式编程语言&…

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…

stable diffusion webui ubuntu 安装

1.git clone 下来 GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UIStable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.https://github.com/AUTOMATIC1111/stable-diffus…