以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口图表显示异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157829)

--  作者:33chyh
--  发布时间:2020/10/30 10:19:00
--  [求助]窗口图表显示异常
在窗口中用同一图表控件先后显示两个表格内容时,在显示第二个图表时Y轴显示内容的重叠。请老师帮助解决!!! 前两幅图片是正常显示的,第三幅图片是异常的。具体图片如下:
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看
       
具体代码如下:
Dim Chart As WinForm.Chart \'定义一个图表变量
        Dim Series As WinForm.ChartSeries \'定义一个图系变量
        Dim t As Table = Tables(e.Form.Controls("Cmb姓名1").value & e.Form.Controls("Cmb一级技法").value & "技能方法未达标统计") \'定义一个变量t引用数据表
        Chart = e.Form.Controls("Chart2") \' 引用窗口中的图表
        Chart.SeriesList.Clear() \'清除图表原来的图系
        Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
        For Each c As Col In t.Cols
            If c.Name <> "技能方法" And c.Name <> "已考" And c.Name <> "未达成" And c.Name <> "未参考" Then
                Series = Chart.SeriesList.Add() \'增加一个图系
                \'Series.Text = c.Name \'设置图系的标题
                Series.Length = t.Rows.Count \'设置图系的长度
                For r As Integer = 0 To t.Rows.Count - 1
                    Series.X(r) = r
                    If t.Rows(r)(c.Name) > 0 Then
                        Series.Y(r) = t.Rows(r)(c.Name)
                    End If
                    Series.DataLabelText = c.name
                    Series.TooltipText = "X = " & c.name & ", Y = {#YVAL}"
                Next
            End If
        Next
        For r As Integer = 0 To t.Rows.Count - 1
            Chart.AxisX.SetValueLabel(r, t.Rows(r)("技能方法")) \'指定字符表示
        Next
Chart.Stacked = True
Chart.Inverted = True
        Chart.AxisX.AnnoWithLabels = True \'启用字符标示
        Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮




--  作者:有点蓝
--  发布时间:2020/10/30 10:22:00
--  
Chart = e.Form.Controls("Chart2") 
Chart.AxisX.ClearValueLabel

--  作者:33chyh
--  发布时间:2020/10/30 10:52:00
--  
谢谢有点蓝老师!!!问题解决了,同时也学到了ClearValueLabel 的用法。