【发布时间】:2019-11-08 02:06:43
【问题描述】:
我在一个 winforms 应用程序中有一个数据绑定图表,用 vb.net 编写。我已经在我的数据中设置了 3 个点并设置了它们的颜色,但是当图表在运行时填充时,它会忽略预定义的点并选择随机颜色。
为了解决这个问题,我添加了 3 行代码来手动设置数据生成后点的颜色。我曾尝试将其放入 Load 事件和 Shown 事件中,但每次都因引用超出索引而失败。
我认为这是因为表单尚未显示在屏幕上,因此这些点实际上还不存在。
我尝试将代码放在一个按钮中,并在图表加载后单击它,这成功更改了颜色。
Load 事件中的代码:
Me.Prod_ChecklistGraphTableAdapter.Fill(Me.ProdGraph.prod_ChecklistGraph)
Shown 中的代码或Load 事件中的上述行以下:
chtActiveStatus.Series(0).Points(0).Color = Color.FromArgb(180, 204, 112)
chtActiveStatus.Series(0).Points(1).Color = Color.FromArgb(255, 200, 61)
chtActiveStatus.Series(0).Points(2).Color = Color.FromArgb(255, 61, 61)
我的问题是,如何使此代码在向用户显示图表之前更改颜色并防止它从一种颜色闪烁到正确的颜色?或者,如何设置图表属性,使其不会忽略我设置的预定义点和颜色?
【问题讨论】:
-
您必须在构造函数或 Load 事件中执行此操作以防止其可见。但这与您所依赖的数据绑定不兼容,这是惰性的,并且在控件变得可见之前不会发生。在考虑this Q+A 中的hackorama 之前,我会放弃数据绑定。
-
感谢@HansPassant - 您认为放弃 SQL 视图中的数据绑定会更好吗,只需让 vb 代码提取数据并手动更新 @ 中的创建图987654327@ 或
Shown事件?