|
分類:[.NET 全般]
こんにちは。よろしくお願いします。
VS2005、C#を使っております。 お絵かきツールのようなものを作成中です。 Shapeという基底クラスがあり、その派生クラスとしてShapeRectangleやShapeCircleなど、 いくつかの形を描画する派生クラスをつくりました。
画面の左側に、ListBoxがあり、"四角形"や"三角形"などがアイテムとして存在します。 そのListBoxから、マウスでドラッグしながら描画キャンバスにマウスポインタを移動した際に、 protected override void OnDragOver(DragEventArgs drgevent) { if (drgevent.Data.GetDataPresent(typeof(Shape))) { // ドラッグ中の処理 } } という記述をしても、ifの中に入ってくれません。 if (drgevent.Data.GetDataPresent(typeof(ShapeRectangle))) のように、派生クラスを指定した場合はifの中に入ってくれるのですが...。 1つ1つを書くのは面倒なので、 出来れば基底クラスを指定するような記述でとりまとめたいのですが、 良い方法があれば教えてください。
|