2015-05-06 83 views
1

我有一個文本框和一個名爲Paste的按鈕。僅當剪貼板包含文字時啓用粘貼按鈕

我想只在剪貼板中包含文本時啓用此按鈕,當它沒有時禁用它。

我試着寫這樣的代碼:

If My.Computer.Clipboard.ContainsText Then 
    Button7.Enabled = True 
Else : Button7.Enabled = False 
End If 

我用VB 2010,我把這段代碼有關的所有Button7 的命令下,但沒有奏效。

我怎麼才能使它工作,就在我從任何其他應用程序中選擇文本並單擊複製時,它從 禁用啓用而無需重新啓動程序?

+0

你可以嘗試創建另一個線程,甚至把它放在一個定時器。 'BackgtoundWorker'也可以做到這一點。可以連續或間隔運行該代碼段以定期檢查並更新Button的內容。 – Timmy

回答

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 
+0

適合我 –