ChartSheet.GetChartElement Метод (2007 System)
Обновлен: Ноябрь 2007
Возвращает информацию об элементе диаграммы, находящегося в точке, заданной координатами X и Y.
Пространство имен: Microsoft.Office.Tools.Excel
Сборка: Microsoft.Office.Tools.Excel.v9.0 (в Microsoft.Office.Tools.Excel.v9.0.dll)
Синтаксис
'Декларация
Public Sub GetChartElement ( _
x As Integer, _
y As Integer, _
ByRef ElementID As Integer, _
ByRef Arg1 As Integer, _
ByRef Arg2 As Integer _
)
'Применение
Dim instance As ChartSheet
Dim x As Integer
Dim y As Integer
Dim ElementID As Integer
Dim Arg1 As Integer
Dim Arg2 As Integer
instance.GetChartElement(x, y, ElementID, _
Arg1, Arg2)
public void GetChartElement(
int x,
int y,
ref int ElementID,
ref int Arg1,
ref int Arg2
)
Параметры
- x
Тип: System.Int32
Координата X элемента диаграммы.
- y
Тип: System.Int32
Координата Y элемента диаграммы.
- ElementID
Тип: System.Int32%
По завершении выполнения метода этот аргумент содержит значение XlChartItem элемента диаграммы, находящегося по указанным координатам. Дополнительные сведения см. в разделе "Заметки".
- Arg1
Тип: System.Int32%
По завершении выполнения этого метода данный аргумент содержит информацию, связанную с элементом диаграммы. Дополнительные сведения см. в разделе "Заметки".
- Arg2
Тип: System.Int32%
По завершении выполнения этого метода данный аргумент содержит информацию, связанную с элементом диаграммы. Дополнительные сведения см. в разделе "Заметки".
Заметки
Необычность этого метода заключается в том, что необходимо указывать значения только для первых двух аргументов. Microsoft Office Excel автоматически присваивает значения остальным аргументам, которые должны проверяться в коде по завершении выполнения метода.
Значение аргумента ElementID по завершении выполнения метода определяет, содержат ли аргументы Arg1 и Arg2 какую-либо информацию, как показано в приведенной ниже таблице.
ElementID |
Arg1 |
Arg2 |
---|---|---|
AxisIndex |
AxisType |
|
AxisIndex |
AxisType |
|
AxisIndex |
AxisType |
|
AxisIndex |
AxisType |
|
AxisIndex |
AxisType |
|
DropZoneType |
Отсутствует |
|
DropZoneType |
PivotFieldIndex |
|
GroupIndex |
Отсутствует |
|
GroupIndex |
Отсутствует |
|
GroupIndex |
Отсутствует |
|
GroupIndex |
Отсутствует |
|
GroupIndex |
Отсутствует |
|
GroupIndex |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
Отсутствует |
Отсутствует |
|
SeriesIndex |
PointIndex |
|
SeriesIndex |
Отсутствует |
|
SeriesIndex |
Отсутствует |
|
SeriesIndex |
Отсутствует |
|
SeriesIndex |
PointIndex |
|
ShapeIndex |
Отсутствует |
|
SeriesIndex |
TrendLineIndex |
|
SeriesIndex |
Отсутствует |
|
SeriesIndex |
Отсутствует |
В следующей таблице поясняется значение аргументов Arg1 и Arg2 после завершения выполнения метода.
Аргумент |
Описание |
---|---|
AxisIndex |
Определяет ось как основную или дополнительную. Может быть одной из следующих констант: XlAxisGroup: xlPrimary или xlSecondary. |
AxisType |
Определяет тип оси. Может принимать значение одной из следующих констант: XlAxisType: xlCategory, xlSeriesAxis или xlValue. |
DropZoneType |
Определяет тип области добавления: поле столбца, данных, страницы или строки. Может быть одной из следующих констант XlPivotFieldOrientation: xlColumnField, xlDataField, xlPageField или xlRowField. Поле столбца и поле строки определяют поле ряда и поле категории соответственно. |
GroupIndex |
Определяет смещение внутри коллекции Microsoft.Office.Interop.Excel.ChartGroups для определенной группы диаграмм. |
PivotFieldIndex |
Определяет смещение внутри коллекции T:Microsoft.Office.Interop.Excel.PivotFields для определенного поля столбца (ряда), данных, страницы или строки (категории). Принимает значение -1, если область добавления имеет тип xlDataField. |
PointIndex |
Определяет смещение внутри коллекции Points для определенной точки в ряде. Значение -1 указывает на то, что выбраны все точки данных. |
SeriesIndex |
Определяет смещение внутри коллекции Series для определенного ряда. |
ShapeIndex |
Определяет смещение внутри коллекции Shapes для определенной фигуры. |
TrendlineIndex |
Определяет смещение внутри коллекции Trendlines для определенной линии тренда в пределах ряда. |
Требования к использованию
Метод GetChartElement не работает, если для атрибута ExcelLocale1033Attribute в проекте установлено значение true (используется по умолчанию). Если атрибут ExcelLocale1033Attribute имеет значение true, необходимо выполнить следующие действия.
Необходимо вызвать метод GetChartElement базового элемента управления Microsoft.Office.Interop.Excel.Chart, но не ведущего элемента Microsoft.Office.Tools.Excel.ChartSheet.
Вам необходимо использовать метод Unwrap на базовом объекте Microsoft.Office.Interop.Excel.Chart перед вызовом GetChartElement.
Метод Unwrap изменяет этот объект так, что он передает объектной модели Excel код языка текущего потока вместо кода языка 1033.
В следующем примере кода демонстрируется использование метода GetChartElement в случае, когда атрибут ExcelLocale1033Attribute имеет значение true. Дополнительные сведения об атрибуте ExcelLocale1033Attribute и методе Unwrap см. в разделе Форматирование данных в Excel при помощи различных региональных параметров.
Примеры
В следующем примере кода метод GetChartElement используется для отображения элемента диаграммы, когда пользователь щелкает диаграмму мышью.
Примечание. |
---|
В этом примере предполагается, что атрибутом ExcelLocale1033Attribute (по умолчанию) является true. Если атрибут ExcelLocale1033Attribute имеет значение false, можно вызвать метод GetChartElement ведущего элемента Microsoft.Office.Tools.Excel.ChartSheet, и пользоваться методом Unwrap нет необходимости. Дополнительные сведения см. в подразделе "Примечания" данного раздела. |
Private Sub DisplayChartElement()
Globals.Sheet1.Range("A1", "A5").Value2 = 22
Globals.Sheet1.Range("B1", "B5").Value2 = 55
Me.SetSourceData(Globals.Sheet1.Range("A1", "B5"), _
Excel.XlRowCol.xlColumns)
Me.ChartType = Excel.XlChartType.xlColumnClustered
End Sub
Sub ChartSheet_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal x As Integer, ByVal y As Integer) Handles Me.MouseDown
Dim elementID As Integer = 0
Dim arg1 As Integer = 0
Dim arg2 As Integer = 0
Dim innerChart As Excel.Chart = CType( _
Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Unwrap( _
Me.InnerObject), Excel.Chart)
innerChart.GetChartElement(x, y, elementID, arg1, arg2)
MsgBox("Chart element is: " & CType(elementID, Excel.XlChartItem).ToString() _
& Constants.vbNewLine & "arg1 is: " & arg1.ToString() _
& Constants.vbNewLine & "arg2 is: " & arg2.ToString())
End Sub
private void DisplayChartElement()
{
Globals.Sheet1.Range["A1", "A5"].Value2 = 22;
Globals.Sheet1.Range["B1", "B5"].Value2 = 55;
this.SetSourceData(Globals.Sheet1.Range["A1", "B5"],
Excel.XlRowCol.xlColumns);
this.ChartType = Excel.XlChartType.xlColumnClustered;
this.MouseDown +=
new Excel.ChartEvents_MouseDownEventHandler(ChartSheet_MouseDown);
}
void ChartSheet_MouseDown(int Button, int Shift, int x, int y)
{
Int32 elementID = 0;
Int32 arg1 = 0;
Int32 arg2 = 0;
Excel.Chart innerChart = (Excel.Chart)Microsoft.Office.Tools.
Excel.ExcelLocale1033Proxy.Unwrap(this.InnerObject);
innerChart.GetChartElement(x, y, ref elementID, ref arg1, ref arg2);
MessageBox.Show("Chart element is: " + ((Excel.XlChartItem)elementID).ToString()
+ "\n arg1 is: " + arg1.ToString() + "\n arg2 is: " + arg2.ToString());
}
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.