2012-10-01 6 views
0

C#의 richtextbox에 링크가 있습니다. URL 링크를 클릭하면 메뉴를 표시하려고합니다. URL이 아닌 경우 아무 것도 표시하고 싶지 않습니다. 지금 마우스 다운 이벤트를 선택하고 마우스 포인터 위치를 기준으로 선을 선택하고 선택한 선이 유효한 URL 인 경우 메뉴를 표시합니다. 그것은 잘 작동하지만 URL 옆에 텍스트가있을 때 여전히 유효한 url로 라인이 감지되고 메뉴가 나타납니다. 또한 마우스 변경 이벤트를 사용할 수 없습니다. 내가하려는 일을 어떻게 성취 할 수 있을지에 대한 아이디어가 있습니까?richtext 상자의 URL에서 이벤트를 마우스 오른쪽 단추로 클릭하십시오.

감사합니다,

답변

1

이 당신을 위해 무엇을 찾고 있습니다,하지만 난 당신보다 더 찾을 수 있다고 생각하는 경우 확실하지 않음이

MouseDown를 호출 할 때이 작업을 시도 할 수

private void richTextBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    // Continue if the Right mouse button was clicked 
    if (e.Button == MouseButtons.Right) 
    { 
     // Check if the selected item starts with http:// 
     if (richTextBox1.SelectedText.IndexOf("http://") > -1) 
     { 
      // Avoid popping the menu if the value contains spaces 
      if (richTextBox1.SelectedText.Contains(' ')) 
      { 
       // Show the menu 
       contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y); 
      } 
     } 
    } 
} 

또는이 링크를 클릭 할 때, 그러나 이것은 마우스에 대한 적용되지 않습니다 마우스 오른쪽 단추로 클릭

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) 
{ 
    contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y); 
} 

고마워,

나는 이것이 도움이되기를 바랍니다.

관련 문제