搜索
bottom↓
回复: 18

求助:C#编写的密码显示与不显示反应慢

[复制链接]

出590入992汤圆

发表于 2020-5-30 16:21:53 | 显示全部楼层 |阅读模式
最近在写一个C#的电脑软件。
其中一行是输入密码的,后面跟着一个“眼睛’”:就是类似手机上填写密码的时候,按下眼睛可以显示密码,再按一下不显示密码。

用的方法是:
用两个图片:一个睁眼的图片,一个闭眼的图片,然后:点击的时候,来回切换。

实际中:就是感觉反应比较慢,手机上的一直点都没事,但是我自己写的:感觉0.8S左右才切换过来。
请教:就是什么原因,另外:求教好方法!!



代码如下:
  1. private void pic_hidden0_Click(object sender, EventArgs e)
  2.         {
  3.             PictureBox pic = (PictureBox)sender;
  4.             int txbTag = int.Parse(pic.Tag.ToString());
  5.             foreach (Control ctl in this.gb_encrypt.Controls)
  6.             {
  7.                 if ((ctl as GroupBox) != null)
  8.                 {
  9.                     foreach (Control c in ctl.Controls)
  10.                     {
  11.                         if ((c as TextBox) != null)
  12.                         {
  13.                             TextBox txb = c as TextBox;
  14.                             if (int.Parse(txb.Tag.ToString()) == txbTag)
  15.                             {
  16.                                 if (txb.PasswordChar != '*')
  17.                                 {
  18.                                     txb.PasswordChar = '*';
  19.                                     pic.Image = USB_LIN.Properties.Resources.eyeHidden;
  20.                                 }
  21.                                 else
  22.                                 {
  23.                                     txb.PasswordChar = '\0';
  24.                                     pic.Image = USB_LIN.Properties.Resources.eyeShow;
  25.                                 }
  26.                             }
  27.                         }
  28.                     }
  29.                 }
  30.             }
  31.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入984汤圆

发表于 2020-5-30 16:33:41 | 显示全部楼层
本帖最后由 Himem 于 2020-5-30 19:43 编辑

同样位置放两个PictureBox叠在一起,Image分别是眼睛的两张图,
靠改Visible属性来切换显示试试

出0入168汤圆

发表于 2020-5-30 16:39:32 | 显示全部楼层
现在WIN10下装VS哪个版本好用点?

出0入0汤圆

发表于 2020-5-30 17:14:03 | 显示全部楼层
两个foreach 迭代完了才转让控制权给系统, 这时才刷界面.

出590入992汤圆

 楼主| 发表于 2020-5-30 17:19:08 | 显示全部楼层
深圳嘉立创-SMT 发表于 2020-5-30 17:14
两个foreach 迭代完了才转让控制权给系统, 这时才刷界面.

总共有3个需要切换,那怎样写才比较好呢,现在用的foreach,代码相对少点,而且里面控件也不多。

出0入0汤圆

发表于 2020-5-30 17:24:35 | 显示全部楼层
把切换图片这个动作放在另外一个新线程里试试??

出0入0汤圆

发表于 2020-5-30 18:08:00 | 显示全部楼层
SUPER_CRJ 发表于 2020-5-30 17:19
总共有3个需要切换,那怎样写才比较好呢,现在用的foreach,代码相对少点,而且里面控件也不多。 ...

没看懂这两个嵌套迭代是干嘛的.我也不知道怎么改.

出0入0汤圆

发表于 2020-5-30 18:40:02 | 显示全部楼层
            if(密码可见)
                textBoxPSW.PasswordChar = '\0';
            else
                textBoxPSW.PasswordChar = '*';
好像只要这样就可以了吧

出40入514汤圆

发表于 2020-5-30 19:30:29 | 显示全部楼层
试下先把两句 pic.Image=xxx; 改成某label.text=xx;看会不会也是有延时,如果有的话是你上面判断执行时间长的问题,如果没有则就是更换图片的时延问题。图片更换延时,1是可能界面太复杂刷新的时间太长,2会不会你硬盘有点老,读取图片资源会比较慢?试下先把图片load进缓存

出590入992汤圆

 楼主| 发表于 2020-5-30 21:52:35 | 显示全部楼层
智涅 发表于 2020-5-30 19:30
试下先把两句 pic.Image=xxx; 改成某label.text=xx;看会不会也是有延时,如果有的话是你上面判断执行时间长 ...

最后测试发现是这样的:
图片用的pictureBox,然后用的click事件进行处理的,最后发现是:click事件太慢造成的。 (最后换成button就很快!)
请教:为什么pictureBox的click慢,而button的click比较快?

出590入992汤圆

 楼主| 发表于 2020-5-30 22:01:43 | 显示全部楼层
深圳嘉立创-SMT 发表于 2020-5-30 18:08
没看懂这两个嵌套迭代是干嘛的.我也不知道怎么改.

最后测试发现是这样的:
图片用的pictureBox,然后用的click事件进行处理的,最后发现是:click事件太慢造成的。 (最后换成button就很快!)
请教:为什么pictureBox的click慢,而button的click比较快?

出100入95汤圆

发表于 2020-5-30 22:33:08 | 显示全部楼层
试试MouseDown事件,函数里面判断一下左键

出870入263汤圆

发表于 2020-5-30 22:33:16 | 显示全部楼层
本帖最后由 armstrong 于 2020-5-30 22:34 编辑

你是不是指picturebox快速连按时候反应慢?我发现click事件其实很及时,如果你按的间隔不要太快的话。
按钮是不接受双击的,所以快速连按都很快;而picturebox会把你快速连按识别为双击事件。
你看看:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出590入992汤圆

 楼主| 发表于 2020-5-30 22:37:32 | 显示全部楼层
fszhang 发表于 2020-5-30 22:33
试试MouseDown事件,函数里面判断一下左键

MouseDown其实刚刚也试过了,一样的慢。

出0入76汤圆

发表于 2020-5-30 23:40:13 | 显示全部楼层
本帖最后由 foxpro2005 于 2020-5-30 23:47 编辑
SUPER_CRJ 发表于 2020-5-30 22:37
MouseDown其实刚刚也试过了,一样的慢。


你这里应该是用Button类控件(或Label也可以),而不是用Pic,想想Pic的本质是什么

出590入992汤圆

 楼主| 发表于 2020-5-31 11:03:03 | 显示全部楼层
foxpro2005 发表于 2020-5-30 23:40
你这里应该是用Button类控件(或Label也可以),而不是用Pic,想想Pic的本质是什么

...

pic的本质是什么?C#全靠自学,没有系统培训过!

出590入992汤圆

 楼主| 发表于 2020-5-31 11:04:00 | 显示全部楼层
armstrong 发表于 2020-5-30 22:33
你是不是指picturebox快速连按时候反应慢?我发现click事件其实很及时,如果你按的间隔不要太快的话。
按钮 ...

说的有道理,我怎么没想到?那么如何屏蔽:pictureBox的双击事件呢?

出590入992汤圆

 楼主| 发表于 2020-5-31 11:08:49 | 显示全部楼层
armstrong 发表于 2020-5-30 22:33
你是不是指picturebox快速连按时候反应慢?我发现click事件其实很及时,如果你按的间隔不要太快的话。
按钮 ...

经过测试,确实是因为双击事件造成的!
最后:把click和doubleClick都写进同一个事件,就变得相当快了!

出15入186汤圆

发表于 2020-6-1 08:22:23 | 显示全部楼层
两个图片资源申明为窗体级public变量,提前加载,否则从资源中动态加载有些慢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 21:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表