1

C#Windows-Formsプロジェクトに問題があります。正方形を描画しようとしていますが、画像ボックス内に正方形を表示したいと思います。どうやってやるの?

これは、正方形を描くための私の関数です。

public void DrawingSquares(int x, int y)//the function gets x and y to know where to print the square.
    {
        Graphics graphicsObj;
        graphicsObj = this.CreateGraphics();
        Pen myPen = new Pen(Color.Black, 5);
        Rectangle myRectangle = new Rectangle(x, y, 100, 100);
        graphicsObj.DrawRectangle(myPen, myRectangle);
    }
4

3 に答える 3

2

私のvsソリューション

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
    public Form1()
    {
        InitializeComponent();

        this.pictureBox1.Image = this.Draw(this.pictureBox1.Width, this.pictureBox1.Height);
    }

    public Bitmap Draw(int width, int height)
    {
        var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
        var graphics = Graphics.FromImage(bitmap);
        graphics.SmoothingMode = SmoothingMode.AntiAlias;
        graphics.FillRectangle(new SolidBrush(Color.Tomato), 10, 10, 100, 100);

        return bitmap;
    }
  }
}

これは私のForm1.csです

あなたは似たようなものを持っている必要があります

于 2012-04-23T08:44:25.020 に答える
1

PaintEventHandler画像ボックスの内側に追加し、その中に長方形を描く必要があります。

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    ...
    e.Graphics.DrawRectangle(myPen, myRectangle);
}
于 2012-04-23T08:41:49.890 に答える
-1
public Bitmap Draw()
{
   var bitmap = new Bitmap(width,height, PixelFormat.Format32bppArgb);
   var graphics = Graphics.FromImage(bitmap);
   graphics.SmoothingMode = SmoothingMode.AntiAlias;
   graphics.FillRectangle(new SolidBrush(Color.Tomato), 10, 10, 100, 100);
}

this.pictureBox1.Image = new PieChart().Draw();

したがって、ビットマップを返すだけで機能します

于 2012-04-23T08:35:04.930 に答える