最近在写一个组件,
主要功能是,load窗体的时候,出现一个inputbox,然后输入100以内的10的倍数,
窗体上还有一个command和textbox,
按下command,textbox中产生0——输入数”之间的随机数,
我定义了一个function a()
x as integer,i as integer ,s as integer
x=val(inputbox("请输入100以内的10的倍数",i)
if x=10 then
randomize
s=rnd()*10
elseif x=20 then
……
endif
retrun s
end function,
在form1_load中有
function a(x as integer,s as integer, i as integer)
在command1_click中有
text1.text=str$(s)
可是在调试的时候出现错误“你定义的a存在二义性”,这是为什么?
还望各位兄弟指教,该怎么实现这个简单功能。

解决方案 »

  1.   

    呵呵,楼上的兄弟一定是C语言高手,VB里用函数不需要申明的,只要定义好函数体就可以直接调用的。
      

  2.   

    Dim intTemp As Integer
    Private Sub Command1_Click()
      Randomize
      Text1.Text = Int(Rnd() * intTemp)
    End Sub
    Private Sub Form_Load()
      intTemp = InputBox("Please input", "Input")
    End Sub
    这里是我写的,你看看能不能用,Form上有一个Command1按钮和一个Text1文本框,返回值是小于输入值且大于等于0的任意整数
      

  3.   

    Dim intTemp As Integer
    Private Sub Command1_Click()
      Randomize
      Text1.Text = Int(Rnd() * (intTemp) + 1)  '漏了+1
    End Sub
    Private Sub Form_Load()
      intTemp = InputBox("Please input", "Input")
    End Sub
    刚才写错了,改了下
      

  4.   

    刚才的程序没有对输入值进行判断,改进后如下
    Dim intTemp As Integer
    Private Sub Command1_Click()
      Randomize
      Text1.Text = Int(Rnd() * (intTemp + 1))    '输出结果
    End Sub
    Private Sub Form_Load()
      intTemp = 1
      Do While intTemp Mod 10 <> 0 Or intTemp > 100        '输入值不符合条件时继续要求输入
        intTemp = InputBox("Please input a number", "Input")
      Loop
    End Sub
      

  5.   

    如果你连输入值也需要包含在返回值中,那么需要+1的,+1加在()里面的,*Rnd之后又可能得到0的,因为Rnd有可能是0