Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图表的程序化创建及其图例的设置_C#_Winforms Interop - Fatal编程技术网

C# 图表的程序化创建及其图例的设置

C# 图表的程序化创建及其图例的设置,c#,winforms-interop,C#,Winforms Interop,我正在创建图表饼图、条形图和线条图,并希望设置它们的图例以及valuea、图例标题和图表上的值。我怎么能这样做呢?通常您不需要添加图例,因为已经有一个默认图例。但是,由于您要在代码中创建一个图表,因此您确实需要编写更多的代码。添加一个图例就是其中之一 您已经创建了一个图例,但您没有添加它,而是创建了另一个图例。改为写:chartA.Legends.Add(legend) 请注意,文档(包括Intellisense)在带有字符串参数的上是错误的!它按预期工作,而不是MSDN上记录的那样 我的建议(

我正在创建图表饼图、条形图和线条图,并希望设置它们的图例以及valuea、图例标题和图表上的值。我怎么能这样做呢?

通常您不需要添加
图例,因为已经有一个默认图例。但是,由于您要在代码中创建一个
图表
,因此您确实需要编写更多的代码。添加一个
图例
就是其中之一

您已经创建了一个
图例
,但您没有添加它,而是创建了另一个图例。改为写:
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);