Khi tôi thực hiện tìm kiếm thông qua toàn bộ dự án của tôi trong studio trực quan cho từ 'clipboard' tôi không tìm thấy kết quả phù hợp nào.Nhấp đúp vào Điều khiển nhãn .NET sao chép văn bản của nó vào khay nhớ tạm trên Vista +?
Tuy nhiên, chương trình của tôi dường như đang thay đổi nội dung trong khay nhớ tạm của tôi bằng với thuộc tính .text của điều khiển trên biểu mẫu của tôi. Làm sao có thể?
Tôi đã xác định trình xử lý mà sau đó khay nhớ tạm của tôi dường như luôn thay đổi và thêm hộp thông báo để lấy văn bản từ khay nhớ tạm của tôi để thử và xác định khi nào có thể thay đổi.
MessageBox.Show(Clipboard.GetText)
Ngay cả ở trên cùng của phụ xử lý sự kiện, khay nhớ tạm của tôi đã được thay đổi thành thuộc tính .text của điều khiển. Đây là phụ duy nhất xử lý sự kiện này và clipboard luôn thay đổi sau sự kiện này.
Đây là dự án winforms nhỏ được viết bằng vb.net.
Thông tin khác:
Khay nhớ tạm của tôi được đặt thành thuộc tính .text của nhãn khi tôi nhấp vào. Các nhãn được thực hiện ở đây:
For i = 0 To lstTupChildren.Count - 1
Dim lbl As New Label()
lbl.Size = New System.Drawing.Size(250, 25)
lbl.Font = New System.Drawing.Font("Calibri (body)", 10)
lbl.Text = i + 1 & ". " & lstTupChildren(i).Item1
lbl.Location = New System.Drawing.Point(0, 25 * i)
If lstTupChildren(i).Item3 = True Then lbl.BackColor = Color.GreenYellow Else lbl.BackColor = Color.Orange 'sets the colour depending on whether the timesheet is active'
Me.Controls.Add(lbl)
AddHandler lbl.DoubleClick, AddressOf subChangeTimesheetState 'adds handler for double click to change status
'adds handlers for moving the overlay
AddHandler lbl.MouseDown, AddressOf Form_MouseDown
AddHandler lbl.MouseMove, AddressOf Form_MouseMove
'adds handler for hide context menu'
AddHandler lbl.MouseClick, AddressOf subRightClickMenu
Next
ngay cả khi tôi nhận xét ra xử lý: AddHandler lbl.DoubleClick, AddressOf subChangeTimesheetState
clipboard của tôi vẫn còn thay đổi.
làm việc xung quanh có sẵn ở đây: Làm việc quanh đây: http://www.aspnet-answers.com/microsoft/NET-WinForms-Controls/32231136/double-click-label-and-its-text-appears-on-the-clipboard.aspx
Tạo một lớp mới kế thừa nhãn, mã vb:
Công Lớp mylabel
Inherits Label
Private WM_GETTEXT As Integer = &HD
Private WM_LBUTTONDBLCLK As Integer = &H203
Private doubleclickflag As Boolean = False
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_LBUTTONDBLCLK Then
doubleclickflag = True
End If
If m.Msg = WM_GETTEXT AndAlso doubleclickflag Then
doubleclickflag = False
Return
End If
MyBase.WndProc(m)
End Sub
End Class
Vì vậy, nếu bạn loại bỏ các xử lý, nó không thay đổi? –
Loại điều khiển nào? Chỉ cần một hộp văn bản hoặc cái gì khác? –
đó là một câu hỏi tuyệt vời @ZachJohnson – 5uperdan