c#でホワイトボードのような物を作成しました。
VisualBasicPowerPackのOvelShapeでクリックした部分に決まったサイズの円を描く事をしています。
そのOvelShapeを削除する(ホワイトボードをクリアするようなイメージ)作業があるのですが、
例えばpicturebox(pic1)にOvalShapeで円を描く場合、実際にはキャンバスとしてShapeContainerが置かれ、
その上?にOvalShape(円)が描かれる事は理解したので、下記のようなコードを書いてみました。
c#
1foreach (Control c in pic1.Controls) 2{ 3 if (c.GetType().Name == "ShapeContainer") 4 { 5 c.Dispose(); 6 } 7}
ShapeContainerが厳密にはコントロールでは無いためかRemoveがないのでDisposeで対応してます。
(ここら辺が原因でしょうか???)
pic1に5個のOvalShapeを置いてpic1.Controls.Countをしてみると5個コントロールがあることが取得できます。
しかし実際にコードを動かすと5個削除できずに3個できたりしています。
実際にはクリックで上記部分のコードが走るので何度か削除ボタンをクリックすると最終的には消えます。
なぜ上記コードで一回では消えないのでしょうか??
参考になる事があればお願いします!!
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/06 06:07