ListObject.Change Событие (2007 System)
Обновлен: Июль 2008
Происходит, когда в элемент управления ListObject вносятся какие-либо изменения.
Пространство имен: Microsoft.Office.Tools.Excel
Сборка: Microsoft.Office.Tools.Excel.v9.0 (в Microsoft.Office.Tools.Excel.v9.0.dll)
Синтаксис
'Декларация
Public Event Change As ListObjectChangeHandler
'Применение
Dim instance As ListObject
Dim handler As ListObjectChangeHandler
AddHandler instance.Change, handler
public event ListObjectChangeHandler Change
Заметки
Событие возникает, если элемент управления ListObject изменяется программным образом или при взаимодействии с пользователем.
Событие не возникает, если ячейки изменяются во время пересчета.
Примеры
В следующем примере кода создается ListObject и обработчик событий Change. Чтобы вызвать событие Change, добавьте текст в одну из ячеек в ListObject, а затем нажмите клавишу ВВОД.
Эта версия предназначена для настройки уровня документа.
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(
missing, missing, Excel.XlReferenceStyle.xlA1,
missing, missing);
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;
}
}
Эта версия предназначена для надстройки уровня приложения.
WithEvents ChangeList As ListObject
Private Sub ListObject_Change()
Dim vstoWorksheet As Worksheet = CType( _
Me.Application.ActiveWorkbook.Worksheets(1), _
Excel.Worksheet).GetVstoObject()
ChangeList = vstoWorksheet.Controls.AddListObject( _
vstoWorksheet.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 ListRanges.DataBodyRange
MsgBox("The cells at range " & cellAddress & _
" in the data body changed.")
Case ListRanges.HeaderRowRange
MsgBox("The cells at range " & cellAddress & _
" in the header row changed.")
Case 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()
{
Worksheet vstoWorksheet = ((Excel.Worksheet)
this.Application.ActiveWorkbook.Worksheets[1]).GetVstoObject();
ListObject list1 =
vstoWorksheet.Controls.AddListObject(
vstoWorksheet.Range["A1", "C4"], "list1");
list1.Change += new ListObjectChangeHandler(list1_Change);
}
void list1_Change(Microsoft.Office.Interop.Excel.Range
targetRange, Microsoft.Office.Tools.Excel.ListRanges
changedRanges)
{
string cellAddress = targetRange.get_Address(
missing, missing, Excel.XlReferenceStyle.xlA1,
missing, missing);
switch (changedRanges)
{
case ListRanges.DataBodyRange:
System.Windows.Forms.MessageBox.Show("The cells at range " + cellAddress +
" in the data body changed.");
break;
case ListRanges.HeaderRowRange:
System.Windows.Forms.MessageBox.Show("The cells at range " + cellAddress +
" in the header row changed.");
break;
case ListRanges.TotalsRowRange:
System.Windows.Forms.MessageBox.Show("The cells at range " + cellAddress +
" in the totals row changed.");
break;
default:
System.Windows.Forms.MessageBox.Show("The cells at range " + cellAddress +
" changed.");
break;
}
}
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.Office.Tools.Excel - пространство имен
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Июль 2008 |
Добавлена версия кода для надстройки уровня приложения. |
Изменение функции SP1. |