您無法將文字 RichTextBox 控制項中使用從 MSDN 文件的程式碼範例

文章翻譯 文章翻譯
文章編號: 814309 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
Beta 版資訊
本文將告訴您的 Microsoft 的 Beta 版本產品。本文資訊提供來做-是,若有變更,恕不另行通知。

使用來自 Microsoft 這個 Beta 版產品沒有正式的產品支援。如需有關如何取得 Beta 版本支援的資訊,請參閱文件隨附於 Beta 版產品檔案或檢查下載此版本的 Web 位置。
全部展開 | 全部摺疊

在此頁中

徵狀

您嘗試在 < 啟用拖放作業並 Windows Form RichTextBox 控制項 > 中拖曳 RichTextBox 控制項與程式碼 MSDN 文件。當從 WordPad 拖曳文字時,變更可能會發生在滑鼠指標。但是,您不能從 RichTextBox 卸除文字。

發生的原因

拖放 事件 MSDN 文件中沒有程式碼,就會發生這個問題。因此,您不能卸除您從 RichTextBox 在 WordPad 中選取的文字。

解決方案

如果要解決這個問題,請為 RichTextBox1 新增一個 DragDrop 事件。如果要執行這項操作,請使用下列指示。

Visual Basic.NET 或 Visual Basic 2005

RichTextBox1DragDrop 事件中加入下列程式碼:
   Dim i As Int16 
   Dim s As String

   ' Get Start Position For the for Dropping the Text  
   i = RichTextBox1.SelectionStart
   s = RichTextBox1.Text.Substring(i)
   RichTextBox1.Text = RichTextBox1.Text.Substring(0, i)

   ' Drop the Text on to the RichTextBox
   RichTextBox1.Text = RichTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString()
   RichTextBox1.Text = RichTextBox1.Text + s
   
Visual C#.NET 或 Visual C# 2005年

InitializeComponent() 陳述式之後,將下列程式碼加入至 Form1 類別建構函式:
// Handler for DragDrop event
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.rtb_dragdrop);
Main () 方法之後將下列程序新增至程式碼:
private void rtb_dragdrop(object sender,DragEventArgs e)
{
   int i;
   String s;
   
   // Get Start Position to Drop the Text  
   i = richTextBox1.SelectionStart;
   s = richTextBox1.Text.Substring(i);
   richTextBox1.Text = richTextBox1.Text.Substring(0,i);

   // Drop the Text on the RichTextBox
   richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString();
   richTextBox1.Text = richTextBox1.Text + s;
}

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

重製行為的步驟

  1. 在 Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005 中,建立新的 Windows 使用 Visual Basic.NET、 Visual Basic 2005、 Visual C#.NET 或 Visual C# 2005年的應用程式專案。

    依照預設值,會建立 Form1
  2. 從工具箱] 拖曳 [RichTextBox 控制項加入 Form1

    Form1 上建立 RichTextBox1
  3. RichTextBox1,] 上按一下滑鼠右鍵,然後按一下 [內容]。
  4. 在 [屬性] 視窗中設定值為 AllowDrop為 True
  5. 以滑鼠右鍵按一下 Form1,然後按一下 [檢視程式碼
  6. RichTextBox1DragEnter 事件中加入下列程式碼:

    Visual Basic.NET 或 Visual Basic 2005 程式碼
       If (e.Data.GetDataPresent(DataFormats.Text)) Then
          e.Effect = DragDropEffects.Copy
       Else
          e.Effect = DragDropEffects.None
       End If
    
    Visual C#.NET 或 Visual C# 2005年代碼
    private void rtb_dragenter(object sender,DragEventArgs e)
    {
       if (e.Data.GetDataPresent(DataFormats.Text)) 
          e.Effect = DragDropEffects.Copy ;
       else
          e.Effect = DragDropEffects.None ;
    }
  7. 請試著從 WordPad 拖曳文字至 RichTextBox1

    您不能卸除文字。

?考

如需詳細資訊請造訪下列 MSDN 網站]:

啟用拖曳並放作業與 Windows Form RichTextBox 控制項
http://msdn2.microsoft.com/en-us/library/Aa984395(VS.71).aspx
如需有關 RichTextBox.DragEnter 事件和 RichTextBox.DragDrop 事件的詳細資訊,請參閱您的.NET Framework SDK 文件,或請造訪下列 MSDN 網站:

RichTextBox.DragEnter 事件
http://msdn2.microsoft.com/en-us/library/system.windows.forms.richtextbox.dragenter(vs.71).aspx

屬性

文章編號: 814309 - 上次校閱: 2014年2月26日 - 版次: 2.9
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 標準版
  • Microsoft Visual C# .NET 2002 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbprb kbwindowsforms kbproperties kbevent kbrichedit kbdragdrop KB814309 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:814309
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com