以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]条件判断的难题,求助~~~~  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19401)

--  作者:qq121454970
--  发布时间:2012/5/8 17:11:00
--  [求助]条件判断的难题,求助~~~~

想请教一个问题,可不可以在窗口中的文本框(会员名称)中的Validating属性里用一段代码,可以达到我想要的效果,

 我用的是独占式编辑,在窗口A中的“会员名称”文本框中

如果离开文本框时,但是并没有修改数据的话,则不执行我的代码,如果修改了文本框中的数据,在离开文本框时,则执行我的代码

 

 

详细说明:

在文本框中的Validating中的代码

’如果文本框中的数据被修改,则执行下面这段代码,如果没被修改,则不执行下面的代码

      If e.Form.Controls("会员名称").Value = "" Then
Else
    Dim cmd As New SQLCommand
    Cmd.C
    Cmd.CommandText = "Select COUNT(会员名称) From [订单数据] Where 会员名称 = \'" & e.sender.value & "\'"
    If cmd.ExecuteScalar() > 1 Then
        Dim Result As DialogResult
        Result = MessageBox.Show("已有此会员的信息是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.NO Then
            e.sender.value = ""
        Else
        End If
    End If
End If

这个判断到底该怎么做,求解决哈图片点击可在新窗口打开查看

[此贴子已经被作者于2012-5-8 17:14:55编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/5/8 18:01:00
--  
应该在确定按钮判断,例如:
 
 
"确定"按钮的代码设置为:
Dim UserName As String = e.Form.Controls("UserName").Value
Dim UserGroup As String = e.Form.Controls("UserGroup").Value
Dim PassWord As String = e.Form.Controls("PassWord").Value
Dim cmd As New SQLCommand
cmd.C
If UserName = "" OrElse UserGroup = "" Then
    Messagebox.show("请输入用户名和用户分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select Count(*) From {Users} Where Name = \'" & UserName & "\'"
If cmd.ExecuteScalar > 0 Then
    Messagebox.show("增加用户失败,已经能存在同名用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Insert Into {Users} ([Name],[Group],[Password]) Values (\'"
cmd.CommandText = cmd.CommandText & UserName & "\',\'" & UserGroup & "\',\'" & Password & "\')"
If cmd.ExecuteNonQuery = 1 Then \'返回1表示增加成功
    If Forms("用户管理").Opened Then
        With Forms("用户管理").Controls("ListBox1")
            .Items.Add(UserName)
            .SelectedIndex = .Items.Count -1
        End With
    End If
    e.Form.Close()
End If

--  作者:qq121454970
--  发布时间:2012/5/8 18:05:00
--  回复:(狐狸爸爸)应该在确定按钮判断,例如:?...
我要判断的是内容是否被修改(文本框是绑定到列的)。也可以用这种?可以给我一个例子吗?
[此贴子已经被作者于2012-5-8 18:06:20编辑过]

--  作者:qq121454970
--  发布时间:2012/5/8 22:04:00
--  

在线等待中......


--  作者:狐狸爸爸
--  发布时间:2012/5/8 22:15:00
--  

你在可以Enter事件中将当前值写入一个public变量或Var变量,在Validating事件中将当前值和这个变量进行比较,就知道是否已经做出修改了。

 


--  作者:qq121454970
--  发布时间:2012/5/9 12:33:00
--  
可以给我一个具体的例子吗?我是新手图片点击可在新窗口打开查看
--  作者:qq121454970
--  发布时间:2012/5/10 11:12:00
--  回复:(狐狸爸爸)你在可以Enter事件中将当前值写入一...
狐爸,你是我的天使,救救我吧图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2012/5/10 11:58:00
--  

定义一个全局变量,在全局代码中加入代码:

 

Public hjjk As String

 

在这个文本框的Enter事件中设置代码:

 

hjjk = e.Sender.Value

 

在Valdating事件中:

 

If  hjjk = e.Sender.Value Then

    Messagebox.Show("你改了啊")

End If

 

定义全局变量,参考:

http://www.foxtable.com/help/topics/1842.htm

 

End if