3

MSDNの次のコード例を考えます。

private void GetPixel_Example(PaintEventArgs e)
    {

        // Create a Bitmap object from an image file.
        Bitmap myBitmap = new Bitmap(@"C:\Users\tanyalebershtein\Desktop\Sample Pictures\Tulips.jpg");

        // Get the color of a pixel within myBitmap.
        Color pixelColor = myBitmap.GetPixel(50, 50);

        // Fill a rectangle with pixelColor.
        SolidBrush pixelBrush = new SolidBrush(pixelColor);
        e.Graphics.FillRectangle(pixelBrush, 0, 0, 100, 100);
    }

どうすればPaint関数を呼び出すことができますか?

4

3 に答える 3

8

ペイントイベントからこのようなもの

private PictureBox pictureBox1 = new PictureBox();

pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);

private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
   GetPixel_Example(e) ;
}
于 2012-08-01T06:03:07.997 に答える
1

このメソッドは、フォームのPaintEventから呼び出すことができます。

public class Form1 : Form
{
    public Form1()
    {
        this.Paint += new PaintEventHandler(Form1_Paint);
    }

    //....

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        GetPixel_Example(e);
    }

    private void GetPixel_Example(PaintEventArgs e)
    {
        // Create a Bitmap object from an image file.
        Bitmap myBitmap = new Bitmap(@"C:\Users\tanyalebershtein\Desktop\Sample Pictures\Tulips.jpg");

        // Get the color of a pixel within myBitmap.
        Color pixelColor = myBitmap.GetPixel(50, 50);

        // Fill a rectangle with pixelColor.
        SolidBrush pixelBrush = new SolidBrush(pixelColor);
        e.Graphics.FillRectangle(pixelBrush, 0, 0, 100, 100);
    }
}
  1. 画像をロードします
  2. x = 50、y=50でピクセルの色を取得します
  3. フォームのGraphics -Objectに、その色が0,0で、サイズが100,100の塗りつぶされた長方形を描画します。
于 2012-08-01T06:12:58.043 に答える
0

自分でメソッドを呼び出さないでPaintください。コンポーネントをペイントする必要があるときはいつでも、Paintメソッドは.NETFrameworkによって呼び出されます。これは通常、ウィンドウが移動されたり、最小化されたりしたときに発生します。

.NET Frameworkにコンポーネントを再描画するように指示する場合Refresh()は、コンポーネントまたはその親の1つを呼び出します。

于 2016-06-24T14:41:28.890 に答える