仅当剪贴板包含文本

时间:2015-05-06 12:58:15

标签: vb.net button clipboard

我有一个文本框和一个名为Paste的按钮。

我想仅在剪​​贴板包含文本时启用此按钮,而在剪贴板不包含时禁用它。

我试着写这段代码:

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

我正在使用vb 2010,我将此代码放在与Button7相关的所有命令之下 但是没有用。

我怎样才能使它工作,就在我从任何其他应用程序中选择文本并单击复制时,它就是从 禁用启用而无需重启程序?

1 个答案:

答案 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