2016-05-14 7 views
-1

私はパネルとボタンを持っています。すなわち:ボタンをクリックしてパネルに何かを描画する方法

private void button1_Click(object sender, EventArgs e) 
    { 
     panel2.Paint += new PaintEventHandler(panel2_Paint); 
     panel2.Refresh(); 
    } 

と:

private void panel2_Paint(object sender, PaintEventArgs e) 
    { 


      Graphics g = this.CreateGraphics(); 
      Graphics[,] g1 = new Graphics[140, 140]; 
      int[,] graph = new int[140, 140]; 

      int i, j; 
      for (i = 0; i < 140; i++) 
       for (j = 0; j < 140; j++) 
       { 
        graph[i, 8] = 1; 
        graph[i, 10] = 1; 
       } 

      Pen p = new Pen(Color.Blue); 
      SolidBrush mySolidColorBrush = new SolidBrush(Color.Blue); 
      Graphics a; 
      a = this.CreateGraphics(); 

      for (i = 1; i <= 10; i++) 
       for (j = 1; j <= 14; j++) 
       { 
        g.DrawEllipse(p, 80 * i, 80 * j, 10, 10); 
        g.FillEllipse(mySolidColorBrush, 80 * i, 80 * j, 20, 20); 
      a.DrawLine(Pens.Blue, 80 * i, 80 * j, 80 * (i - 1), 80 * (j - 1)); 
       } 

    } 

私は出力がパネルに表示されなければならないが、私の場合はそれがフォーム上に表示されるボタンをクリックしたとき。

答えて

-1

描画タスクを行う独自のユーザーコントロールを作成する必要があります。

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    public void DrawStuff() 
    { 
     this.Paint += new PaintEventHandler(panel1_Paint); 
     this.Refresh(); 
    } 

    private void panel1_Paint(object sender, PaintEventArgs e) 
    { 


     Graphics g = e.Graphics; 
     Graphics[,] g1 = new Graphics[140, 140]; 
     int[,] graph = new int[140, 140]; 

     int i, j; 
     for (i = 0; i < 140; i++) 
      for (j = 0; j < 140; j++) 
      { 
       graph[i, 8] = 1; 
       graph[i, 10] = 1; 
      } 

     Pen p = new Pen(Color.Blue); 
     SolidBrush mySolidColorBrush = new SolidBrush(Color.Blue); 
     Graphics a; 
     a = this.CreateGraphics(); 

     for (i = 1; i <= 10; i++) 
      for (j = 1; j <= 14; j++) 
      { 
       g.DrawEllipse(p, 80 * i, 80 * j, 10, 10); 
       g.FillEllipse(mySolidColorBrush, 80 * i, 80 * j, 20, 20); 
       a.DrawLine(Pens.Blue, 80 * i, 80 * j, 80 * (i - 1), 80 * (j - 1)); 
      } 

    } 
} 

次に、親コントロールからパブリックメソッド描画を呼び出すことができます。

private void button1_Click(object sender, EventArgs e) 
    { 
     userControl11.DrawStuff(); 
    } 

enter image description here

+0

それはあなた自身で作成することができ、カスタムコントロールです。この動画をチェックするhttps://www.youtube.com/watch?v=l5L_q_jI494 –

+0

userControl11.DrawStuff(); ここでusercontrol1はオブジェクトではないので、これを使用して関数を呼び出すことはできません –

+0

必要な手順は次のとおりです。1.新しいUserControl(UserControl1など)を作成します。2.新しいコントロールに2つのメソッドを追加します。ソリューション4.新しいUserControl1をUIにドラッグします5.ボタン –

関連する問題