2011-08-09 8 views
0

私はこのようなピクチャボックスに車のイメージをロードしました。ピクチャボックスに読み込まれたイメージに描画する

private void btn_LoadPattern_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog openFileDialog = new OpenFileDialog(); 
     openFileDialog.Filter = "JPEG Files|*.jpg"; 

     if (openFileDialog.ShowDialog() == DialogResult.OK) 
     { 
      pictureBox1.ImageLocation = openFileDialog.FileName; 
     } 
    } 

私はこのイメージの上に四角形を描画し、同じフォーム上の矢印ボタンを追加したいので、ユーザは、画像を登録プレートが位置する場所を示すために長方形を移動することができるであろう。

私が四角形の描画を開始すると、車の画像で覆われてしまうという問題があります。もう1つの問題は、ユーザーclieckが右/左/上/下のボタンに移動している間に、新しい位置に四角形を再描画する方法です。

Anyhelpは非常に高く評価されます。この場合

答えて

2

、私が代わりにこれを行うだろう、PictureLocationを使用することはありません:あなたはPictureBoxで四角形を描画した場合

pictureBox1.BackgroundImage = Image.FromFile(openFileDialog.FileName); 

は、今では車の画像の上に描画される必要があります。

Paintイベントを使用します。
このようなものは、このトリックを行う必要があります。

Rectangle MyRectangle; 
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) 
{ 
    // Create a local version of the graphics object for the PictureBox. 
    Graphics g = e.Graphics; 

    g.DrawRectangle(Pens.Black, MyRectangle); 
} 

そして、あなたはPaintイベントが新しい場所で四角形を再描画持ってpictureBox1.Invalidate()を呼び出して、矢印キーに応じMyRectangle修正するためにキーストロークを処理することができるはずです。

関連する問題