Скопировать по среднему клику и удалить выделение при копировании - PullRequest
0 голосов
/ 11 марта 2019

Я хочу, чтобы вы могли выделять текст, который вы хотите скопировать в моей программе, а также автоматически копировать его, в дополнение к CTRL-C.Итак пример.Если я выберу «это», то это автоматически копирует его в средний клик.Это мой код до сих пор.Я смотрел на событие среднего щелчка, но я не знаю, как его вызвать.Мне будет нравиться оператор if

, это мой код:

private void GetAnswer(string clipboardText)
{
  //Loop through all questions and answers
  foreach (question q in questionList)
  {
    //If we have found an answer that is exactly the same show an Notification
    //Startwith zoekt naar alle vragen die matchen vanaf het begin van de zin
    //en Endwith alle vragen die matchen vanaf het eind van de zin
    if (q._question.StartsWith(clipboardText) || q._question.EndsWith(clipboardText))
    {
      ShowNotification(q._question, q._answer);
      break;
    }   
  }
}

private void ShowNotification(string question, string answer)
{
  notifyIcon1.Icon = SystemIcons.Exclamation;
  notifyIcon1.BalloonTipTitle = question;
  notifyIcon1.BalloonTipText = answer;
  notifyIcon1.BalloonTipIcon = ToolTipIcon.Error;
  notifyIcon1.ShowBalloonTip(1000);
}

protected override void WndProc(ref Message m)
{
  base.WndProc(ref m);
  {
    const int WM_DRAWCLIPBOARD = 0x308;
    if (m.Msg == WM_DRAWCLIPBOARD)
    {
      GetAnswer(Clipboard.GetText(TextDataFormat.UnicodeText));
    }
  }
}

1 Ответ

1 голос
/ 11 марта 2019

Я думаю, что решение в обработке события KeyPress формы. Пример кода может выглядеть так:

     private void form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar==';')
            {
                //call whatever u want here
            }
        }

    private void form1_MouseClick(object sender, MouseEventArgs e)
    {
         if (e.Button == MouseButtons.Left)
         {
             //do whatever u want
         }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...