2016-10-21 6 views
1

私は現在Bitmapイメージを持っています。この画像をPictureBoxの中の特定の座標に置く必要があります。具体的には、上から5ピクセル、左から5ピクセルを配置します。ビットマップの長さは異なるため、この特定の点で常に開始点にBitmapを描きたいと思います。C#ピクチャボックス内の特定のポイントにビットマップを描画

例として、2つの「ビットマップ」があり、両方が異なる長さの座標5,5から始まります。


私はPictureBoxに渡し、ビットマップを描画するグラフィックスを使用してのようなものを試してみた:

private void setQuantity(PictureBox pb, int quantity) { 

    Graphics g = pb.CreateGraphics(); 

    g.DrawImage(iqc.createQuantityImage(quantity), 0, 0); 

    g.Dispose(); 

} 

iqc.createQuantityImage() returns a Bitmap

しかし、このグレーがPictureBoxある想像何も描かれていないようです。私もxとyを変更して何も変わらない。

Iは、可能な場合、正確なPictureBox内部座標またはポイントを指定できるようにしたいです。

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

+0

ピクチャボックスにも画像が設定されていますか? – Gusman

+0

それは 'BackgroundImage'がセットされている、ではなく、' Image' – Sej

答えて

1

あなたは次のようにそのPaintメソッドにイベントハンドラを追加することにより、任意の位置でのPictureBoxに画像を描くことができます。

private void PictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    e.Graphics.DrawImage(_myBitmap, new Point(5, 5)); //Here new Point(x,y) determines location in pictureBox where you want to draw the bitmap. 
} 
+0

おかげで、これは方法でした。 PictureBox_Paint()関数が何を引き起こしているのかを説明するドキュメントを教えてください。なぜ描画が機能するのか分かりますが、関数が呼び出されたときは表示されません。 – Sej

+0

ペイントイベントは、そのコントロールを再描画する必要があるときに呼び出されます。例えば、フォームまたはコントロールのサイズが変更されると、Refreshが呼び出されるか、Invalidateがコントロールに対して呼び出されます。 [これ](http://csharphelper.com/blog/2014/12/draw-in-a-paint-event-handler-in-c/)リンクは、それについての説明を提供します。 –

+0

ありがとう – Sej

関連する問題