当前位置: 首页 > news >正文

winform开发心得

        最近一直在从事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时,自动隐藏tooltippointView = new Point(e.X, e.Y);//存储本次的鼠标位置,为下次得位置比较准备}}

http://www.lryc.cn/news/1477.html

相关文章:

  • 学习周报-2023-0210
  • 百度富文本UE的问题集合
  • 在Linux上安装node-v14.17.3和npm-6.14.13
  • 机器学习框架sklearn之特征降维
  • java实现二叉树(一文带你详细了解二叉树的)
  • 学弟学妹少走弯路,超完整算法刷题路线出炉
  • Windows截取gif动态图的软件 ScreenToGif 的安装、使用教程
  • C++程序设计——多态:虚函数、抽象类、虚函数表
  • OpenMMLab AI实战营 第6课 语义分割与MMSegmentation
  • 产业互联网是对互联网的衍生和进化,也是一次重塑和再造
  • Shell脚本之——Hadoop3单机版安装
  • 代码随想录NO39 |0-1背包问题理论基础 416.分割等和子集
  • FITC-PEG-FA,荧光素-聚乙二醇-叶酸,FA-PEG-FITC,实验室科研试剂,提供质量检测
  • 简洁易懂:源码+实战讲解Redisson并发锁及看门狗自动续期
  • TCP 三次握手和四次挥手
  • JavaWeb复习
  • P14 PyTorch AutoGrad
  • 前端报表如何实现无预览打印解决方案或静默打印
  • Operating System Course 2 - My OS
  • 离散数学 课时一 命题逻辑的基本概念
  • Word文档带有权限密码怎么办?
  • C++多态
  • 访问学者如何申请美国J1签证?
  • 使用gitlab ci/cd来发布一个.net 项目
  • 笔试题-2023-蔚来-数字芯片设计【纯净题目版】
  • ThreadLocal 详解
  • 【Java 面试合集】重写以及重载有什么区别能简单说说嘛
  • 到底什么是股票委托接口?
  • Linux驱动:VPU
  • 简介Servlet