2010-06-09 94 views
6

我有窗體窗體應用程序中有多個窗體和控件。我希望如果用戶在我的應用程序的任何形式的任何控件中選擇了一些文本,並點擊工具欄上的剪切/複製/粘貼按鈕,操作就會相應地執行。窗體窗體應用程序的剪切粘貼功能

即時通訊使用的複印按鈕的點擊C#.NET的sendkeys.send(「^ C」),但它不工作...

或1可以知道是否是那裏得到選定的文本以任何方式(儘管知道,我的應用程序的形式/控制)。

在此先感謝...

+1

無用的答案:http://stackoverflow.com/questions/2881259/editing-many-richtextboxes-and-textboxes – 2010-06-09 12:37:28

回答

2

我的方法處理複製事件中使用這樣的:

if (this.ActiveControl is TextBox) 
{ 
     Clipboard.SetDataObject(((TextBox)this.ActiveControl).SelectedText, true); 
} 
if (this.ActiveControl is RichTextBox) 
{ 
     Clipboard.SetDataObject(((RichTextBox)this.ActiveControl).SelectedText, true); 
} 
if (this.ActiveControl is ComboBox) 
{ 
     Clipboard.SetDataObject(((ComboBox)this.ActiveControl).SelectedText, true); 
} 

對於粘貼,如下所示:

nCursorPosition = ((RichTextBox)this.ActiveControl).SelectionStart; 
this.ActiveControl.Text = this.ActiveControl.Text.Insert(nCursorPosition, Clipboard.GetText()); 
+1

我有多種形式的MDI應用程序 每個表格可以有多個文本框 當用戶選擇任何形式的文本 和按下應用程序主菜單中的複製按鈕 我希望將所選文本複製 – 2010-06-09 12:56:31

5

你用過剪貼板爲更多的剪貼板複製,如果沒有粘貼你的數據不是使用剪貼板此

檢查這篇文章:http://www.geekpedia.com/tutorial188_Clipboard-Copy-and-Paste-with-Csharp.html

+1

感謝您的回覆。我檢查了鏈接。在這種情況下程序員知道哪個文本框被選中。我想要通用解決方案。假設我有數以千計的行和列的數據網格。現在我不知道用戶選擇了哪些單元格文本。我有很多形式來處理。因爲用戶可以同時打開多個表單。所以我不想爲每個控件和窗體實現這種技術。只是尋找通用的方式。 – 2010-06-09 12:27:41

+1

比檢查這可能會幫助你:http://www.voidspace.org.uk/ironpython/winforms/part8.shtml – 2010-06-09 12:42:09

1

要將第二個問題:

您可以使用此解決方案What is the preferred way to find focused control in WinForms app?來查找當前集中控制。

然後再檢查,這是閱讀選擇什麼類型的(即,如果它是TextBox使用SelectedText -Propery http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.selectedtext.aspx

+1

它不適合我。因爲我有MDI應用程序。通過獲得主動控制我得到點擊按鈕的工具欄,而不是文本框,我選擇了另一種形式的文本(mdi子) – 2010-06-09 12:57:14

相關問題