日期:2009-04-30  浏览次数:20421 次

项目中要用图形来显示一个阀门的开度,以及控制阀的开度。本来是要用什么公司买的控件中的饼图之类的实现,不过我觉得也是麻烦,就想,还是自己画吧。

首先添加一个TrackBar,名字是“TrackBar1”,一个label,名字是“L_A_SHANG”,一个GroupBox,名字是“GB_RIGHT”,,然后添加拉动滚动条时的处理函数

 '上位机控制
        Dim m_start As Integer
        Dim RcDraw As System.Drawing.Rectangle


        Private Sub TrackBar1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
            m_start = (100 - TrackBar1.Value)
            Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString
            GB_RIGHT.Invalidate() '重画GB_RIGHT
        End Sub

添加GB_RIGHT重画时的处理函数

 Private Sub GB_RIGHT_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles GB_RIGHT.Paint
            RcDraw.X = TrackBar1.Location.X - 40
            RcDraw.Y = 20
            RcDraw.Height = 100
            RcDraw.Width = 20
            e.Graphics.DrawRectangle(New Pen(Color.Blue, 5), RcDraw)
            Dim i = TrackBar1.Location.X - 40
            For i = TrackBar1.Location.X - 40 To TrackBar1.Location.X - 20
                e.Graphics.DrawLine(New Pen(Color.Blue, 5), i, m_start + 20, i, 120)
            Next

             Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString + "%"
        End Sub

到此以及可以实现拉动条的时候,图像跟着变化,并显示百分比。