ListView.AfterLabelEdit ListView.AfterLabelEdit ListView.AfterLabelEdit ListView.AfterLabelEdit Event

정의

사용자가 항목에 대한 레이블을 편집할 때 발생합니다.Occurs when the label for an item is edited by the user.

public:
 event System::Windows::Forms::LabelEditEventHandler ^ AfterLabelEdit;
public event System.Windows.Forms.LabelEditEventHandler AfterLabelEdit;
member this.AfterLabelEdit : System.Windows.Forms.LabelEditEventHandler 
Public Custom Event AfterLabelEdit As LabelEditEventHandler 

예제

다음 코드 예제를 사용 하는 방법에 설명 합니다 AfterLabelEdit 새로 편집한 레이블을 알파벳에서 문자를 제한 하는 이벤트입니다.The following code example demonstrates how to use the AfterLabelEdit event to restrict a newly edited label to characters in the alphabet. 이 예제에서는 사용 된 ASCIIEncoding 새 레이블이 있는 각 문자의 ASCII 문자 코드를 가져오는 클래스입니다.The example uses the ASCIIEncoding class to obtain the ASCII character code of each character of the new label. 문자가 숫자를 나타내는 ASCII 코드 사이 하는 경우 항목에 새 레이블을 적용할 수 없습니다.If the character falls between the ASCII codes that represent numbers, the new label cannot be applied to the item. 이 예제에서는 만든를 ListView 폼에 추가 된 항목을 제어 합니다.This example requires that you have created a ListView control on a form and added items to it. 이 예제에서는 연결도 필요 합니다 AfterLabelEdit 예제 코드에 정의 된 이벤트 처리기에 이벤트입니다.The example also requires that you have connected the AfterLabelEdit event to the event handler defined in the example code. 사용 하기 위해 합니다 ASCIIEncoding 클래스 파일에 포함 해야 합니다는 System.Text 네임 스페이스입니다.In order to use the ASCIIEncoding class, your file must include the System.Text namespace.

private:
   void MyListView_AfterLabelEdit( Object^ /*sender*/, System::Windows::Forms::LabelEditEventArgs^ e )
   {
      // Determine if label is changed by checking for 0.
      if ( e->Label == nullptr )
               return;

      // ASCIIEncoding is used to determine if a number character has been entered.
      ASCIIEncoding^ AE = gcnew ASCIIEncoding;

      // Convert the new label to a character array.
      array<Char>^temp = e->Label->ToCharArray();

      // Check each character in the new label to determine if it is a number.
      for ( int x = 0; x < temp->Length; x++ )
      {
         // Encode the character from the character array to its ASCII code.
         array<Byte>^bc = AE->GetBytes( temp[ x ].ToString() );

         // Determine if the ASCII code is within the valid range of numerical values.
         if ( bc[ 0 ] > 47 && bc[ 0 ] < 58 )
         {
            // Cancel the event and return the lable to its original state.
            e->CancelEdit = true;

            // Display a MessageBox alerting the user that numbers are not allowed.
            MessageBox::Show( "The text for the item cannot contain numerical values." );

            // Break out of the loop and exit.
            return;
         }
      }
   }
private void MyListView_AfterLabelEdit(object sender, System.Windows.Forms.LabelEditEventArgs e)
{
 
   // Determine if label is changed by checking for null.
   if (e.Label == null)
      return;

   // ASCIIEncoding is used to determine if a number character has been entered.
   ASCIIEncoding AE = new ASCIIEncoding();
   // Convert the new label to a character array.
   char[] temp = e.Label.ToCharArray();

   // Check each character in the new label to determine if it is a number.
   for(int x=0; x < temp.Length; x++)
   {
      // Encode the character from the character array to its ASCII code.
      byte[] bc = AE.GetBytes(temp[x].ToString());
   
      // Determine if the ASCII code is within the valid range of numerical values.
      if(bc[0] > 47 && bc[0] < 58)
      {
         // Cancel the event and return the lable to its original state.
         e.CancelEdit = true;
         // Display a MessageBox alerting the user that numbers are not allowed.
         MessageBox.Show ("The text for the item cannot contain numerical values.");
         // Break out of the loop and exit.
         return;
      }
   }
}
Private Sub MyListView_AfterLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.LabelEditEventArgs) Handles listView1.AfterLabelEdit

   ' Determine if label is changed by checking to see if it is equal to Nothing.
   If e.Label Is Nothing Then
      Return
   End If
   ' ASCIIEncoding is used to determine if a number character has been entered.
   Dim AE As New ASCIIEncoding()
   ' Convert the new label to a character array.
   Dim temp As Char() = e.Label.ToCharArray()

   ' Check each character in the new label to determine if it is a number.
   Dim x As Integer
   For x = 0 To temp.Length - 1
      ' Encode the character from the character array to its ASCII code.
      Dim bc As Byte() = AE.GetBytes(temp(x).ToString())

      ' Determine if the ASCII code is within the valid range of numerical values.
      If bc(0) > 47 And bc(0) < 58 Then
         ' Cancel the event and return the lable to its original state.
         e.CancelEdit = True
         ' Display a MessageBox alerting the user that numbers are not allowed.
         MessageBox.Show("The text for the item cannot contain numerical values.")
         ' Break out of the loop and exit.
         Return
      End If
   Next x
End Sub

설명

AfterLabelEdit 사용자 완료 항목에 대 한 텍스트를 수정 하면 오류가 발생 합니다.The AfterLabelEdit event occurs when the user finishes modifying the text for an item. 사용자가 항목에 대 한 새 문자열을 이벤트에 전달 하 고 이벤트 처리기에는 변경 사항을 거부할 수 있습니다.The new string that the user types for the item is passed to the event, and the event handler can reject the change. 변경 내용을 취소 하는 이벤트 처리기, 사용자 항목을 편집이 시작 되기 전의 텍스트에 텍스트를 되돌립니다.If the event handler rejects the change, the text reverts to the text as it was before the user began editing the item.

참고

때문에 합니다 ListView.AfterLabelEdit 이벤트 수행 레이블 편집 호출 커밋되기 전에 ListView.Sort 이 이벤트 처리기에서 메서드는 원래 값을 사용 하 여 항목을 정렬 합니다.Because the ListView.AfterLabelEdit event takes place before the label edit is committed, calling the ListView.Sort method in a handler for this event will sort the item using the original value.

되려면에서를 AfterLabelEdit 가 발생 하는 이벤트를 LabelEdit 의 속성을 ListView 제어 설정 해야 합니다 true.In order for the AfterLabelEdit event to be raised, the LabelEdit property of the ListView control must be set to true.

에 대 한 이벤트 처리기를 만들 수 있습니다는 BeforeLabelEdit 이벤트를 사용자가 항목의 텍스트를 편집 하려면 작업을 수행 합니다.You can create an event handler for the BeforeLabelEdit event to perform tasks before the user edits the text of an item.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.For more information about handling events, see Handling and Raising Events.

적용 대상

추가 정보