请教:点击按钮Enabled=False,鼠标指针称出按钮外Enabled=True
vb吧
全部回复
仅看楼主
level 1
zhaoshibai 楼主
点击按钮Command1.Enabled = False鼠标指针移出按钮外Command1.Enabled = True如何编写?
2005年08月28日 03点08分 1
level 0
楼上的不对应该是Private Sub Command1_Click()Command1.Enabled = FalseEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If X >= Command1.Left And X <= Command1.Left + Command1.Width And Y >= Command1.Top And Y <= Command1.Top + Command1.Height ThenElseCommand1.Enabled = TrueEnd IfEnd Sub
2005年08月28日 04点08分 3
level 1
zhaoshibai 楼主
三楼的利害
2005年08月28日 06点08分 4
level 1
If X >= Command1.Left And X <= Command1.Left + Command1.Width And Y >= Command1.Top And Y <= Command1.Top + Command1.Height ThenElseCommand1.Enabled = TrueEnd If可以改成If NOT(X >= Command1.Left And X <= Command1.Left + Command1.Width And Y >= Command1.Top And Y <= Command1.Top + Command1.Height) ThenCommand1.Enabled = TrueEnd If
2005年08月28日 06点08分 5
level 1
zhaoshibai 楼主
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Caption = "X:" & X & " Y:" & Y '这句可以不要If X < Command1.Left Or X > Command1.Left + Command1.Width Or Y < Command1.Top Or Y > Command1.Top + Command1.Height Then Command1.Enabled = TrueEnd Sub
2005年08月28日 06点08分 6
level 1
zhaoshibai 楼主
改成这样更少一点代码:If X < Command1.Left Or X > Command1.Left + Command1.Width Or Y < Command1.Top Or Y > Command1.Top + Command1.Height Then Command1.Enabled = True
2005年08月28日 06点08分 7
level 2
嗯……很好!
2005年08月31日 02点08分 8
level 6
其实都不用!大家来看哈利波特:http://phycn.com/herryeng.txt 因为,只要移出,就能碰到form的话。Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.Enabled= TrueEnd Sub Private Sub Command1_Click()Command1.Enabled = 1 + 2 + 3 + 4 - 10End Sub 但是,如果command不在form表层上,应该Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As LongPrivate Declare Function ReleaseCapture Lib "user32" () As Long '-----------------Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If X < Command1.Left Or X > Command1.Left + Command1.Width Or Y < Command1.Top Or Y > Command1.Top + Command1.Height Then Command1.Enabled= True ReleaseCaptureend ifEnd Sub Private Sub Command1_Click()Command1.Enabled = 1 + 2 + 3 + 4 - 10SetCapture me.hWndEnd Sub '''''''''''''''''所以说,各种情况解决办法不同,其中第二种最好,因为只要command是窗体上的空间就有用,因为如果command藏在picture里的话,鼠标出来也不见得到form上form更本不会mouse事件,只有这时SetCapture me.hWnd,form1才能控制鼠标'你们想得太简单了吧'这些代码我信手写的,打错字恕不负责
2005年08月31日 04点08分 9
level 6
一_鬼大哥,加精给我!
2005年08月31日 04点08分 10
level 1
zhaoshibai 楼主
利害,好复杂。。没想到!
2005年08月31日 04点08分 11
level 2
晕`~很不幸,9楼的方法不可行……
2005年08月31日 04点08分 12
level 2
不过1+2
+3
+4-10的方法很搞笑哦:)但是代码不是很高效`~
2005年08月31日 04点08分 13
level 6
我试了一遍,绝对可行!
2005年08月31日 04点08分 14
level 1
我试了一遍,绝对不行!
2005年08月31日 05点08分 15
level 1
zhaoshibai 楼主
Command1.Enabled = 1 + 2 + 3 + 4 - 10哈,这还不是 Command1.Enabled=0 等值 Command1.Enabled=Flash其实也不用讨论这个问题。要解决问题的办法也不是一个。只要解决就可以了。三楼的代码就足够。
2005年08月31日 06点08分 16
level 1
zhaoshibai 楼主
false 楼上打错 Command1.Enabled=False
2005年08月31日 06点08分 17
level 2
Flash?? :P
2005年08月31日 20点08分 18
1