ListView.OnAfterLabelEdit(LabelEditEventArgs) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de AfterLabelEdit gebeurtenis gegenereerd.
protected:
virtual void OnAfterLabelEdit(System::Windows::Forms::LabelEditEventArgs ^ e);
protected virtual void OnAfterLabelEdit(System.Windows.Forms.LabelEditEventArgs e);
abstract member OnAfterLabelEdit : System.Windows.Forms.LabelEditEventArgs -> unit
override this.OnAfterLabelEdit : System.Windows.Forms.LabelEditEventArgs -> unit
Protected Overridable Sub OnAfterLabelEdit (e As LabelEditEventArgs)
Parameters
Een LabelEditEventArgs met de gebeurtenisgegevens.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de AfterLabelEdit gebeurtenis gebruikt om een nieuw bewerkt label te beperken tot tekens in het alfabet. In het voorbeeld wordt de ASCIIEncoding klasse gebruikt om de ASCII-tekencode van elk teken van het nieuwe label te verkrijgen. Als het teken tussen de ASCII-codes valt die getallen vertegenwoordigen, kan het nieuwe label niet worden toegepast op het item. Voor dit voorbeeld moet u een ListView besturingselement in een formulier hebben gemaakt en items eraan hebben toegevoegd. Het voorbeeld vereist ook dat u de AfterLabelEdit gebeurtenis hebt verbonden met de gebeurtenis-handler die is gedefinieerd in de voorbeeldcode. Als u de ASCIIEncoding klasse wilt gebruiken, moet uw bestand de System.Text naamruimte bevatten.
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
Opmerkingen
Als u een gebeurtenis aanroept, wordt de gebeurtenis-handler via een gemachtigde aangeroepen. Zie Afhandeling en het genereren van gebeurtenissen voor meer informatie.
Met OnAfterLabelEdit de methode kunnen afgeleide klassen de gebeurtenis ook verwerken zonder een gemachtigde te koppelen. Dit is de voorkeurstechniek voor het verwerken van de gebeurtenis in een afgeleide klasse.
Notities voor overnemers
Wanneer u OnAfterLabelEdit(LabelEditEventArgs) overschrijft in een afgeleide klasse, moet u de methode van OnAfterLabelEdit(LabelEditEventArgs) de basisklasse aanroepen, zodat geregistreerde gemachtigden de gebeurtenis ontvangen.