ミニペイント 3つのボタン(矩形、円、線)を持つアプリケーションを作成しようとしています。私はマウスで形状を選択して移動することに問題があります。 Cでマウスのパネルで円や四角形のような描画された図形を選択する方法#
class rectangle : shape
{
public int length { get; set; }
public int width { get; set; }
public override void Draw(Graphics g)
{
g.DrawRectangle(new Pen(color), new Rectangle(startx, starty, width,length));
}
}
は今、私は長方形の任意の部分をクリックするたびに、私のpanel1_MouseDownが私のパネルで四角形を選択します:たとえば、私は形から色、太さを継承し、この長方形のクラスを持っています。 描画された図形はすべてlstShapsOnFormという名前のリストに追加され、drawableは抽象メソッドdrawとプロパティx yを持つ抽象クラスです。
abstract class Drawable
{
public int x { get; set; }
public int y { get; set; }
public abstract void draw(Graphics g);
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
foreach (Drawable o in lstShapsOnForm)
{
if (e.Location.X >= o.x || e.Location.X < o.x)
propertyGrid1.SelectedObject = o;
}
}
どうすればいいですか?テストに続いて
abstract class Drawable
{
public int x { get; set; }
public int y { get; set; }
public abstract void draw(Graphics g);
public abstract bool IsInside(int x, int y);
}
:
[円を描いた後のコントロールとして円をどのように扱うことができますか? - シェイプの移動と選択](https://stackoverflow.com/q/38345828/3110834)またはこの記事の「シェイプのドラッグ&ドロップ方法」(https://stackoverflow.com/q/38747027/3110834)を参照してください。 –
ありがとうございました:) – Zahra
あなたは大歓迎です:) –