以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]密码框 显示图片的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72868) |
-- 作者:dxjwlf -- 发布时间:2015/8/7 18:50:00 -- [求助]密码框 显示图片的问题 一个窗口,一个文本框,用于输入密码。两个图片框,一个正确,一个错误。 要实现,输入密码正确时,就显示 正确的图片框。 结果 为什么 只能显示正确的图片,输入错误时,错误的图片却不显示。 我在窗口 afterload 写如下代码 : e.Form.Controls("PictureBox1").Visible = False e.Form.Controls("PictureBox2").Visible = False 在value changed 写入: Dim mm As WinForm.TextBox = e.Form.Controls("密码") If mm.Value = "123456" Then e.Form.Controls("PictureBox1").Visible = True e.Form.Controls("PictureBox2").Visible = False End If If mm.Value <> "123456" Then e.Form.Controls("PictureBox1").Visible = False e.Form.Controls("PictureBox2").Visible = True End If |
-- 作者:有点蓝 -- 发布时间:2015/8/7 19:10:00 -- 应该不会啊 ValueChanged是要光标离开文本框才执行的
|
-- 作者:有点蓝 -- 发布时间:2015/8/7 19:13:00 -- Dim pbx AS WinForm.PictureBox pbx = Forms("窗口1").Controls("PictureBox1") 你用 If mm.Value = "123456" Then pbx.Image = GetImage("正确.bmp") else pbx.Image = GetImage("错误.bmp") end if
|
-- 作者:大红袍 -- 发布时间:2015/8/7 20:30:00 -- 写到TextChanged事件。
mm.Value 改成 mm.Text |
-- 作者:dxjwlf -- 发布时间:2015/8/7 21:22:00 -- 很遗憾,两个人的回复,都没有解决问题。。不过感谢了 |
-- 作者:有点蓝 -- 发布时间:2015/8/7 21:27:00 -- 不会吧,传示列上来看看 |
-- 作者:dxjwlf -- 发布时间:2015/8/7 21:39:00 -- 反复 测试 无意中得到正确答案: 感谢有点蓝,你的思路。代码简化了 Dim mm As WinForm.TextBox = e.Form.Controls("密码") Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1") Select Case mm.Value Case mm.Value Is Nothing pbx.Visible = False Case mm.Value = "123456" pbx.Visible = True pbx.Image = GetImage("对勾.png") Case mm.Value <> "123456" pbx.Visible = True pbx.Image = GetImage("关闭.png") End Select |
-- 作者:dxjwlf -- 发布时间:2015/8/7 21:44:00 -- Case mm.Value Is Nothing pbx.Visible = False 这一句有没有意义,值得思考,不过太累了。不想在弄了。 打开窗口时,密码就是空值。 我在窗口 afterload 写如下代码 : e.Form.Controls("PictureBox1").Visible = False 好象没有必要在加上这一句。 在value changed 写入: Dim mm As WinForm.TextBox = e.Form.Controls("密码") Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1") Select Case mm.Value Case mm.Value = "123456" pbx.Visible = True pbx.Image = GetImage("对勾.png") Case mm.Value <> "123456" pbx.Visible = True pbx.Image = GetImage("关闭.png") End Select
|
-- 作者:dxjwlf -- 发布时间:2015/8/7 21:48:00 -- 新的问题出现: 如果你输入的是数字,运行正确。 如果你输入的是 km123456 这时弹出: 从字符串“km123456”到类型“Boolean”的转换无效。 无语 |
-- 作者:dxjwlf -- 发布时间:2015/8/7 22:05:00 -- 正确代码: 窗口 afterload e.Form.Controls("PictureBox1").Visible = False value changed 写入 : Dim mm As WinForm.TextBox = e.Form.Controls("密码") Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1") If mm.value = "gs123456" Then pbx.Visible = True pbx.Image = GetImage("对勾.png") Else pbx.Visible = True pbx.Image = GetImage("关闭.png") End If |