0

重複の可能性:
画像をクリックして画像グリッドにドラッグしますか?

フォームにいくつかの画像ボックスがあり、グリッド全体が 64 x 64 の正方形の束になるように、フォーム全体に線がたくさんあるグリッドを配置する方法を考えていました。画像を選択してマウスを使用して特定の正方形に配置し、グリッド全体を調べて、たとえば特定の画像がグリッド上にいくつあるかを確認できるようにするために必要です。私が何をしているのかをよりよく理解していただくために、さまざまな 64 x 64 画像を含む画像ボックスがいくつかあります。最後にクリックした画像を表示する別の画像ボックスがあります。これは、グリッド内のボックスを左クリックすると、グリッド内の特定のボックスに貼り付けられるため、ブラシのようなものです。ボックスを右クリックして、マウスが置かれているボックス内の画像を削除できるようにするためにも必要です。最後に、ボックス内のすべての画像を読み取り、後で開くことができるファイルに出力できるようにする必要があります。私はゲームで土地を作成するためにそれを使用しています。プログラムは必要なテクスチャを出力し、地面レベルは地形全体を構成するボックスの場所です。私が知る必要があるのは、これを行うにはどのようなことをすればよいですか? 私は過去数時間、箱の作り方やマウスの場所などを知る方法を試してきましたが、完全に立ち往生しています. シンプルなアイデアが役に立ちます。実際には、これにどのコントロールを使用すればよいかわかりません。そのため、グリッド コントロールを含まないアイデアは依然として非常に役立ちます。私が知る必要があるのは、これを行うにはどのようなことをすればよいですか? 私は過去数時間、箱の作り方やマウスの場所などを知る方法を試してきましたが、完全に立ち往生しています. シンプルなアイデアが役に立ちます。実際には、これにどのコントロールを使用すればよいかわかりません。そのため、グリッド コントロールを含まないアイデアは依然として非常に役立ちます。私が知る必要があるのは、これを行うにはどのようなことをすればよいですか? 私は過去数時間、箱の作り方やマウスの場所などを知る方法を試してきましたが、完全に立ち往生しています. シンプルなアイデアが役に立ちます。実際には、これにどのコントロールを使用すればよいかわかりません。そのため、グリッド コントロールを含まないアイデアは依然として非常に役立ちます。

4

1 に答える 1

0

それが最善のアイデアかどうかはわかりませんが、WrapContent を true に設定し、FlowDirection = LeftToRight で FlowLayoutPanel を使用できます。ただし、ドラッグ&ドロップ操作については知りません(FlowLayoutPanelで行ったことはありませんが、素晴らしいチュートリアルがいくつかあります)。

マウス イベントを使用して、マウスの位置を追跡できます。それをしたくない場合:

次を使用して、いつでも絶対位置を取得できます。

Point currentPos = System.Windows.Forms.Cursor.Position;

次に、(現在の) コントロールの相対位置を取得するには:

Point relativeLoc = this.PointToClient(currentPos)

...そして、どのマウスが FlowLaoutPanel にあるかを制御するには:

Control c = flowLayoutPanel1.GetChildAtPoint(relativeLoc);
于 2013-01-24T07:50:39.303 に答える