2009-01-12 16 views
41

cuando agrego www.stackoverflow.com en mi RichTextBox y ejecutar el programa que se muestra en azul y como un hipervínculo sin embargo, cuando hago clic en él no pasa nada. ¿Cómo puedo arreglar esto?¿Cómo puedo hacer que un hipervínculo funcione en un RichTextBox?

+0

http://stackoverflow.com/questions/762271/clicking-hyperlinks-in-a-richtextbox-without-holding-down-ctrl-wpf es la mejor para este hilo he encontrado (hasta ahora) –

Respuesta

2

Es yourTextBox.DetectUrls conjunto de cierto? Es posible que necesitemos más información para proporcionar una mejor respuesta.

9

clase RichTextBox le permite personalizar su comportamiento cuando el usuario hace clic en el hipervínculo. Añadir un controlador de eventos para el evento RichTextBox.LinkClicked

Process p = new Process(); 

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) 
{ 
    p = Process.Start("IExplore.exe", e.LinkText); 
} 
2

Usted debe asegurarse de que DetectUrls se establece en true. Si eso no funciona por sí solo, es posible que deba agregar un controlador para el evento LinkClicked.

+0

No es posible encontrar la propiedad DetectUrl en RichTextBox – user2323308

+0

la propiedad DetectUrl es sólo en la versión de Windows Forms de RichTextBox. La versión de WPF no tiene esta propiedad. Tratar este enlace: http://stackoverflow.com/questions/762271/clicking-hyperlinks-in-a-richtextbox-without-holding-down-ctrl-wpf – Drew

118
  1. Asegúrate de que la propiedad del texto incluya una URL válida. P.ej. http://www.stackoverflow.com/

  2. establecer el DetectUrls propiedad a cierto

  3. Escribir un controlador de eventos para el LinkClicked evento.

Personalmente, no pasaría "Iexplore.exe" como parámetro a la Process.Start llamada como Microsoft asesoramiento ya que esto presupone que está instalado, y es el navegador preferido por el usuario . Si acaba de pasar la url para procesar el inicio (como se indica a continuación), Windows hará lo correcto y activará el navegador preferido del usuario con la URL correspondiente.

private void mRichTextBox_LinkClicked (object sender, LinkClickedEventArgs e) { 
    System.Diagnostics.Process.Start(e.LinkText); 
} 
+0

¿Es posible que la UNC, senderos como E: \ Mis documentos \ Logs \ log1.log? – Kiquenet

+1

@Kiquenet - no estoy seguro, pero trate de usar una entrada del archivo de formulario: //// e: /My%20Documents/Logs/log1.log –

+6

Esto puede ser un grave riesgo de seguridad. Una mejor manera es: 'System.Diagnostics.Process.Start ("explorer.exe", e.LinkText);' – Christian

Cuestiones relacionadas