以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 求助一段关于判断当前窗口点击控件的代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73707)

--  作者:liuxianjie1980
--  发布时间:2015/8/25 9:46:00
--  [求助] 求助一段关于判断当前窗口点击控件的代码

如题:

代码意图如下:

 

如果点击了当前窗口的“取消”控件

则  执行“取消”控件的代码内容


--  作者:大红袍
--  发布时间:2015/8/25 9:50:00
--  
 直接去编写控件的click事件。
--  作者:liuxianjie1980
--  发布时间:2015/8/25 10:07:00
--  

If e.Sender.Value IsNot Nothing AndAlso e.Sender.Value<>"请输入用户名" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow
    cmd.C
    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = \'" & e.Form.Controls("UserName").Value & "\'"
    dt = cmd.ExecuteReader
    If dt.DataRows.Count = 0 Then
        Messagebox.show("此用户名不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return
    End If
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(dr("用户照片"))
Else
\'If e.Forms.controls("Button2").click=True Then
\'
\'
\'Else
    \'Messagebox.show("请先输入用户名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
\'End If
End If

 

 

红色是想加入的部分,因为:如果登录窗口打开后,输入用户名或者清空用户名后,突然不想进入项目了,就点击取消按钮,这个就发生这种情况:先弹出“请输入用户名”,然后再点击取消才能关闭项目


--  作者:大红袍
--  发布时间:2015/8/25 10:11:00
--  

1、你的msgbox判断应该写在登陆按钮里面,而不是写在控件leave等事件;

 

2、你不应该用msgbox提示,你可以用label的来提示


--  作者:liuxianjie1980
--  发布时间:2015/8/25 10:21:00
--  

红袍兄:1.这段代码是写在用户名的那个textbox的控件vALIDATING事件中的。刚才看了该事件的提示:

但是验证也有例外的时候,例如窗口中通常有一个取消按钮,单击这个按钮,最好不用执行任何控件的Validating事件,否则我明明需要取消操作,却还得在取消之前输入一些内容,这不符合通常的操作习惯。为解决这个问题,只需在窗口设计的时候,将这个按钮的"执行验证"属性设为False即可,该属性位于“行为”分组中。

 

我现在遇到的就是这个情况,明明直接取消就ok 了,系统非要先弹出对话框。

 

所以我想加一段代码:由于判断是不是点击的是取消按钮,如果不是可以弹出对话框,如果是则执行取消代码直接退出


--  作者:liuxianjie1980
--  发布时间:2015/8/25 10:23:00
--  

当然,我肯定是想执行一些验证操作的,所以false的解决方案就不接受了


--  作者:大红袍
--  发布时间:2015/8/25 10:47:00
--  

 不要写Validating事件,或者不要用messagebox弹出消息,换一种提示的方式。

 

 没有其他方法