winform开发心得

news2024/11/28 0:33:37

        最近一直在从事winform的开发,每次都是需要从网上查找资料才能对应具体风格要求,现在总结一下。

        ui方面可以使用CSkin对应的一套ui,使用步骤

        1.在窗口界面,工具箱空白处点击右键,弹出菜单有个”选择项“,点击之后,浏览对应的dll文件加载确认之后,对应的控件就会在工具箱中出现,接下来的操作就和普通控件一样拖动就可以使用。

        2.思路,winform界面开发,对应的弹出框,我们可以把父窗口对象直接传给需要的子对象,子对象在关闭或者调用接口时,直接使用父对象的方法。

        3.Gridview的一些操作:

                1.获取选择行数据转换成对象:this.configGrid.CurrentRow.DataBoundItem as WorkspaceBeanConfig;

                2.grid在绑定对象的时候会显示对象所有的字段,使用 configGrid.AutoGenerateColumns = false;可以显示只有绑定到表单中的字段。

        4.首先grid绑定字段如下图所示:

        

 

        grid多选对应的代码:

 #region 列表勾选
        private void textGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.ColumnIndex == 0)
            {
                configGrid.ClearSelection();

                if (configGrid.Rows.Count == 0)
                    return;

                configGrid.CurrentCell = configGrid[1, 0];//如果没有这句代码,如果复选框列有某个单元格获得焦点时,虽然全选,但是此单元格依然不能选中 这句话的意思就是把焦点移出去
                if (ck.HeaderText == " □")
                {
                    for (int i = 0; i < configGrid.RowCount; i++)
                    {
                        configGrid.Rows[i].Cells[0].Value = true;
                    }
                    ck.HeaderText = " √";
                }
                else
                {
                    for (int i = 0; i < configGrid.RowCount; i++)
                    {
                        configGrid.Rows[i].Cells[0].Value = false;
                    }
                    ck.HeaderText = " □";
                }
            }
        }

        private void textGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0 && e.RowIndex != -1)
            {
                int sum = 0;
                for (int i = 0; i < configGrid.RowCount; i++)
                {
                    //必须使用这个属性 EditedFormattedValue 这个属性也是关键 这里不用value是因为不是实时的数据
                    if ((bool)configGrid.Rows[i].Cells[0].EditedFormattedValue)
                    {
                        sum++;
                    }
                }
                if (sum == configGrid.RowCount)
                {
                    ck.HeaderText = " √";
                }
                else
                {
                    ck.HeaderText = " □";
                }
            }
        }
        #endregion

这是要grid要实现的两个方法。对应对象最好时包含iChecked属性,后期查询方便很多。

        

5.combox的一些基础方法:

        

            classfyDatas.Add(new specialty() { Code = "", Name = "请选择级别" });
            classfyDatas.Add(new specialty() { Code = "2", Name = "公司级" });
            classfyDatas.Add(new specialty() { Code = "3", Name = "项目级" });

            skinComboBox1.DataSource = classfyDatas;
            skinComboBox1.ValueMember = "Code";
            skinComboBox1.DisplayMember = "Name";

6.listview的tooltip

        private ToolTip toolTip = new ToolTip();
        private Point pointView = new Point(0, 0);//鼠标位置 外部存储变量
        private void listView1_MouseMove(object sender, MouseEventArgs e)
        {
            ListViewItem lv = this.listView1.GetItemAt(e.X, e.Y);
            if (lv != null)
            {
                if (pointView.X != e.X || pointView.Y != e.Y)//比较当前位置和上一次鼠标的位置是否相同,防止tooltip因MouseMove事件不停刷新造成的闪烁问题,
                {
                    //toolTip.SetToolTip(listView1, "双击进入 " + lv.SubItems[0].Text);
                    toolTip.Show(lv.SubItems[0].Text, listView1, new Point(e.X, e.Y), 1000);
                    pointView.X = e.X;

                    pointView.Y = e.Y;

                    toolTip.Active = true;
                }
            }
            else
            {
                toolTip.Hide(listView1);//当鼠标位置无listviewitem时,自动隐藏tooltip
                pointView = new Point(e.X, e.Y);//存储本次的鼠标位置,为下次得位置比较准备
            }
            

        }

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

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

相关文章

ISO7320FCQDRQ1数字隔离器LMG1025QDEETQ1半桥GaN驱动器

1、数字隔离器 DGTL ISO 3000VRMS 2CH 8SOIC型号&#xff1a;ISO7320FCQDRQ1批次&#xff1a;新技术&#xff1a;容性耦合类型&#xff1a;通用隔离式电源&#xff1a;无通道数&#xff1a;2输入 - 侧 1/侧 2&#xff1a;2/0通道类型&#xff1a;单向电压 - 隔离&#xff1a;30…

C语言深度剖析 -- 32个关键字(下)

文章目录if else 语句bool 与 0 的比较float 与 0 的比较指针与 0 的比较switch case 语句do while for 关键字goto语句真的没人使用吗&#xff1f;void 关键字void能否定义变量&#xff1f;void定义指针void修饰函数返回值和作为函数参数return关键字const关键字const修饰的只…

《电脑技术-系统篇》

《电脑技术-系统篇》 重装须知 ​ 备份桌面上资料&#xff0c;包括系统盘中其他的个人文件等。 一、重装系统 ​ 重装系统是指对计算机的操作系统进行重新的安装。当用户错误操作或遭受病毒、木马程序的破坏&#xff0c;系统中的重要文件就会受损导致错误&#xff0c;甚至崩…

详细对比php中类继承和接口继承(php是否支持多继承)

PHP类继承&#xff1a; 1、PHP类不支持多继承&#xff0c;也就是子类只能继承一个父类&#xff0c;但是支持多层次继承 比如&#xff1a; class frist{public function __construct(){echo "我是第一个类。"," ";}public function printer(){echo "…

单片AR眼镜Monocle揭秘:基于反射棱镜,重15g续航1小时

提问&#xff1a;一个戴近视眼镜的人&#xff0c;会愿意再同时戴一副AR眼镜吗&#xff1f;这个问题对于VR来说并不难&#xff0c;通常VR头显为镜框留出了空间&#xff08;一些Pancake VR自带屈光调节机制&#xff09;&#xff0c;因此二者并不冲突。然而AR眼镜体积更紧凑&#…

城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】

文章目录&#x1f31f; 课前小差&#x1f31f; 长沙线下&#x1f31f; C友会你也可以是组织者&#x1f31f; 线下交流提升价值&#x1f31f; 官方与抖音合作&#xff1f;&#x1f31f; 23年动起来&#x1f31f; 写在最后&#x1f31f; 课前小差 哈喽&#xff0c;大家好&#x…

九龙证券|中一签可暴赚近9万!兔年第一大肉签来了!弃购的哭了

今天上午&#xff0c;A股商场新股又出大肉签&#xff0c;裕太微-U大涨&#xff0c;中一签盘中最高浮盈近9万元&#xff0c;使得该新股成为近年罕见的“大肉签”。数据显现&#xff0c;最近一两年A股商场单签浮盈超越5万元的新股已比较罕见。 值得注意的是&#xff0c;新股裕太…

2月10日第壹简报,星期五,农历正月二十

2月10日第壹简报&#xff0c;星期五&#xff0c;农历正月二十坚持阅读&#xff0c;静待花开1. 土耳其强震72小时黄金救援期已过&#xff0c;强震已致土叙两国超2万人遇难。2. 吴尊友&#xff1a;未来出现比现在传染性更强变异毒株的可能性非常小&#xff0c;还没“阳”过的孩子…

虎牙盈利能力得到改善,但监管风险对其收入产生负面影响

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 监管风险再次成为焦点 过去一段时间&#xff0c;与中概股相关的监管风险再次引起了投资者的注意&#xff0c;这也是正在考虑投资虎牙&#xff08;HUYA&#xff09;的投资者需要注意的问题。 例如&#xff0c;监管机构在2022…

做专家型服务者,尚博信助力企业数字化转型跑出“加速度” | 爱分析调研

01 从技术应用到业务重构&#xff0c;数字化市场呼唤专家型厂商 企业数字化转型是一个长期且系统性的变革过程。伴随着企业从信息化建设转向业务的数字化重构&#xff0c;市场对数字化厂商的能力要求也在升级。 早期的信息化建设主要是从技术视角切入&#xff0c;采用局部需求…

k8s学习笔记

目录 一、安装前准备 二、安装 1、安装kubelet、kubeadm、kubectl 2、使用kubeadm引导集群 1、下载各个机器需要的镜像 2、初始化主节点 3、加入node节点 3、部署dashboard 1、主节点安装 2、设置访问端口 3、创建访问账号 4、令牌访问获取token 三、实战 1、资源创…

正大国际期货:外盘震荡行情的特征及突破信号的确立

投机市场上&#xff0c;趋势交易应该是交易操作理念的灵魂和核心&#xff1b;能够顺应大的趋势&#xff0c;交易将变得简单&#xff0c;也更容易赚到钱。下面正大IxxxuanI详细来给大家讲讲 投资市场是由千万个交易个体所组成的复杂系统&#xff0c;走势具有不确定性&#xff0…

MQTT 5.0协议新特性介绍

MQTT 5.0协议新特性介绍 项目中逐步完成了 MQTT 5.0的开发&#xff0c;这里介绍下MQTT 5.0 的一些新特性。 MQTT 3.1.1 规范见&#xff1a;点击查看MQTT 5.0 规范见&#xff1a;点击查看 格式 首先&#xff0c;协议上&#xff0c;增加了一个 Property字段&#xff0c;正是这…

无线通信中的轨道角动量

目录 一. 前言 二. 如何传输 三. 如何产生 3.1 螺旋结构器件 &#xff08;1&#xff09;螺旋相位板 &#xff08;2&#xff09;螺旋抛物面天线 3.2 超表面 3.3 天线阵列 3.3.1 相控阵 3.3.2 时控阵 四. 如何识别 一. 前言 轨道角动量&#xff1a;Orbital Angular M…

Wine零知识学习1 —— 介绍

一、什么是Wine Wine是“Wine Is Not an Emulator” 的首字母缩写&#xff0c;是一个能够在多种POSIX-compliant操作系统&#xff08;诸如Linux、macOS及BSD等&#xff09;上运行 Windows 应用的兼容层。Wine不像虚拟机或者模拟器那样模仿内部的Windows逻辑&#xff0c;而是將…

电压放大器在非共线混频方法检测混凝土中的应用

实验名称&#xff1a;电压放大器在非共线混频方法检测混凝土中的应用研究方向&#xff1a;无损检测测试目的&#xff1a;无损检测是在不损伤或不干扰待测物体的结构材料的情况下&#xff0c;对其内部损伤进行探测的方法。传统无损检测法在仪器携带&#xff0c;操作程序&#xf…

牛客网 HJ31 单词倒排(详解)

前言&#xff1a;内容包括四大模块&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 描述 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字…

PyTorch学习笔记:nn.L1Loss——L1损失

PyTorch学习笔记&#xff1a;nn.L1Loss——L1损失 torch.nn.L1Loss(size_averageNone, reduceNone, reductionmean)功能&#xff1a;创建一个绝对值误差损失函数&#xff0c;即L1损失&#xff1a; l(x,y)L{l1,…,lN}T,ln∣xn−yn∣l(x,y)L\{l_1,\dots,l_N\}^T,l_n|x_n-y_n| l(…

苹果手机怎么传输照片到电脑?教你4种实用方法

苹果手机怎么传输照片到电脑&#xff1f;除了更换新手机需要迁移数据&#xff0c;iPhone用久了常常会遇到储存空间不足的问题&#xff0c;因此把一些数据上传到电脑上也是必要的。今天咱们就来说说从iPhone传输照片到电脑的迁移方法吧。 方法1.使用苹果数据线 苹果手机怎么传输…

【论文速递】ICCV2021 - 基于超相关压缩实现实时高精度的小样本语义分割

【论文速递】ICCV2021 - 基于超相关压缩的小样本语义分割 【论文原文】&#xff1a;Hypercorrelation Squeeze for Few-Shot Segmentation 【作者信息】&#xff1a;Juhong Min Dahyun Kang Minsu Cho 获取地址&#xff1a;https://openaccess.thecvf.com/content/ICCV2021/…