0

私はアプリケーション開発スキルを強化するために趣味のプロジェクトに取り組んでいます。私にいくつかの問題を与えている1つの特定の部分があります。

私のプロジェクトはD&Dのキャラクタージェネレーターです。1つのセクション内で、属性スコアを生成しています。「生成」パネルを開くボタンがあります。生成パネルには6つの属性領域があり、いくつかの要件(リストから生成方法を選択してボタンをクリック)を満たしたときにプログラムで入力されます。

生成の各方法。ただし、1つを使用すると、ユーザーは6つのスコアを6つの属性に割り当てることができます。

選択したスコアを割り当てる場所を選択するためのダイアログ(またはモーダルなど)を開くクリック可能なボタンを簡単に作成できますが、それでは新しいことは何も教えられません。

代わりに、ユーザーに属性スコア(現在はパネル内のテキストボックス)を割り当てたい属性にドラッグアンドドロップしてもらいます(現在、各属性はテキストボックスから作成されています。ラベルと別のテキストボックスで、ユーザーがこれら3つの領域のいずれかに値をドロップできるようにしたいと思います)。

また、ユーザーが属性スコア間で値をドラッグアンドドロップできるようにしたいのですが、それは答えから最初の部分までかなり簡単に続くはずです。

つまり、ユーザーがコントロールの値をアプリケーション内の別のコントロールにドラッグできるようにするにはどうすればよいですか?

4

1 に答える 1

0

かなりの量の検索を行った後、.NETWebフォームでのドラッグアンドドロップの基本について説明しているこの記事を見つけました。

以下にコピーされているのは必需品です。

ドラッグアンドドロップしたいもののMouseDownイベントで、「DoDragDrop」イベントを発生させ、ドロップしたいデータと達成したいもののDragDropEffects値を渡します。

ドラッグアンドドロップを受け入れることができるオブジェクトのMouseEnterイベントで、次のようなコードを実行します。

if ((e.AllowedEffect & DragDropEffects.Link) != 0

    && e.Data.GetDataPresent(typeof(string)))

    e.Effect = DragDropEffects.Link;

e.AllowedEffectはビット単位であり、複数の効果と一致する可能性があります。

e.Effectを設定すると、コントロールはドロップされたデータを受け入れることができます。'.Effect'に設定した効果によって、マウスの外観が決まります。

最後に、ドロップされたデータを受け入れるコントロールの「DragDrop」イベントで、「e.Data.GetData」を使用して移動されたデータにアクセスできます。これにより、キャスト可能なオブジェクトが返されます。

これは私の問題のいくつかを解決しません(特に、マウスはデータの「影」を持っていません)が、それは良い最初のステップです。

于 2013-02-12T15:50:15.857 に答える