注册 登录
编程论坛 VB6论坛

请问,如何实现用鼠标点击文字框,文字框的底色就会变的方法

jrs123 发布于 2018-02-08 20:25, 3703 次点击
请问,实现用鼠标点击文字框,文字框的底色就会变的方法;
如单击(或双击)文字框,其底色就会变成另一种底色,再点击就恢复原来白色;如下图;
只有本站会员才能查看附件,请 登录

12 回复
#2
suzhanpeng2018-02-09 08:31
Dim n As Integer
Private Sub Text1_Click()
If n Mod 2 = 0 Then
    Text1.BackColor = &H80FF80
Else
    Text1.BackColor = &HFFFFFF
End If
n = n + 1
End Sub
#3
jrs1232018-02-09 18:57
谢谢suzhanpeng的回复;
运行该程序后,鼠标点击白底文字框会变成绿色,但再点击回不到白色底;
希望用鼠标点击能进行二种颜色的更换;
#4
xzlxzlxzl2018-02-09 21:06
Private Sub Text1_Click()
    Text1.BackColor = Text1.BackColor xor &Hcccccc
End Sub
#5
wds12018-02-09 21:16
设置public变量bz
Private Sub Text1_Click()
  if bz=0 then
    Text1.BackColor = vbgreen
    bz=1  
  else
   Text1.BackColor =vbwhite
   bz=0
  endif
End Sub
#6
jrs1232018-02-09 22:39
谢谢xzlxzlxzl回复,运行点击文本框没通过,结果是:实时错误,无效属性;
#7
jrs1232018-02-09 22:42
谢谢wdsl版主的回复,运行后点击文本框底变绿色,但再点它无反应,还是绿色,不知何故?
#8
suzhanpeng2018-02-10 08:26
应该是变量的声明问题,把变量声明全局变量。
#9
jrs1232018-02-10 10:17
谢谢各位的热情帮助!
上述程序目前还无法通过;

[此贴子已经被作者于2018-2-10 10:33编辑过]

#10
xzlxzlxzl2018-02-10 10:34
回复 6楼 jrs123
嗯,测试了下,主要是有24个系统色导致的颜色错误,把这24个颜色单独考虑就行了,如下代码可得到粉红色和白色之间的变换:
Private Sub Text1_Click()
  Dim a As Long
  a = Text1.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text1.BackColor = a
End Sub

#11
suzhanpeng2018-02-11 09:22
我不知道你的是怎么回事,这几个答案都通过测试!(xzlxzlxzl改正后可以通过)
#12
jrs1232018-02-14 10:11
谢谢xzlxzlxzl贵宾的程序,通过了!
Private Sub Text1_Click()
  Dim a As Long
  a = Text1.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text1.BackColor = a
End Sub
#13
jrs1232018-02-14 11:10
请问xzlxzlxzl,该组代码只对一个框起作用,多几个框,对其它框就没有反应了?如:
Private Sub Text1_Click()
   Dim a As Long
  a = Text1.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text1.BackColor = a
End Sub
Private Sub Text2_Click()
  Dim a As Long
  a = Text2.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text2.BackColor = a
End Sub

Private Sub Text3_Change()
 Dim a As Long
  a = Text3.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text3.BackColor = a
End Sub

Private Sub Text4_Change()
 Dim a As Long
  a = Text4.BackColor Xor &HCC10CC  '&HCC10CC可以变换为其他数字,只要在24位色范围内都行,及>&H0<&HFFFFFF
  If Not (a > &H80000019 And a < &H80000000) Then a = a And &HFFFFFF
  If a > 0 And a < 24 Then a = a Or &H80000000
  Text4.BackColor = a
End Sub
1