以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教关于判断控件值的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27230)

--  作者:不倒的翁
--  发布时间:2012/12/25 20:45:00
--  请教关于判断控件值的问题
 想请教下狐表的前辈,除了用IF去判断窗口中控件的VALUE属性外。
用Select Case如何写???
我这样写对么??以下是我在一个窗口的按钮点击事件中添加的代码,在窗口的文本框输入数值时不写入列中,直到点击确认按钮启动下面的事件再进行添加数据操作。
Dim 111 As String = e.Form.Controls("TextBox1").Value \'给当前窗口的控件赋值
Dim 222 As String = e.Form.Controls("TextBox2").Value
Select Case e.Form.Controls
    Case "TextBox1"
        If 111 Is Nothing Then \'判断如果该控件没有输入数值
    MessageBox.Show("你没有输入数据,请输入.", "错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.Form.Controls("TextBox1").Select() \'提示并将光标焦点置于该控件
    End If
    Case "TextBox2"
        If 222 Is Nothing Then \'判断如果该控件没有输入数值
    MessageBox.Show("你没有输入数据,请输入.", "执行错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.Form.Controls("TextBox2").Select() \'提示并将光标焦点置于该控件
    End If
    Case Else
CurrentTable.Current("型号") =  e.Form.Controls("TextBox1").Value
CurrentTable.Current("规格") =  e.Form.Controls("TextBox2").Value
CurrentTable.Current.Save() \'保存当前行
CurrentTable.AddNew() \'新增一行用于连续输入数据
e.Form.Controls("TextBox1").Select() \'焦点定位
End Select
请各位前辈指教啊。。。

--  作者:布莱克朱
--  发布时间:2012/12/25 21:35:00
--  
Dim 111 As String = e.Form.Controls("TextBox1").Value \'给当前窗口的控件赋值
Dim 222 As String = e.Form.Controls("TextBox2").Value

if 111 ="" or 222="" then


end if

--  作者:不倒的翁
--  发布时间:2012/12/25 22:03:00
--  
 呃。用Select Case写法的话。取值应该如何????
--  作者:lin_hailun
--  发布时间:2012/12/26 9:38:00
--  
 Dim 111 As String = e.Form.Controls("TextBox1").Value \'给当前窗口的控件赋值
Dim 222 As String = e.Form.Controls("TextBox2").Value

If 111 Is Nothing Then \'判断如果该控件没有输入数值
    MessageBox.Show("你没有输入数据,请输入.", "错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.Form.Controls("TextBox1").Select() \'提示并将光标焦点置于该控件
Else If 222 Is Nothing Then \'判断如果该控件没有输入数值
    MessageBox.Show("你没有输入数据,请输入.", "执行错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
Else
    CurrentTable.Current("型号") =  e.Form.Controls("TextBox1").Value
    CurrentTable.Current("规格") =  e.Form.Controls("TextBox2").Value
    CurrentTable.Current.Save() \'保存当前行
    CurrentTable.AddNew() \'新增一行用于连续输入数据
    e.Form.Controls("TextBox1").Select() \'焦点定位
End If


--  作者:不倒的翁
--  发布时间:2012/12/26 11:21:00
--  
  LIN,对于窗口中控件值的判断是否只能使用IF语句???
--  作者:unverse
--  发布时间:2012/12/26 11:40:00
--  

Dim kjmc() As String \'控件名称
Dim kjmcjh As String = "Button1,Button2,Button3,Button4,Button5,Button6,Button7,Button8,Button9,Button10,Button11,Button01,Button02" \'控件名称集合
kjmc = kjmcjh.split(",")
For i As Integer=0 To kjmc.Length-1
    e.Form.Controls(kjmc(i)).BackColor = Color.fromargb(170,181,207,248)
           
Next

 

参照这个改改就可以,,,定义一个字符串,然后用SPLIT将其分到数组,,,,批量判断即可。。


--  作者:lin_hailun
--  发布时间:2012/12/26 11:58:00
--  
以下是引用不倒的翁在2012-12-26 11:21:00的发言:
  LIN,对于窗口中控件值的判断是否只能使用IF语句???


判断为空可以向上面那样。

不是因为不能使用select case,而是If更简单方便。

--  作者:不倒的翁
--  发布时间:2012/12/26 12:42:00
--  
学习了。感谢LIN和unverse