求一段VB代码,关于textbox的控件参数。

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:27:11
问题来源:在一个窗体中有很多textbox控件,每一个textbox控件都有同样的功能,当单击textbox控件的前半部分时,textbox中的数值减小1,反之当单击后半部分时textbox中的值增加1。如果每一个textbox事件都要单独编一段单独的代码来实现的话就显得有些冗长,所以想通过空间参数来实现,做一个sub过程,每一个textbox只要调用在通用中已经做好的sub过程就可以了。
急用,还有重赏!
对于单独的textbox控件来说,mousedown事件可以轻松实现这个功能。但就不知道怎样把它做成一个函数,对每个textbox控件都能调用。

下面是用的不同的textbox控件, 如你所说, 有相同事件的控件,还是建议你使用控件数组,这样,就可以只传递过去数组控件中的index就可以实现加减了..

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Call TxtChange(Text1.Name, x)
End Sub

Private Sub Text2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Call TxtChange(Text2.Name, x)
End Sub

Private Sub Text3_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Call TxtChange(Text3.Name, x)
End Sub

Sub TxtChange(txtname As String, x As Single)
Me.Controls(txtname).Text = Val(Me.Controls(txtname).Text) + IIf(x > Me.Controls(txtname).Width / 2, 1, -1)
End Sub

一般来讲,控件的单击事件与单击控件的位置是没有关系的,但是通过代码也可以实现,给你一个思路:
1、检测控件textbox的Left、Top、Height、Width值;
2、检测鼠标的X值;
3、判断鼠标在textbox控件的位置:
IF X>TEXT1.Left AND X<TEXT1.Left+TEXT1.Width/2 THEN
鼠标在前半部分
IF X>=TEXT1.Left+TEXT1.Width/2 AND X<=TEXT1.Left+TEXT1.W