我有一个文本框和一个名为Paste
的按钮。
我想仅在剪贴板包含文本时启用此按钮,而在剪贴板不包含时禁用它。
我试着写这段代码:
If My.Computer.Clipboard.ContainsText Then
Button7.Enabled = True
Else : Button7.Enabled = False
End If
我正在使用vb 2010,我将此代码放在与Button7
相关的所有命令之下
但是没有用。
我怎样才能使它工作,就在我从任何其他应用程序中选择文本并单击复制时,它就是从 禁用启用而无需重启程序?
答案 0 :(得分:0)
您可以使用Timer
每隔X秒或毫秒调用一个过程来检查剪贴板是否包含文本。
像这样的东西
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim CheckClipboard As New CallEveryXSeconds(1000) ' 1000 ms = 1 sec
CheckClipboard.Start()
End Sub
End Class
Public Class CallEveryXSeconds
Private WithEvents myTimer As New System.Windows.Forms.Timer
Public Sub New(TickValue As Integer)
myTimer = New System.Windows.Forms.Timer
myTimer.Interval = TickValue
End Sub
Public Sub Start()
myTimer.Start()
End Sub
Private Sub Tick() Handles myTimer.Tick
Procedure()
End Sub
Private Sub Procedure()
If Clipboard.ContainsText Then
Form1.Button7.Enabled = True
Else
Form1.Button7.Enabled = False
End If
End Sub
End Class