您的位置:首页 > 编程语言 > C#

C# WinForm TextBox 作为密码输入框时,如何禁止密码查看器获取密码 ?

2013-05-23 15:49 519 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
myTextBox1.CheckPass = myTextBox1.Handle.ToInt32() * 2;
String strText = myTextBox1.Text;
myTextBox1.CheckPass = 0;
MessageBox.Show(strText);
}
}

public class MyTextBox : TextBox
{
private Int32 _CheckPass;

public Int32 CheckPass
{
get
{
return _CheckPass;
}
set
{
_CheckPass = value;
}
}

protected override void WndProc(ref Message m)
{
if (m.Msg == 0x000D)
{
if (CheckPass != m.HWnd.ToInt32() * 2)
{
return;
}
}

base.WndProc(ref m);
}
}
}


在屏蔽WM_GETTEXT前加一个算法判断
应该是可以的,不过获取前后都要更新设置,麻烦,应该还能优化点
或者还有更好的方法

参考:http://bbs.csdn.net/topics/390087189
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: