背景
我正在c#.net中构建一个Windows应用程序(winforms)。主窗体需要显示仪表板控件,该控件基本上是资源调度程序。时间跨越底部。项目在y轴上运行。
我已经过去了ComponentGo Resource Scheduler用于此类事情,但这次我需要更多自定义。所以我想建立自己的。
以下是所需布局的模型:
问题
Panel
创建了我的控件,这是一个好主意吗?目前我基本上有:
public class MyControl : Panel
{
public MyControl()
{
CalcXPosition();
this.SetBounds(this.Left, this.Top, myWidth, myHeight);
}
//... code omitted
}
但我不确定我是否会以最好的方式解决这个问题......任何帮助或评论都会非常感激。
另外, 我需要每个矩形块都有与之关联的属性。 Block_ID,Block_Name等
答案 0 :(得分:1)
1)我基于Panel创建了我的控件,是个好主意吗?
您可以使用Panel,也可以只使用Control。另一种选择是不使用每个类的控件,而只是在父画布上绘制矩形。无论哪种方式都有其优点和缺点。如果您不需要对如何绘制矩形进行大量控制,那么使用Controls可能比手动绘制矩形更容易。
2)如何在面板边界外绘制文字?我可以直接画到Parent Canvas,但这感觉不对。
选项1:使矩形控件更大一些,以便您可以在控件中调整文本。使每个矩形控件的背景透明(或与父画布相同的灰色阴影),并在控件的中间绘制彩色矩形。
选项2:将文本分开标签控件并将它们放在矩形控件上方。
3)如何用颜色填充面板一半?
使用控件的OnPaint事件在控件上的任何位置绘制颜色。
4)我如何确保我的重绘顺利而快速?
这取决于很多因素。得到一些东西并运行,如果它太慢,请发布另一个更具体细节的问题。