2010-09-23 68 views
6

Estoy creando un formulario en C# y necesito mostrar texto en el formulario. Necesito que parte del texto aparezca en una lista desordenada y con viñetas. ¿Es posible hacer esto al usar una etiqueta? O un cuadro de texto enriquecido? No estoy usando ASP.NET y esto es para una aplicación de escritorio.Agregar viñetas de texto a un formulario de C#

Mi mensaje debe tener este aspecto:

Para continuar por favor selecciona una de las acciones siguientes:

  • Haga clic ButtonA para terminar esta acción.
  • Haga clic en BotónB para realizar esta acción.

Gracias!

Respuesta

13

sólo para añadir como una sugerencia a la OP, he encontrado que el uso de un StringBuilder para construir mensajes multilínea me ayuda a mantener el formato lineal:

StringBuilder messageBuilder = new StringBuilder(200); 

messageBuilder.Append("To continue, please select one of the actions below:"); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append("\t\u2022 Click Button A to do this action."); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append("\t\u2022 Click Button B to do this action."); 

MessageBox.Show(messageBuilder.ToString()); 
+0

Utilicé esta respuesta.Como nota al margen, no usé un MessageBox estándar ya que creé mi propio formulario como un cuadro de mensaje personalizado pseduo. Al agregar texto a la etiqueta no pude usar '\ t' y tuve que agregar los espacios manualmente. –

0

Sí se puede utilizar el texto a continuación:

const string text = @"To continue please selected one of the actions below: 

. Click ButtonA to do this action. 
. Click ButtonB to do this action."; 
label1.Text = text; 

Puede utilizar caracteres especiales para la bala, así como *.

2

Puede usar caracteres ASCII o UniCode y reformatear la cadena para reemplazar un carácter marcador con el carácter de formateo.

Decir que definió la cadena de este modo:

var myMessage = "To continue please selected one of the actions below: * Click ButtonA to do this action. * Click ButtonB to do this action." 

que podría hacer un Regex.Replace que buscó asteriscos y se convierte en balas:

var formattedString = Regex.Replace(myMessage, "\*", "\r\n \u2022"); 

Desde la cadena se definió en una línea , también colocamos una nueva línea ("\ r \ n").

+1

Un String.Replace normal() hará el trabajo igual de bien sin la necesidad de citar el "*" –

0

Puede usar un control WebBrowser. I.E .:

WebBrowser webBrowser1 = new WebBrowser(); webBrowser1.DocumentText 1 = "<li>Click ButtonA ...</li><li>Click ButtonB ...</li>"

2

Si usted echa un vistazo al mapa de caracteres (Inicio> Programas> Accesorios> Herramientas del sistema> Mapa de caracteres), puede localizar el "código" golpe de teclado para la mayoría de los personajes.

Para Texto Arial, el "Medio Dot" combinación de teclas es:

Alt+0183 

Para poner esto en su texto utilizando Visual Studio, mantenga pulsada la tecla Alt mientras se escribe en "0183" en el teclado numérico (no las teclas sobre la almohadilla alfa).

Esto debería darle "·" en el texto.

Eso es lo más cerca que he llegado.

Tenga en cuenta que se pueden incluir otros caracteres especiales (grados - Alt + 0176 °, derechos de autor - Alt + 0169 ©, y muchos otros) con esta técnica.

Cuestiones relacionadas