PRB: MSDN 설명서의 코드 샘플을 사용하여 RichTextBox 컨트롤에서 텍스트를 삭제할 수 없다

기술 자료 번역 기술 자료 번역
기술 자료: 814309 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
베타 정보
이 문서에서는 Microsoft 제품의 베타 릴리스에 대해 설명합니다. 이 문서의 정보는 "있는 그대로" 제공되며 사전 통보 없이 변경될 수 있습니다.

이 베타 제품은 Microsoft의 공식 제품 지원 서비스를 받을 수 없습니다. 베타 릴리스 지원을 얻는 방법에 대한 자세한 내용은 베타 제품 파일에 포함된 설명서를 참조하거나 릴리스를 다운로드한 웹 사이트를 확인하십시오.
모두 확대 | 모두 축소

이 페이지에서

현상

MSDN 설명서의 "Windows Forms RichTextBox 컨트롤을 사용하여 끌어서 놓기 작업 설정(Enabling Drag-and-Drop Operations with the Windows Forms RichTextBox Control)"에 있는 코드를 사용하여 RichTextBox 컨트롤을 끌려고 합니다. 워드패드에서 텍스트를 끄는 경우 포인터가 변경될 수 있습니다. 그러나 RichTextBox에서 텍스트를 삭제할 수 없습니다.

원인

이 문제는 MSDN 설명서에 Drop 이벤트에 대한 코드가 없으므로 발생할 수 있습니다. 따라서 워드패드에서 선택한 텍스트를 RichTextBox에서 삭제할 수 없습니다.

해결 방법

이 문제를 해결하려면 RichTextBox1에 대해 DragDrop 이벤트를 추가합니다. 이렇게 하려면 아래 단계를 수행하십시오.

Visual Basic .NET

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

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에서 Visual Basic .NET 또는 Visual C# .NET을 사용하여 새 Windows 응용 프로그램 프로젝트를 만듭니다.

    기본적으로 Form1이 만들어집니다.
  2. 도구 상자에서 RichTextBox 컨트롤을 Form1로 끕니다.

    RichTextBox1Form1에 만들어집니다.
  3. RichTextBox1을 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
  4. 속성 창에서 AllowDrop의 값을 True로 설정합니다.
  5. Form1을 마우스 오른쪽 단추로 누른 다음 코드 보기를 누릅니다.
  6. RichTextBox1DragEnter 이벤트에 다음 코드를 추가합니다.

    Visual Basic .NET 코드
       If (e.Data.GetDataPresent(DataFormats.Text)) Then
          e.Effect = DragDropEffects.Copy
       Else
          e.Effect = DragDropEffects.None
       End If
    
    Visual C# .NET 코드
    private void rtb_dragenter(object sender,DragEventArgs e)
    {
       if (e.Data.GetDataPresent(DataFormats.Text)) 
          e.Effect = DragDropEffects.Copy ;
       else
          e.Effect = DragDropEffects.None ;
    }
  7. 워드패드에서 RichTextBox1로 텍스트를 끄십시오.

    텍스트를 삭제할 수 없습니다.

참조

자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.

Windows Forms RichTextBox 컨트롤을 사용하여 끌어서 놓기 작업 설정
http://msdn.microsoft.com/library/en-us/vbcon/html/vbtskperformingdragdropoperationswithwindowsformsrichtextboxcontrol.asp
RichTextBox.DragEnter 이벤트 및 RichTextBox.DragDrop 이벤트에 대한 자세한 내용은 .NET Framework SDK 설명서를 참조하거나 다음 MSDN 웹 사이트를 방문하십시오.

RichTextBox.DragEnter 이벤트
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWindowsFormsRichTextBoxClassDragEnterTopic.asp
RichTextBox.DragDrop 이벤트
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWindowsFormsRichTextBoxClassDragDropTopic.asp




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 814309 - 마지막 검토: 2014년 2월 24일 월요일 - 수정: 1.4
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
키워드:?
kbnosurvey kbarchive kbprb kbwindowsforms kbproperties kbevent kbrichedit kbdragdrop KB814309

피드백 보내기

 

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