【问题标题】:Windows Forms C# (DragDrop for 100 objects)Windows 窗体 C#(拖放 100 个对象)
【发布时间】: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); } }

标签: c# windows forms winforms drag-and-drop


【解决方案1】:
private void field1x1_DragDrop(object sender, DragEventArgs e)
        {
            if (sender is PictureBox)
            {
                ((PictureBox)sender).Image = (Bitmap)e.Data.GetData(DataFormats.Bitmap, true);
            }
            
        }

这就是解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多