首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

高人们,请帮忙看一下.(解决就结帐,200分),该怎么解决

2012-01-12 
高人们,请帮忙看一下......(解决就结帐,200分) MSForms.ReturnInteger这个类型的变量,如何附值.... [解决

高人们,请帮忙看一下......(解决就结帐,200分)

MSForms.ReturnInteger
这个类型的变量,如何附值....


[解决办法]
Private Sub CustomerId_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < Asc( "0 ") Or KeyAscii > Asc( "9 ") Then
KeyAscii = 0

End If

End Sub
[解决办法]
没找到方法,支持楼主。

http://www.excelforum.com/showthread.php?t=500400
这里跟同样的问题
[解决办法]
不能变通吗?你要干什么?
[解决办法]
KeyPress是截获键盘按键消息,你应该发送一个消息来触发这个事件
[解决办法]
例如

postmessage hwnd,WM_KEYDOWN,65,0
[解决办法]
MSForms.ReturnInteger
没看懂
[解决办法]
给你个变通的方法
Private key As Integer

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii Is Nothing Then
TextBox1.SetFocus
SendKeys Chr(key)
Else
If KeyAscii > 57 Or KeyAscii < 48 Then KeyAscii = 0
End If
End Sub

Private Sub UserForm_Click()
Dim a As MSForms.ReturnInteger
key = 48 + Rnd * 10
Call TextBox1_KeyPress(a)
End Sub

[解决办法]
Option Explicit

Dim r As ReturnInteger

Private Sub UserForm_Click()
r.Value = 333  '真正的赋值
MsgBox r.Value
End Sub

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Set r = KeyAscii
End Sub

[解决办法]
实际上,我们之所以不能对ReturnInteger赋值,是因为无法对ReturnInteger类实例化!(DIM R AS NEW ReturnInteger 也不行)
而UserForm_KeyPress则可以对其实例化!实例化以后,就可以对ReturnInteger进行操作了!
实际应用中,不可能先按个键再进行其它操作,变通方法是用 sendkeys 向自己窗口发送一个按键,然后就可以使用ReturnInteger了
[解决办法]
楼上说的太正确了

热点排行