Visual studio 2010 在imagelist中显示饼图

Visual studio 2010 在imagelist中显示饼图,visual-studio-2010,Visual Studio 2010,我正在vb.net中开发一个项目,我正在使用图像列表制作一个饼图,但问题是用于输入数据的文本框位于另一个图像中,输出应显示在另一个图像中。如果我用一种形式做,我会得到一张饼图。请帮助我获取该值的come代码。这是一个windows应用程序。我使用了imagelist,而不是使用选项卡。饼图应显示在第一个图像部分,饼图显示的值位于另一个图像中 饼图的代码是Imports Charting=System.Windows.Forms.DataVisualization.Charting 导入Compo

我正在vb.net中开发一个项目,我正在使用图像列表制作一个饼图,但问题是用于输入数据的文本框位于另一个图像中,输出应显示在另一个图像中。如果我用一种形式做,我会得到一张饼图。请帮助我获取该值的come代码。

这是一个windows应用程序。我使用了imagelist,而不是使用选项卡。饼图应显示在第一个图像部分,饼图显示的值位于另一个图像中

饼图的代码是Imports Charting=System.Windows.Forms.DataVisualization.Charting 导入ComponentModel=System.ComponentModel 私有子按钮1\u单击(ByVal发送者作为System.Object,ByVal e作为System.EventArgs) 表格2.show() 端接头 公开课表格3

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub
末级

公开课表格1 '使用BindingList发出列表更改的信号 Private,以事件扇区作为新组件Model.BindingList(属于扇区项)

Private Sub Form1\u Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
'仅为演示目的设置文本
'TextBox1.Text=“10”
'TextBox2.Text=“5”
'定义piechart系列
Dim PieSeries1作为新的制图系列(“Pie1”)
PieSeries1.ChartType=Charting.SeriesChartType.Pie
PieSeries1.CustomProperties=“PieLabelStyle=已禁用”
Chart1.Series.Clear()'重置图表系列集合
图表1.系列.插入(0,PieSeries1)'将PieSeries1添加到图表1
'添加扇区项
添加(新的SectorItem(TextBox1,“Sector 1”))
添加(新的SectorItem(文本框2,“Sector 2”))
添加(新的SectorItem(文本框3,“Sector 3”))
Sectors.ResetItem(0)强制ItemChanged事件设置数据绑定点
端接头
''' 
''每次由于名称更改或
''数据绑定文本框。文本更改
''' 
私有子扇区\u ListChanged(ByVal sender作为对象,ByVal e作为System.ComponentModel.ListChangedEventArgs)处理扇区。ListChanged
如果e.ListChangedType=ComponentModel.ListChangedType.ItemChanged,则
图表1.系列(“Pie1”).点.数据绑定(扇区“,”值“,”标签=名称”)
如果结束
端接头
''' 
''用于将文本框值绑定到图表的帮助器类。
''' 
私有类部门项目
'implement INotifyPropertyChanged以表示属性值的更改
实现System.ComponentModel.INotifyPropertyChanged
公共事件PropertyChanged(ByVal发送方作为对象,ByVal e作为System.ComponentModel.PropertyChangedEventArgs)实现System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Public Sub New(ByVal tb作为文本框,ByVal Name作为字符串)
我
Double.TryParse(tb.Text,_值)
'将值绑定到TextBox.Text属性
'您可能希望使用DataSourceUpdateMode.OnValidation而不是DataSourceUpdateMode.OnPropertyChanged
'OnPropertyChanged会在您在文本框中键入的每个更改上激发
添加(“Text”,Me,“Value”,True,DataSourceUpdateMode.OnPropertyChanged)
端接头
私有子NotifyPropertyChanged(ByVal信息作为字符串)
RaiseEvent PropertyChanged(Me,新组件模型。PropertyChangedEventArgs(信息))
端接头
Private\u名称作为字符串
作为字符串的公共属性名()
得到
返回\u名称
结束
设置(ByVal值作为字符串)
'仅当值实际更改时才进行信号更改
Dim notify As Boolean=非字符串。等于(_Name,value)
_名称=值
如果通知,则NotifyPropertyChanged(“名称”)
端集
结束属性的名称
Private\u值为Double
公共属性值()为双精度
得到
返回值
结束
设置(ByVal值为双精度)
'仅当值实际更改时才进行信号更改
Dim notify As Boolean=(_值)
_价值=价值
如果为notify,则为NotifyPropertyChanged(“值”)
端集
结束属性的值
“端类”扇区项

终端类

您使用的是什么UI技术?这是网站还是Windows应用程序?如果您可以编辑您的问题,将您迄今为止尝试的内容包括在内,那么我们可能会提供帮助。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' setting text just for demo purposes
    'TextBox1.Text = "10"
    'TextBox2.Text = "5"

    ' define a piechart series
    Dim PieSeries1 As New Charting.Series("Pie1")
    PieSeries1.ChartType = Charting.SeriesChartType.Pie
    PieSeries1.CustomProperties = "PieLabelStyle=Disabled"

    Chart1.Series.Clear()                  ' reset the chart Series collection
    Chart1.Series.Insert(0, PieSeries1)    ' add PieSeries1 to Chart1

    ' add the SectorItems
    Sectors.Add(New SectorItem(TextBox1, "Sector 1"))
    Sectors.Add(New SectorItem(TextBox2, "Sector 2"))
    Sectors.Add(New SectorItem(TextBox3, "Sector 3"))
    Sectors.ResetItem(0) ' force a ItemChanged event to set the Points DataBinding
End Sub

''' <summary>
''' Updates the chart data each time any of the SectorItems changes due to a Name Change or the
''' databound TextBox.Text changes   
''' </summary>
Private Sub sectors_ListChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ListChangedEventArgs) Handles Sectors.ListChanged
    If e.ListChangedType = ComponentModel.ListChangedType.ItemChanged Then
        Chart1.Series("Pie1").Points.DataBind(Sectors, "", "Value", "Label=Name")
    End If
End Sub

''' <summary>
''' a helper class for binding a TextBox value to a chart.  
''' </summary>
Private Class SectorItem
    ' implement INotifyPropertyChanged to signal changes to the property values
    Implements System.ComponentModel.INotifyPropertyChanged
    Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged

    Public Sub New(ByVal tb As TextBox, ByVal Name As String)
        Me._Name = Name
        Double.TryParse(tb.Text, _Value)
        ' bind Value to the TextBox.Text Property
        ' You may want to use DataSourceUpdateMode.OnValidation instead of  DataSourceUpdateMode.OnPropertyChanged
        ' OnPropertyChanged fires on each change as you type in the TextBox
        tb.DataBindings.Add("Text", Me, "Value", True, DataSourceUpdateMode.OnPropertyChanged)
    End Sub

    Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New ComponentModel.PropertyChangedEventArgs(info))
    End Sub

    Private _Name As String
    Public Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal value As String)
            ' only singal change if value actually changes
            Dim notify As Boolean = Not String.Equals(_Name, value)
            _Name = value
            If notify Then NotifyPropertyChanged("Name")
        End Set
    End Property 'Name

    Private _Value As Double
    Public Property Value() As Double
        Get
            Return _Value
        End Get
        Set(ByVal value As Double)
            ' only singal change if value actually changes
            Dim notify As Boolean = (_Value <> value)
            _Value = value
            If notify Then NotifyPropertyChanged("Value")
        End Set
    End Property 'Value
End Class ' SectorItem