私はC#を使用してWindowsフォームプロジェクトに取り組んでいます。ここでは、groupbox
をコンテナーとして使用し、それにアイテムを追加します(Labels
、pictureBoxes
...)。このコントロールにドラッグアンドドロップイベントを実装してマウスを使用してアイテムを移動できるかどうか、またはに追加したコントロールにこのイベントを実装する必要があるかどうかを知りたいですgroupBox
。
質問する
3740 次
2 に答える
1
私のトピックについていくつか調査した後、友人の助けを借りて解決策を見つけました。このタスクを実行するには、いくつかの変数、プロパティ、およびオブジェクトに割り当てる 3 つのマウス イベント (MouseMove、MouseUp、および MouseDown) を使用する必要があります。私も最近例を見つけました: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/6eb864ff-0ea8-4641-bc2a-83db94371429
于 2013-03-14T11:00:48.633 に答える
0
このコードは、コントロールをグループボックスにコピーするためのものです (ここでは Button に対して行っています。DragDrop イベントで Button クラスを他のクラスに変更することで、任意のコントロールを使用できます)。
まず、Groupbox の「AllowDrop」プロパティを true に設定します。
groupBox5.AllowDrop=true;
プロパティ ウィンドウから Groupbox の "DragEnter" イベントを作成します。
private void groupBox5_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
次に、プロパティ ウィンドウから Groupbox の "DragDrop" イベントを作成します。
private void groupBox5_DragDrop(object sender, DragEventArgs e)
{
Control c = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
// Declare rnd globally for creating random id for dynamic button(eg : Random rnd = new Random();)
Button btn = new Button();
btn.Name = "Button" + rnd.Next();
btn.Size = c.Size;
btn.Click += new System.EventHandler(DynamicButton_Click);
if (c != null)
{
btn.Text = c.Text;
btn.Location = this.groupBox5.PointToClient(new Point(e.X, e.Y));
this.groupBox5.Controls.Add(btn);
}
}
于 2014-10-30T08:52:05.133 に答える