私が作成したクラスに長方形があります。関数 "DrawRectangle"は何も描画しません。私はpicboxFondo修飾子を公開していDrawRectangleは機能しません
public partial class Form1 : Form
{
//Prueba de clase
Unidad prueba;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
picboxFondo.Size = ClientRectangle.Size;
prueba = new Unidad("I", 20);
}
private void picboxFondo_MouseDown(object sender, MouseEventArgs e)
{
prueba.colocar(e);
}
}
:
私自身のクラス(Unidad.cs):
class Unidad
{
//Constructor
public Unidad(string tipo, int movimiento)
{
tipoUnidad = tipo;
movimientoUnidad = movimiento;
}
//Propiedades
public string tipoUnidad {get; set;}
public int movimientoUnidad { get; set; }
//Método para dibujar unidad
public void colocar(MouseEventArgs e)
{
Form1 myf = new Form1();
using (Graphics g = myf.picboxFondo.CreateGraphics())
{
Pen pen = new Pen(Color.Red, 2);
g.DrawRectangle(pen, e.X, e.Y, 20, 20);
pen.Dispose();
g.Dispose();
}
}
}
メインクラスIは、以下のコードを置きます。すべて正しくコンパイルされ、完璧に動作しますが、g.DrawRectangleに行くと、すべての値はOKですが、何も描画されません。
私を助けることができますか?
ありがとうございます!
あなたは何をしようとしていますか?今は、フォームの新しいインスタンスを作成し、すべてのMouseDownの新しいインスタンスにグラフィックスコンテキストを作成しています。あなたは毎回新しいフォームに矩形を描画しています。新しいフォームを表示していないことがわかっているからです。 –
ああ、いいえ、私はそれをしたくない!私は私の "Unidad"クラスからRectangleを作りたいと思っています。それで助けてくれますか? – Imrik