DataGridView密码列

想用DataGridView来显示密码,但又不要那么容易就显示出来,只有选中该密码列的单元格时才显示密码,不选中时则不显示,搜索一圈,发现都是采用EditingControlShowing、CellFormatting的,而且那些办法完全没有意义,因为那样处理后,你已经丢失了原有的密码信息,CellFormatting也相当耗资源

搜索到这个回答十分中肯:“可能你有特殊的需求,但是,一般情况下,不显示密码,因为没意义,显示是给人看的,但又想显示成****或其他什么的。我们一般不显示这一列。”

本也想参考微软官网一些自定义DataGridView控件,写一个,能力不够,写不出来。

于是想,可以设置1列隐藏列(不显示)用来保存密码信息,一列显示列,用来在需要时显示密码。效果如下(实际中,将隐藏的密码列的Visible =False):

Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDataGridView1.Columns.Add("列0", "列0")DataGridView1.Columns.Add("列1", "列1")DataGridView1.Columns.Add("密码", "密码")DataGridView1.Columns.Add("隐藏的密码", "隐藏的密码")DataGridView1.Columns("").Visible = FalseEnd SubDim CellLeaveRowIndex As IntegerPrivate Sub DataGridView1_CellLeave(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellLeaveCellLeaveRowIndex = e.RowIndexIf e.ColumnIndex = DataGridView1.Columns("密码").Index ThenDataGridView1.CurrentCell.Value = "*"End IfEnd SubPrivate Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged'当离开了正在编辑的行,跳到另一行时,取消之前行的编辑状态If CellLeaveRowIndex <> DataGridView1.CurrentCell.RowIndex ThenDataGridView1.Rows(CellLeaveRowIndex).ReadOnly = TrueEnd IfEnd SubPrivate Sub AddBtn_Click(sender As Object, e As EventArgs) Handles AddBtn.ClickDataGridView1.Rows.Add()DataGridView1.CurrentCell = DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(0)DataGridView1.CurrentRow.ReadOnly = FalseEnd SubPrivate Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEditIf e.ColumnIndex = DataGridView1.Columns("密码").Index ThenDataGridView1.Rows(e.RowIndex).Cells("隐藏的密码").Value = DataGridView1.CurrentCell.ValueDataGridView1.CurrentCell.Value = "*"End IfEnd SubPrivate Sub DataGridView1_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEnterIf e.ColumnIndex = DataGridView1.Columns("密码").Index ThenDataGridView1.CurrentCell.Value = DataGridView1.Rows(e.RowIndex).Cells("隐藏的密码").ValueEnd IfEnd SubPrivate Sub DataGridView1_Leave(sender As Object, e As EventArgs) Handles DataGridView1.Leave'在此取消当前行的编辑状态DataGridView1.CurrentRow.ReadOnly = TrueEnd SubPrivate Sub EditBtn_Click(sender As Object, e As EventArgs) Handles EditBtn.ClickDataGridView1.CurrentRow.ReadOnly = FalseEnd SubEnd Class

 DataGridView事件触发时间顺序:CellEnter-->SelectionChanged-->CellBeginEdit--->CellLeave-->CellEndEdit-->Leave

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

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

相关文章

Qt/C++编写视频监控系统82-自定义音柱显示

一、前言 通过音柱控件实时展示当前播放的声音产生的振幅的大小&#xff0c;得益于音频播放组件内置了音频振幅的计算&#xff0c;可以动态开启和关闭&#xff0c;开启后会对发送过来的要播放的声音数据&#xff0c;进行运算得到当前这个音频数据的振幅&#xff0c;类似于分贝…

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频,详细介绍了 Oracle 代码生成

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频&#xff0c;详细介绍了 Oracle 代码生成 Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频。详细介绍了 Oracle 代码生成。即生成后端数据库为 Oracle 的 golang web 代码。并同时生…

hotspot源码角度看OOP之类属性的底层实现

问题分析 在计算机的世界里&#xff0c;一个问题的解决方案永远不止一种。但是取舍过后&#xff0c;最合适的只剩唯一。当然&#xff0c;你能想到的解决方案的多少&#xff0c;与你对这个问题的理解程度是息息相关的。对于一个问题的理解程度&#xff0c;与你的技术视野紧密不可…

一文读懂Solana 上最正统的铭文通证$mash

早在 2023 年的 11 月&#xff0c;包括 Solana、Avalanche、Polygon、Arbitrum、zkSync 等生态正在承接比特币铭文生态外溢的价值。当然&#xff0c;因铭文赛道过于火爆&#xff0c;当 Avalanche、BNB Chain 以及 Polygon 等链上 Gas 飙升至极值&#xff0c;Arbitrum、zkSync 等…

linux创建pyspark虚拟环境

一、创建虚拟环境 conda create -n test python3.6.6 二、注意添加镜像 vi /root/.condarc channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- http://mirrors.ustc.edu.cn/anaconda/pkgs/ma…

你的第一个C/S程序

目录 socket服务端代码客户端代码执行结果 socket socket基础知识 服务端代码 import socket import threading import timeMSG_LENGTH 64 DISCONNECTED !CONNECTION CLOSED connections 0#定义服务器地址 server_ip socket.gethostbyname(socket.gethostname()) server…

【金猿CIO展】现代咨询CIO崔恩博:数字化转型,CIO不仅要懂技术和业务,更要“懂人”...

‍ 崔恩博 本文由现代咨询CIO崔恩博撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 最近几年&#xff0c;大数据行业的发展备受关注&#xff0c;尤其是2019年以后&#xff0c;随着企业…

leetcode13 罗马数字转整数

题目描述&#xff1a;罗马数字由七种字符组成&#xff0c;分别为 I、V、X、L、C、D 和 M&#xff0c;对应的数值分别为 1、5、10、50、100、500 和 1000。在一般情况下&#xff0c;小的数字位于大的数字右边&#xff0c;但有特殊情况&#xff0c;如 IV 表示 4&#xff0c;IX 表…

【Mybatis系列】Mybatis判断问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Android studio BottomNavigationView 应用设计

一、新建Bottom Navigation Activity项目&#xff1a; 二、修改bottom_nav_menu.xml: <itemandroid:id"id/navigation_beijing"android:icon"drawable/ic_beijing_24dp"android:title"string/title_beijing" /><itemandroid:id"i…

Matlab进阶绘图第37期—多色悬浮柱状图

多色悬浮柱状图是一种特殊的柱状图。 与常规柱状图相比&#xff0c;多色悬浮柱状图可以通过悬浮的矩形展示最小值到最大值的范围&#xff08;或其他范围表达&#xff09;&#xff0c;并通过颜色进行美化/区分/附加信息。 本文使用自己制作的Floatingbar小工具进行多色悬浮柱状…

系列十、Spring Cloud Gateway

一、Spring Cloud Gateway 1.1、概述 Spring Cloud全家桶中有个很重要的组件就是网关&#xff0c;在1.x版本中采用的是Zuul网关&#xff0c;但是在2.x版本中&#xff0c;由于Zuul的升级一直跳票&#xff0c;Spring Cloud最后自己研发了一个网关替代Zuul&#xff0c;即&#xf…