時間のコントロールとして水平スクロールバーを使用するwindows.formを作成しようとしています。次に、時間値は85個の配列の配列インデックスとして使用され、各配列値(ゼロではない)にはベアリングが含まれ、ベアリングがマップ上に線として表示されます。私が持っている問題は、C#とイベントハンドリングの新機能で、hScrollBar1_Scrollのイベント(と値)をPaintEventArgsループにリンクする方法が見つからないということです。以下は、私が試したコードのサンプルです:PaintEventArgsループのパラメータとしてスクロールバー値を使用する
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);
}
}
すべて同時にベアリングを表示することができ85件のサイトがあるのでDrawLinesPoint()がループしている理由があります。
最初に "ScrolleventArgs e"の横のパラメータとして "PaintEventArgs f"を使用しましたが、イベントを処理する方法がわからなかったので、DrawlinesPoint()は "f"の代わりに "null"を使用しました。
public void DrawLinesPoint(int s, int t, PaintEventArgs e)
{
Graphics g = e.Graphics;
int c = rdata[s,0];
Pen pen;
switch (c)
{
...
//These bearings can be three different colours
}
int x1 = rdata[s,1];
int y1 = rdata[s,2];
int x2 = rdata[s,1] + ldata[s,t,0];
int y2 = rdata[s,2] + ldata[s,t,1];
g.DrawLine(pen, x1, y1, x2, y2);
}
アレイがRDATA [] 2次元と3次元である、インポートベアリングデータを含む[]部位とLDATAのための基準データを保持します。
スクロールバーで時間を変更するたびにマップをクリアし、表示されたベアリングを変更する必要があります。
誰でもこのコードを助けることができますか?私はこれを間違ったやり方でやっているので、どんな助けもありがたいことです。
ありがとう私は今何が間違っていたか見ることができます。私はすべてのデータをメソッド内に保持していて、メソッド呼び出しを通じてそれを渡そうとしていたので、前もって混乱していました。私はより多くの練習が必要... – Lewish