【问题标题】:how can i change the password character of the textbox during runtime [closed]如何在运行时更改文本框的密码字符[关闭]
【发布时间】:2014-10-13 08:14:52
【问题描述】:

我有我的登录表格,下面还有“更改密码”,我的老师建议我,如果我在旧密码文本框中输入旧密码,我会看到字符,但如果我离开那个文本框并且转到新密码文本框,字符应变为“*”。

我怎样才能做到这一点?

【问题讨论】:

  • 对不起,你能解释一下你的问题吗?我不明白。
  • 我在一个表单中有两个文本框,如果我在第一个文本框中输入,我可以看到我输入的所有字符,但如果我离开该文本框并在第二个文本框中输入第一个文本框的所有字符文本框变成“*”。

标签: c# sql-server


【解决方案1】:

首先,按照惯例,没有必要这样做。发生在移动设备上的唯一原因是,用大手指在小键盘上输入错误字符很容易。有机会快速预览最后输入的字符是非常可取的。在 WinForms 应用程序上,我从未遇到过这种可用性。但是,如果你真的想这样做,你需要创建一个自定义控件。问题是 PasswordChar 属性会屏蔽所有字符,不仅仅是最后一个字符。

您也许可以从 TextBox 继承并添加一个名为 TimedPasswordChar 的属性。然后订阅 ValueChanged 事件。在此处理程序中,如果 TimedPasswordChar 不为 null 或为空,则以 1000 毫秒的间隔启动一个 Timer 对象。在 Tick 事件处理程序中,在第一行停止计时器,将最后一个字符转换为 TimedPasswordChar。请记住,您需要将切换到 TimedPasswordChar 的每个字符添加到保存实际密码的私有成员变量中。鉴于它是密码,我建议使用 System.Security.SecureString。

就在您将最后一个字符转换为 TimedPasswordChar 之前,然后使用 .AppendChar(...) 添加输入的值。

如果用户编辑字符串,则有一点复杂化。您需要监控哪个字符串已被编辑,然后在安全字符串上使用 .RemoveAt(...) 以使其保持同步。

【讨论】:

  • 另请参阅此处以了解有关跟踪编辑的 TextChanged 事件的详细信息。 stackoverflow.com/questions/2574942/…
  • 谢谢。我想我明白了,它会帮助更多
  • 如果您需要,我们很乐意为您提供进一步帮助。保持联系。
  • 它有效 :) Maraming Salamat(谢谢的他加禄语)
  • 不用担心。顺便问一下,您能否将我的回复标记为回答您的问题?也可以对答案投票?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多