c# string dictionary colors richtextbox

c# - Cambiando el color de la cuerda



string dictionary (3)

Agregue una referencia al KVP en el diccionario a la propiedad Etiqueta del cuadro de texto. Cuando el usuario cambia el color, obtenga el KVP de la propiedad Etiqueta y cambie el valor en el KVP. Proporciono información sobre la propiedad Etiqueta en mi blog C # Winforms y la etiqueta Hidden Association . WPF / Silverlight también usa la propiedad Etiqueta en los controles también ..

--- Editar por solicitud de usuario ---

No estoy seguro de por qué necesita enumerar un diccionario. El objetivo de un diccionario es obtener rápidamente la clave. Mi ejemplo usa eso y no hace el ciclo for.

... La ubicación de inicialización ...

var myDictionary = new Dictionary<string, Tuple<string, System.Drawing.Color>>() { { "Black", new Tuple<string,System.Drawing.Color>("White", Color.Green) }, { "White", new Tuple<string,System.Drawing.Color>("Black", Color.Red) } };

... (más tarde en el código) ...

vacío privado btnTrans_Click (remitente del objeto, EventArgs e)
{

var key = inputBx.Text; // Let us say "White" if (myDictionary.ContainsKey(key)) { var targetColor = myDictionary[key]; // Just get the value outputBx.Select(0, targetColor.Item1.Length); outputBx.SelectionColor = targetColor.Item2; outputBx.Text = targetColor.Item1; } else { outputBx.Text = "Unknown"; }

}

Eche un vistazo al artículo de mi blog sobre diccionarios para más información Trucos del diccionario C #

De acuerdo, este es un resumen de mi última pregunta, pero tengo el código:

private void btnTrans_Click(object sender, EventArgs e) { var abrvStr = inputBx.Text; foreach (var kvp in d) { abrvStr = abrvStr.Replace(kvp.Key, kvp.Value); } outputBx.Text = abrvStr; }

Básicamente es parte de un programa de diccionario, de modo que cuando ingresa una línea de texto en el cuadro de texto 1 aparece en el cuadro de texto 2 con una palabra reemplazada del cuadro de texto 1 en el dicitonario. Entonces, si el negro, el blanco está en el diccionario y yo entro, el muro es negro. La pared es blanca aparecerá en el cuadro de texto 2. Así que todo está bien.

En este momento la parte difícil, ¿cómo voy a modificar eso para permitirme tener la palabra modificada en el cuadro de texto 2 como el color rojo. Entonces en mi ejemplo anterior, la pared es blanca . Blanco sería rojo en la línea de salida de texto.

Tenga en cuenta que estoy usando RichTextBoxes

C # Language!


Puede usar la propiedad SelectionColor de RichTextBox . Comience seleccionando la palabra que desea formatear

string word = "white"; int start = richTextBox1.Find(word); if (start >= 0) { richTextBox1.Select(start, word.Length); richTextBox1.SelectionColor = Color.Red; }


Para construir sobre la respuesta de Oliver Jacot-Descombes :

private void btnTrans_Click(object sender, EventArgs e) { var abrvStr = inputBx.Text; foreach (var kvp in d) { abrvStr = abrvStr.Replace(kvp.Key, kvp.Value); int start = abrvStr.IndexOf(kvp.Value); if(start >= 0) { richTextBox1.Text = abrvStr; richTextBox1.Select(start, kvp.Value.Length); richTextBox1.SelectionColor = Color.Red; } } }

Utilizaría una declaración de cambio en el valor del diccionario para obtener el color que desea cambiar la selección. Tendrá que modificar eso para que se ajuste a los valores de su diccionario, así como a los colores que desee.