C# 图表的程序化创建及其图例的设置
我正在创建图表饼图、条形图和线条图,并希望设置它们的图例以及valuea、图例标题和图表上的值。我怎么能这样做呢?通常您不需要添加C# 图表的程序化创建及其图例的设置,c#,winforms-interop,C#,Winforms Interop,我正在创建图表饼图、条形图和线条图,并希望设置它们的图例以及valuea、图例标题和图表上的值。我怎么能这样做呢?通常您不需要添加图例,因为已经有一个默认图例。但是,由于您要在代码中创建一个图表,因此您确实需要编写更多的代码。添加一个图例就是其中之一 您已经创建了一个图例,但您没有添加它,而是创建了另一个图例。改为写:chartA.Legends.Add(legend) 请注意,文档(包括Intellisense)在带有字符串参数的上是错误的!它按预期工作,而不是MSDN上记录的那样 我的建议(
图例,因为已经有一个默认图例。但是,由于您要在代码中创建一个图表
,因此您确实需要编写更多的代码。添加一个图例
就是其中之一
您已经创建了一个图例
,但您没有添加它,而是创建了另一个图例。改为写:chartA.Legends.Add(legend)
请注意,文档(包括Intellisense)在带有字符串参数的上是错误的!它按预期工作,而不是MSDN上记录的那样
我的建议(chartA.Legends[0].Title=“someString”
)很好,只要您完成了所有其他需要的事情:
您还必须创建(至少)
- 一个
图表区
- 一个
系列
以及您想要的图表类型
- …为了使其显示,您还必须添加一个
数据点
李>
例如:
Legend legend = new Legend();
Chart chartA = new Chart(); // <<---!
chartA.BackColor = Color.White;
chartA.Width = 370;
chartA.Height = 250;
chartA.Location = new Point(48, 35);
chartA.Name = textBox1.Text;
chartA.Legends.Add(legend); // <<---!
legend.Title = "Age of The Employees"; // <<---!
chartA.ChartAreas.Add(new ChartArea("ca")); // <<---!
chartA.ChartAreas["ca"].BackColor = Color.LightSeaGreen;
Series s1 = chartA.Series.Add("s1"); // <<---!
s1.ChartType = SeriesChartType.Pie;
s1.Points.AddY(12);
s1.Points.AddY(32);
..
如果换行符太长,无法插入垂直图例,则可能需要在标题中插入换行符(\n
)。有成千上万的示例。你做了什么你尝试了什么?我们会帮你的,但我们不会为你写代码。好的,先生!谢谢你的回复。先生,我正在尝试设置饼图图例的标题,但我的代码无法工作。请告诉我如何设置饼图图例的标题?了解图表细节的一个好方法是在designer中进行,然后查看designer.cs文件中的REUSELT。示例:legend1.Title=“一些文本”代码>不工作,先生。我就是这样做的。Chart addchart(){Legend Legend=new Legend();chartA chartA=new Chart();chartA.BackColor=Color.White;chartA.Width=370;chartA.Height=250;chartA.Location=new Point(480,35);chartA.Name=“”+textBox1.Text.ToString();chartA.Legends.Add(新图例(“+textBox1.Text.ToString());Legend.Title=“员工年龄”}您应该从一开始就发布代码。也应该在问题中,而不是评论中要解决你的问题,请看我的答案!你能告诉我怎样设置标题的字体吗。它太大了。如果你对答案很满意,请考虑它。很抱歉先生,我想再次打扰您。先生,我想知道如果选中,我如何将图表的焦点放在前面。现在发生的是一个图表在另一个图表出现在created before后面之后创建。如何设置新创建的块区域?谢谢,我不明白。要更改其z顺序,可以使用BringToFront或SendToBack。-默认情况下,您添加的控件位于以前添加的控件之上。您没有显示任何关于如何以及在何处添加图表的代码,所以我不能说。顺便说一句:似乎没有理由用winforms interop
来标记这个问题。务必用winforms
和mschart
替换!先生我如何上传我的coad?
legend.Font = new Font("Consolas", 10f);
legend.TitleFont = new Font(legend.Font.FontFamily, 14f);