对于任何可以帮助我的人,我都会非常感激!
我有一个非常小的应用程序,它在运行时使用for LOOP创建了几个面板。目前,要创建的面板数量是从文本框中输入的值派生的,但最终将由从数据库中读取的整数确定
每个面板都有一个在同一个循环中创建的Label
我的问题是我想在每个面板中绘制120行(在FOR循环的每次迭代中),并且我使用嵌套的WHILE循环
我可以让一切工作正常,面板与Label标题一起创建,但由于某种原因我无法绘制线条
这是一种测试方法,有人可以帮助我吗?
我目前的代码如下:
public void CreatePanels()
{
int PanelPosX = 50;
int PanelPosY = 500;
int LabelPosX = 10;
int LabelPosY = 10;
for (int i = 0; i < (Convert.ToInt32(textBox2.Text)); i++)
{
Panel pnlOverview = new Panel();
pnlOverview.Name = "InspectorPanel" + i.ToString();
pnlOverview.Text = "Inspector Panel " + i.ToString();
pnlOverview.Location = new Point(PanelPosX, PanelPosY);
pnlOverview.Size = new Size(974, 136);
pnlOverview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Controls.Add(pnlOverview);
PanelPosY += 170;
Label lblInspectorName = new Label();
lblInspectorName.Name = "InspectorName" + i.ToString();
lblInspectorName.Text = " Inspector " + i.ToString();
lblInspectorName.Width = 100;
lblInspectorName.Height = 13;
lblInspectorName.Location = new Point(LabelPosX, LabelPosY);
lblInspectorName.Size = new Size(974, 136);
pnlOverview.Controls.Add(lblInspectorName);
// Draw the Overview Chart
int x = 10;
int y = 0;
Pen OVTable = new Pen(Color.Black, 0);
while (y < 120)
{
Graphics mp = pnlOverview.CreateGraphics();
mp.DrawLine(OVTable, x, 40, x, 100);
y++;
x += 8;
}
}
return;
}
由于 伊万
答案 0 :(得分:0)
您可能需要创建一个空图像并绘制到其中,然后将其添加到面板中。另一个选项是从Panel派生并覆盖OnPaint方法,此时您将绘制图表。
也许有一个C#Chart组件会对你产生影响。
这是关于呈现自定义控件的MSDN参考的link,这正是您所追求的。