Windows 窗体 C#(拖放 100 个对象)
Posted
技术标签:
【中文标题】Windows 窗体 C#(拖放 100 个对象)【英文标题】:Windows Forms C# (DragDrop for 100 objects) 【发布时间】:2021-01-03 00:41:18 【问题描述】:我目前有一个关于我的学校项目的问题(我们想开发一个类似于积木拼图的游戏)。 我们构建一个字段 (10x10)
我已经开始管理“my field1x1”的 DragDrop。
private void field1x1_DragDrop(object sender, DragEventArgs e)
fieldBoxes[0,0].Image = (Bitmap)e.Data.GetData(DataFormats.Bitmap, true);
foreach (PictureBox checks in fieldBoxes)
checks.AllowDrop = true;
checks.DragEnter += field1x1_DragEnter;
checks.DragDrop += field1x1_DragDrop;
我的问题是:如何简化无需手动创建 100 个 DragDrops 的代码? 因为
【问题讨论】:
您应该查看sender
参数。它将是拖动的控件,将其转换为 pbox 后,您可以访问其所有属性。我希望您在标签中有一个有用的名称或数据可以使用。您可以将所有事件映射到相同的代码,或者您可以创建一个 pbox 子类。要连接事件,您可以使用一两个循环。
谢谢!使用这些私有 void field1x1_DragDrop(object sender, DragEventArgs e) if (sender is PictureBox) ((PictureBox)sender).Image = (Bitmap)e.Data.GetData(DataFormats.Bitmap, true);
【参考方案1】:
private void field1x1_DragDrop(object sender, DragEventArgs e)
if (sender is PictureBox)
((PictureBox)sender).Image = (Bitmap)e.Data.GetData(DataFormats.Bitmap, true);
这就是解决方案
【讨论】:
以上是关于Windows 窗体 C#(拖放 100 个对象)的主要内容,如果未能解决你的问题,请参考以下文章
在我的 .NET Windows 窗体上实现从 Chrome 拖放