ListObjectChangeHandler-Delegat
Stellt die Methode dar, die das Change-Ereignis von ListObject behandelt.
Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)
Syntax
'Declaration
Public Delegate Sub ListObjectChangeHandler ( _
targetRange As Range, _
changedRanges As ListRanges _
)
public delegate void ListObjectChangeHandler(
Range targetRange,
ListRanges changedRanges
)
Parameter
- targetRange
Typ: Microsoft.Office.Interop.Excel.Range
Der Range, in dem die Änderung aufgetreten ist.
- changedRanges
Typ: Microsoft.Office.Tools.Excel.ListRanges
Die Bereiche von ListObject, die Änderungen enthalten.
Hinweise
Beim Erstellen eines ListObjectChangeHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung.Um das Ereignis mit dem Ereignishandler zu verknüpfen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu.Solange Sie den Delegaten nicht entfernen, wird der Ereignishandler immer dann aufgerufen, wenn das Ereignis auftritt.Weitere Informationen über Delegaten finden Sie unter Ereignisse und Delegaten.
Beispiele
Im folgenden Codebeispiel werden ein ListObject und ein Change-Ereignishandler erstellt.Zum Auslösen des Change-Ereignisses müssen Sie einer Zelle im ListObject Text hinzufügen und die EINGABETASTE drücken.
WithEvents ChangeList As Microsoft.Office.Tools.Excel.ListObject
Private Sub ListObject_Change()
ChangeList = Me.Controls.AddListObject( _
Me.Range("A1", "C4"), "ChangeList")
End Sub
Sub List1_Change(ByVal targetRange As _
Microsoft.Office.Interop.Excel.Range, _
ByVal changedRanges As Microsoft.Office.Tools.Excel.ListRanges) _
Handles ChangeList.Change
Dim cellAddress As String = targetRange.Address( _
ReferenceStyle:=Excel.XlReferenceStyle.xlA1)
Select Case changedRanges
Case Microsoft.Office.Tools.Excel.ListRanges.DataBodyRange
MsgBox("The cells at range " & cellAddress & _
" in the data body changed.")
Case Microsoft.Office.Tools.Excel.ListRanges.HeaderRowRange
MsgBox("The cells at range " & cellAddress & _
" in the header row changed.")
Case Microsoft.Office.Tools.Excel.ListRanges.TotalsRowRange
MsgBox("The cells at range " & cellAddress & _
" in the totals row changed.")
Case Else
MsgBox("The cells at range " & cellAddress & _
" changed.")
End Select
End Sub
private void ListObject_Change()
{
Microsoft.Office.Tools.Excel.ListObject list1 =
this.Controls.AddListObject(
this.Range["A1", "C4"], "list1");
list1.Change += new Microsoft.Office.Tools.Excel.
ListObjectChangeHandler(list1_Change);
}
void list1_Change(Microsoft.Office.Interop.Excel.Range
targetRange, Microsoft.Office.Tools.Excel.ListRanges
changedRanges)
{
string cellAddress = targetRange.get_Address(
Excel.XlReferenceStyle.xlA1
);
switch (changedRanges)
{
case Microsoft.Office.Tools.Excel.ListRanges.DataBodyRange:
MessageBox.Show("The cells at range " + cellAddress +
" in the data body changed.");
break;
case Microsoft.Office.Tools.Excel.ListRanges.HeaderRowRange:
MessageBox.Show("The cells at range " + cellAddress +
" in the header row changed.");
break;
case Microsoft.Office.Tools.Excel.ListRanges.TotalsRowRange:
MessageBox.Show("The cells at range " + cellAddress +
" in the totals row changed.");
break;
default:
MessageBox.Show("The cells at range " + cellAddress +
" changed.");
break;
}
}