2011-12-28 14 views
0

私はC#初心者で、宿題に問題が発生しました。C#の描画線

Panel3という名前のパネルが「Form1.cs」にあります。

今、私は「スタッフ」というクラスを持っています。スタッフの中にメソッドを追加して、互いに下に一連の線を描きたいと思います。これらの行は、panel3(Form1.csにあります)に追加して表示する必要があります。

どうすればいいですか?ありがとうございました。

私の問題は、私はForm1_Loadイベントでそれを呼び出すするつもりですかです:

私は「Staff.cs」でこのようなものがありますか?どのパラメータを渡す必要がありますか?

「Form1.cs」にあるpanel3の行を描画するには、「Draw」メソッドが必要です。

ありがとうございました。

編集は、あなたの助けのための

どうもありがとう:)私は今、それを解決した、あなたに感謝:)

+1

あなたには、いくつかの**関連**コードを含めることができますか? – gideon

+1

コードを表示して、どこに行き詰まっているか教えてください。 – Reniuz

+0

あなたのクラス 'Staff'クラスはコントロールを実装していますか? –

答えて

1
  1. あなたのスタッフのクラスでオーバーライドOnPaintイベント
  2. staffIndexのpropertieを作成する - その後、プロパティウィンドウで直接編集することができます
  3. プロジェクトをコンパイル - ツールボックスのスタッフコントロールが表示されます
  4. ドラッグアンドドロップあなたのフォームのスタッフコントロール。

public class Staff : Panel 
{ 
    public const int kOffset = 30; 
    public const int kSignatureOffset = 25; 
    public const int kStaffSpacing = 70; 
    public const int kBarSpacing = 7; 
    const int kNumMeasuresOnAStaff = 4; 
    public const int kStaffInPixels = 800; 

    public int staffIndex { get; set; } 

    public Staff() 
    { 
    } 

    protected override void OnPaint(PaintEventArgs e) 
    { 
     int yPos = kOffset + staffIndex * kStaffSpacing; 
     for (int bars = 0; bars < 5; bars++) 
     { 
      e.Graphics.DrawLine(Pens.Black, 0, yPos, kStaffInPixels, yPos); 
      yPos += kBarSpacing; 
     } 
    } 
}