Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将元素拖放到新区域_.net_Drag And Drop_Webforms - Fatal编程技术网

.net 将元素拖放到新区域

.net 将元素拖放到新区域,.net,drag-and-drop,webforms,.net,Drag And Drop,Webforms,我正在做一个爱好项目,以加强我的应用程序开发技能。有一件事给我带来了麻烦 我的项目是D&D的角色生成器。在一个部分中,我生成属性分数。我有一个打开“生成”面板的按钮。“生成”面板有6个属性区域,当它们满足某些要求时(从列表中选择生成方法并单击按钮),这些属性区域将按编程方式填充 每种生成方法(只有一种)都允许用户将六个分数分配给他们的六个属性 我可以很容易地点击这些按钮,打开一个对话框(或模式,或类似),选择在哪里分配所选的分数,但这不会教我任何新的东西 我想做的是,让用户将属性分数(当前是面板

我正在做一个爱好项目,以加强我的应用程序开发技能。有一件事给我带来了麻烦

我的项目是D&D的角色生成器。在一个部分中,我生成属性分数。我有一个打开“生成”面板的按钮。“生成”面板有6个属性区域,当它们满足某些要求时(从列表中选择生成方法并单击按钮),这些属性区域将按编程方式填充

每种生成方法(只有一种)都允许用户将六个分数分配给他们的六个属性

我可以很容易地点击这些按钮,打开一个对话框(或模式,或类似),选择在哪里分配所选的分数,但这不会教我任何新的东西

我想做的是,让用户将属性分数(当前是面板中的一个文本框)拖放到他们想要分配给的属性(当前每个属性都由一个文本框、一个标签和另一个文本框组成,我希望用户能够将值拖放到这三个区域中的任何一个)

我还希望允许用户在属性得分之间拖放值,但从答案到第一部分,这应该相当容易


简而言之,如何使用户能够将控件的值拖动到应用程序中的另一个控件?

经过大量搜索,我找到了描述.NET webforms中拖放的要点的内容

以下是要点:

在要拖放的对象的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”访问移动的数据,这将返回一个可转换对象

这并不能解决我的一些问题(值得注意的是,鼠标没有携带数据的“阴影”),但这是一个很好的第一步