Ich habe eine RTB in meiner Form, um die Hälfte des Textes fett zu machen. Code istRichTextBox ausgewählt Texteigenschaft
int start = richTextBox.Text.ToUpper().IndexOf(text.ToUpper());
richTextBox.Select(start, text.Length);
richTextBox.SelectionFont = new Font(richTextBox.Font.Name, richTextBox.Font.Size, richTextBox.Font.Style^FontStyle.Bold);
und ich bin mit MenuItem
Klasse benutzerdefinierte Menüs in meinem Formular hinzuzufügen. Eines der Menüs ist Copy Selected
wird event handler
haben, das ausgelöst wird, wenn Benutzer dieses Menü zum Einfügen ausgewählten Textes in die Zwischenablage auswählen.
Problem ist, wenn Benutzer keinen Text auswählt und versucht, einzufügen, fügt es den ausgewählten Text, den ich für fett (oben in RTB) gemacht, die ein Fehler ist. Code in meinem Handler
void noteCopySelectedMenu_Click(object sender, EventArgs e)
{
if (sender != null)
{
MenuItem noteCopyMenu = (MenuItem)sender;
ContextMenu noteContextMenu = (ContextMenu)noteCopyMenu.Parent;
RichTextBox text = (RichTextBox)noteContextMenu.SourceControl;
if (text != null)
{
// Copy note to Clipboard
Clipboard.Clear();
Clipboard.SetDataObject(text.SelectedText, false);
}
}
}
text.SelectedText
hält den Text fett aus RTB
Wenn der Benutzer wählen Sie einfach Menü, ohne Text auszuwählen, sollte es leer sein. Wie bewältige ich das?
es noch die Länge des Textes habe ich für Bold genommen haben .... so ist Bedingung durch immer, wenn der Benutzer nicht auswählt beliebiger Text –