Страницы: 1
RSS
Буфер обмена и TextBox
 
Есть форма на ней есть TextBox, для ввода данных с клавиатуры, но часто необходимо вставить данные из буфера обмена. Как программно по правому клику мыши вызвать контекстное меню и ввести данные из буфера обмена?  
 
при открытии можно вызвать контекстное меню
Код
Private Sub Workbook_Open()
    frm_main.Show
End Sub

ввести данные из буфера зависит от конкретной задачи
где ваш пример?
 
Это надо программно создавать меню (тип Popup), а в обработчике текстбокса для нажатия кнопки мыши, проверять, что нажата правая кнопка (Button=2), и отображать это контекстное меню

Вариант попроще (я обычно так делаю в своих программах) - сделать рядом с текстбоксом кнопку (с картинкой 16*16 paste.jpg из интернета),
и назначить этой кнопке код:

Код
sub CommandButton1_Click()
 With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        me.textbox1 = .GetText
    End With
end sub 
 
А сочетание Ctrl+V юзерам неизвестно?
 
Hugo, тебе это только кажется, что всем про это известно
По факту же, практически все пользуются контекстным меню (даже те, кто много с компом работает, и, вроде, неплохо соображает)
Потому, если надо вставлять что-то из буфера обмена, меня всегда просят сделать кнопку
(об использовании Ctrl + V речи вообще не идёт) Просто сейчас вырасло поколение, которое вообще не использует клавиатуру...
 
Цитата
Игорь пишет:
Просто сейчас вырасло поколение, которое вообще не использует клавиатуру...
Замечал такое...
Но это ведь так долго - нажать ПКМ, ждать пока прочухается система (мне всегда везёт с этим ожиданием, т.к. контекстными меню пользуюсь редко), затем выбрать нужный пункт, затем снова нажать мышь..
Быстрее правой рукой выбрать текстбокс, левой тут же Ctrl+V. Если не левша...
И ведь они обучаемы - я одну бабульку обучил Ctrl+C/Ctrl+V  :)
 
Спасибо всем кто ответил. Вариант который предложил Игорь подходит на 100%. Если честно о Ctrl+V не знал, возьму на заметку. Еще раз спасибо. Тема закрыта.
Страницы: 1
Читают тему
Наверх