首先 小弟菜鸟,
做了个登陆窗口 winform
我想实现 当密码框获得焦点时候。如果大写键打开,就会提示大写打开。
再网上搜了一下
在登陆按钮理加入以下代码
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.IsBalloon = true;
toolTip1.ToolTipIcon = ToolTipIcon.Warning;
toolTip1.ToolTipTitle = "Title";
toolTip1.SetToolTip(this.textBox1, "Text1\r\n\r\nText2");
编译成功 实现了我的需求!
但是奇怪的事情就是这样发生了
我删除上述代码
在重新编译
发现还是会提示大写键打开!
请高手告诉我 发生了什么事 谢谢!
缓存中没有清理。
请重新生成网站,或清理后再运行试试。
你的上述代码并不是验证“大写建是否打开的”。只是为textbox增加了一个点击登录打开“提示框”的作用。删除上述代码后,只是没有你声明的这个提示。依旧验证你的“大写打开?”
信息有限、无法做出判断。我这测试,没有发现你说的问题。还是贴出完整代码吧。
重新编译删除BIN中的exe,再运行下试试。你这个代码只是实现了提示框的功能,没有检查是否打开大写的功能。
可以参考一下方法判断:
[System.Runtime.InteropServices.DllImport("user32", EntryPoint = "GetKeyState")]
public static extern int GetKeyState(int intkey);
private void Form1_Load(object sender, EventArgs e){}
private void button1_Click(object sender, EventArgs e)
{
string strChenk = "NumLock键和CapsLock键是否锁定:\n";
int intNumLock = GetKeyState(144);//判断NumLock键
if(intNumLock==0)
{
strChenk+="NumLock键未锁定\n";
}
else
{
strChenk+="NumLock键已锁定\n";
}
int intCapsLock = GetKeyState(20);//判断CapsLock键
if (intCapsLock == 0)
{
strChenk += "CapsLock键未锁定\n";
}
else
{
strChenk += "CapsLock键已锁定\n";
}
MessageBox.Show(strChenk, "判断NumLock键和CapsLock键是否锁定");
}
建议你右键 项目 清除,然后再进行编译。同时注释掉与提示相关的代码部分,然后再重新编译...
相信结果就会完全改变了..
这功能压根就是TextBox自己的功能,和Tooltip没有一丁点关系,你这个Tooltip就和不存在一样