Ich versuche, Richtextboxen zu verwenden, um einzeilige mathematische Gleichungen anzuzeigen. Daher ist es wichtig, dass ich Exponenten repräsentieren kann. Ich habe dies erreicht, indem die Schriftgrößen ändern und Offsets wie hier gezeigt:programmgesteuert Rücktaste in richtextbox eingeben
{
if (state) // superscript
{
richTextBox1.SelectionCharOffset = offSet;
richTextBox1.SelectionFont = new Font("Lucinda Console", 10);
}
else // normal
{
richTextBox1.SelectionCharOffset = 0;
richTextBox1.SelectionFont = new Font("Lucinda Console", initialFont);
}
richTextBox1.SelectedText = " ";
}
Dieser Körper von Code wird mit einem Verfahren ausgeführt, durch eine Checkbox genannt. Das Problem, das ich habe, ist, dass, wenn ich kein Leerzeichen angehängt habe, der Char-Offset und die Font-Werte der Richtextbox in dem Moment, in dem ich sie eintrage, auf nominal zurückgesetzt werden.
Ich möchte nicht wirklich einen Platz. Ich benutze es nur, um das Programm glücklich zu machen. Als Workaround versuche ich, eine Rücktaste programmgesteuert zu implementieren. Gibt es eine Möglichkeit, dies zu tun? Ich habe versucht, diese Codezeile am unteren Rand des Blocks zu verwenden, aber es hatte keine Wirkung:
richTextBox1.Text.Remove (richTextBox1.Text.Length - 1, 1);
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
richTextBox1.SelectionCharOffset = offSet; // set the CharOffset to display superscript text.
richTextBox1.SelectionFont = new Font("Lucinda Console", 10); // set the superscript font;
}
else
{
richTextBox1.SelectionCharOffset = 0;
richTextBox1.SelectionFont = new Font("Lucinda Console", initialFont);
}
richTextBox1.SelectedText = " ";
}
'richTextBox1.Text = richTextBox1.Text.TrimStart();' oder 'richTextBox1.Text = richTextBox1.Text.Remove (0,1); ' – Nofuzy
@Nofuzy, Einstellung' .Text' auf der RichTextBox wird ** entfernen ** alle bestehenden Formatierung ... wahrscheinlich kein wünschenswertes Nebeneffekt in diesem Szenario! –