c# – 在文本框中选择了某些文本
发布时间:2020-12-15 04:27:00 所属栏目:百科 来源:网络整理
导读:我在c#中实现了一个记事本应用程序,所有的功能都完美无缺,只有一件事情无法实现,编辑下拉菜单中有一些菜单,但是它们的启用属性必须根据文本框,我有两个情况的问题,我正在寻找一个事件,以更改他们启用的属性在这个事件的事件处理程序,这里是问题: 2)当在文本
我在c#中实现了一个记事本应用程序,所有的功能都完美无缺,只有一件事情无法实现,编辑下拉菜单中有一些菜单,但是它们的启用属性必须根据文本框,我有两个情况的问题,我正在寻找一个事件,以更改他们启用的属性在这个事件的事件处理程序,这里是问题:
2)当在文本框中选择一些文本时,删除,复制和粘贴选项应该被启用.我应该检测它吗?我已经测试了texchanged事件,我已经写了一个条件,如下面的代码,但它没有工作只是剪贴板效果很好: private void textBox1_TextChanged(object sender,EventArgs e) { if (textBox1.SelectionLength> 0) button1.Enabled = false; if (Clipboard.ContainsText()) button2.Enabled = false; } 我应该如何解决我的问题,我必须使用一个文本框而不是一个富文本框. 解决方法
找出选择
if (textbox1.SelectionLength > 0) { } 对于剪贴板内容, System.Windows.Forms.Clipboard.getText(); 检查剪贴板内容, IDataObject iData = Clipboard.GetDataObject(); // Is Data Text? if (iData.GetDataPresent(DataFormats.Text)) label1.Text = (String)iData.GetData(DataFormats.Text); else label1.Text = "Data not found."; 这是在代码中实现的.您可以直接使用它如上 最重要的是,别忘了 public virtual string SelectedText { get; set; } 这是带菜单项的完整代码 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(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |