AxisName 枚举在 Windows.Forms.Charts 中如何工作?
How does the AxisName enumeration work in Windows.Forms.Charts?
我在 Visual Studio 中使用 windows 表格图表,我想编写一个函数,给定图表区域和轴 returns 最大值或该图表区域中的点的最小值(XValue 或 Yvalue,取决于轴参数)。我想对第二个参数使用 AxisName 枚举,但是,按照惯例,msdn 的官方 documentation 没有涵盖我。枚举名称是否表示 ChartArea class 的 Axes() 属性 的索引,或者它是 Axis 对象的直接 link?我是否需要在我的 class(继承 DataVisualisation.Charts)中声明枚举,或者它是否已知?请帮助我
Public Function getAxisMinimum(ByVal area As AreaEnum, ByVal axe As AxisName) As Double
Dim min As Double = Double.NaN
For Each ser As Series In Series
If ser.ChartArea = ChartAreas(area).Name And ser.Points.Count > 0 Then
For Each p As DataPoint In ser.Points
'compare X or Y values depending on the axe argument to set the min
Next
End If
Next
'If there are no points in any series in the area, it will return NaN
Return min
结束函数
AreaEnum 是一个整数枚举,表示对应于每个名称的 ChartArea() 属性 的索引。
我不需要关于如何比较我的点的值或如何 return 它们的解决方案,我只需要关于如何使用 AxisName 枚举的解释
没关系,我想我已经解决了。 Visual Studio 的自动完成功能给了我答案,因为它识别了 AxisName 枚举并在 select 语句中更正了我。我认为这可行:
Public Function getAxisMinimum(ByVal area As AreaEnum, ByVal axe As AxisName) As Double
Dim min As Double = Double.NaN
For Each ser As Series In Series
If ser.ChartArea = ChartAreas(area).Name AndAlso ser.Points.Count > 0 Then
For Each p As DataPoint In ser.Points
Select Case axe
Case AxisName.X
If Double.IsNaN(min) OrElse p.XValue < min Then
min = p.XValue
End If
Case AxisName.Y
For Each Yval As Double In p.YValues
If Double.IsNaN(min) OrElse Yval < min Then
min = Yval
End If
Next
Case Else
' Not an acceptable AxisName
Return Double.NaN
End Select
Next
End If
Next
'If there are no points in any series in the area, it will return NaN
Return min
结束函数
我在 Visual Studio 中使用 windows 表格图表,我想编写一个函数,给定图表区域和轴 returns 最大值或该图表区域中的点的最小值(XValue 或 Yvalue,取决于轴参数)。我想对第二个参数使用 AxisName 枚举,但是,按照惯例,msdn 的官方 documentation 没有涵盖我。枚举名称是否表示 ChartArea class 的 Axes() 属性 的索引,或者它是 Axis 对象的直接 link?我是否需要在我的 class(继承 DataVisualisation.Charts)中声明枚举,或者它是否已知?请帮助我
Public Function getAxisMinimum(ByVal area As AreaEnum, ByVal axe As AxisName) As Double
Dim min As Double = Double.NaN
For Each ser As Series In Series
If ser.ChartArea = ChartAreas(area).Name And ser.Points.Count > 0 Then
For Each p As DataPoint In ser.Points
'compare X or Y values depending on the axe argument to set the min
Next
End If
Next
'If there are no points in any series in the area, it will return NaN
Return min
结束函数
AreaEnum 是一个整数枚举,表示对应于每个名称的 ChartArea() 属性 的索引。
我不需要关于如何比较我的点的值或如何 return 它们的解决方案,我只需要关于如何使用 AxisName 枚举的解释
没关系,我想我已经解决了。 Visual Studio 的自动完成功能给了我答案,因为它识别了 AxisName 枚举并在 select 语句中更正了我。我认为这可行:
Public Function getAxisMinimum(ByVal area As AreaEnum, ByVal axe As AxisName) As Double
Dim min As Double = Double.NaN
For Each ser As Series In Series
If ser.ChartArea = ChartAreas(area).Name AndAlso ser.Points.Count > 0 Then
For Each p As DataPoint In ser.Points
Select Case axe
Case AxisName.X
If Double.IsNaN(min) OrElse p.XValue < min Then
min = p.XValue
End If
Case AxisName.Y
For Each Yval As Double In p.YValues
If Double.IsNaN(min) OrElse Yval < min Then
min = Yval
End If
Next
Case Else
' Not an acceptable AxisName
Return Double.NaN
End Select
Next
End If
Next
'If there are no points in any series in the area, it will return NaN
Return min
结束函数