Fügt ein Standard-Kontextmenü zum Ausschneiden, Kopieren und Einfügen von Text einem RichTextBox-Control via. einer Extension-Methode hinzu.
Anwendung am besten in der Form-Klasse im Konstruktor hinter InitializeComponent():
rtbControl.ExtendWithContextMenu();
public static void ExtendWithContextMenu(this RichTextBox rtb)
{
ContextMenuStrip ctx = new ContextMenuStrip();
ToolStripMenuItem cut = new ToolStripMenuItem(
"Ausschneiden", null, (sender, e) => rtb.Cut());
ToolStripMenuItem copy = new ToolStripMenuItem(
"Kopieren", null, (sender, e) => rtb.Copy());
ToolStripMenuItem paste = new ToolStripMenuItem(
"Einfügen", null, (sender, e) => rtb.Paste());
ctx.Items.Add(cut);
ctx.Items.Add(copy);
ctx.Items.Add(paste);
rtb.ContextMenuStrip = ctx;
ctx.Opening +=
(sender, e) =>
{
bool noSelectedText = string.IsNullOrEmpty(rtb.SelectedText);
cut.Enabled = !noSelectedText;
copy.Enabled = !noSelectedText;
bool noClipboardText = string.IsNullOrEmpty(Clipboard.GetText());
paste.Enabled = !noClipboardText;
};
}
2 Kommentare zum Snippet