C# 使用滚动条值作为PaintEventArgs循环的参数
我正在尝试创建一个windows.form,它使用水平滚动条作为时间控件。然后,时间值用作85个数组的数组索引,每个数组值(不是零)都包含一个方向角,然后在地图上显示为一条线。我遇到的问题是,我对C#和事件处理非常陌生,因此我无法找到将hScrollBar1_滚动的事件(和值)链接到PaintEventArgs循环的方法。下面是我尝试过的代码示例:C# 使用滚动条值作为PaintEventArgs循环的参数,c#,winforms,event-handling,paintevent,C#,Winforms,Event Handling,Paintevent,我正在尝试创建一个windows.form,它使用水平滚动条作为时间控件。然后,时间值用作85个数组的数组索引,每个数组值(不是零)都包含一个方向角,然后在地图上显示为一条线。我遇到的问题是,我对C#和事件处理非常陌生,因此我无法找到将hScrollBar1_滚动的事件(和值)链接到PaintEventArgs循环的方法。下面是我尝试过的代码示例: private void hScrollBar1_Scroll(object sender, ScrollEventArgs e, [PaintEv
private void hScrollBar1_Scroll(object sender, ScrollEventArgs e, [PaintEventArgs f])
int t = e.NewValue;
//There's a few lines of code here that convert the value of the scrollbar to time and
//display it in a box.
{
for (int s = 1; s <= 85; s++)
{
if (ldata[s, t, 0] != 0)
{
DrawLinesPoint(s, t, null);
}
}
数组rdata[]是二维的,包含站点的参考数据;ldata[]是三维的,包含导入的数据
每次通过滚动条更改时间时,必须清除地图并更改显示的方位
有人能帮我写这段代码吗?我很有可能完全以错误的方式执行此操作,因此非常感谢您的帮助。您不会从自己的代码调用
Paint
事件。Windows决定何时绘制(也可以通过调用Invalidate
方法强制绘制)
相反,您应该做的是重写控件的OnPaint
方法(在需要绘制时调用该方法),并在其中添加绘图代码:
protected override void OnPaint(PaintEventArgs e) {
// Add your drawing code here
}
从那里,您可以调用其他具有逻辑的方法
为了得到更详细的答案,我们需要更多的代码,比如
rdata
和ldata
。但我想你能理解。谢谢,我现在明白我做错了什么。我以前很困惑,因为我把所有数据都保存在方法中,并试图通过方法调用来传递数据。我需要更多的练习。。。
protected override void OnPaint(PaintEventArgs e) {
// Add your drawing code here
}