Как реализовать стандартные операции вырезания, копирования, вставки и отмены для TextBox контрола в библиотеке классов Windows Forms в dot Net framework? Продемонстрирую применение производного класса от TextBox
на C#. Он предоставляет процедуры обработки события Click
для объектов MenuItem
, которые выполняют операции вырезки, копирования, вставки и отмены. В этом примере предполагается наличие элемента управления TextBox
с именем textBox1
.
Копирование:
private void Menu_Copy(System.Object sender, System.EventArgs e) { // Ensure that text is selected in the text box. if (textBox1.SelectionLength > 0) // Copy the selected text to the Clipboard. textBox1.Copy(); }
Вырезание:
private void Menu_Cut(System.Object sender, System.EventArgs e) { // Ensure that text is currently selected in the text box. if (textBox1.SelectedText.Length > 0) // Cut the selected text in the control and paste it into the Clipboard. textBox1.Cut(); }
Вставка:
private void Menu_Paste(System.Object sender, System.EventArgs e) { // Determine if there is any text in the Clipboard to paste into the text box. if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)) { // Determine if any text is selected in the text box. if (textBox1.SelectionLength > 0) { // Ask user if they want to paste over currently selected text. if (MessageBox.Show("Do you want to paste over current selection?", "Cut Example", MessageBoxButtons.YesNo) == DialogResult.No) // Move selection to the point after the current selection and paste. textBox1.SelectionStart = textBox1.SelectionStart + textBox1.SelectionLength; } // Paste current text in Clipboard into text box. textBox1.Paste(); } }
Отмена:
private void Menu_Undo(System.Object sender, System.EventArgs e) { // Determine if last operation can be undone in text box. if (textBox1.CanUndo == true) { // Undo the last operation. textBox1.Undo(); // Clear the undo buffer to prevent last action from being redone. textBox1.ClearUndo(); } }
Примерно так реализуются операции вырезания, копирования, вставки и отмены в TextBox контроле в библиотеке классов Windows Forms dot Net.