.net 将元素拖放到新区域
我正在做一个爱好项目,以加强我的应用程序开发技能。有一件事给我带来了麻烦 我的项目是D&D的角色生成器。在一个部分中,我生成属性分数。我有一个打开“生成”面板的按钮。“生成”面板有6个属性区域,当它们满足某些要求时(从列表中选择生成方法并单击按钮),这些属性区域将按编程方式填充 每种生成方法(只有一种)都允许用户将六个分数分配给他们的六个属性 我可以很容易地点击这些按钮,打开一个对话框(或模式,或类似),选择在哪里分配所选的分数,但这不会教我任何新的东西 我想做的是,让用户将属性分数(当前是面板中的一个文本框)拖放到他们想要分配给的属性(当前每个属性都由一个文本框、一个标签和另一个文本框组成,我希望用户能够将值拖放到这三个区域中的任何一个) 我还希望允许用户在属性得分之间拖放值,但从答案到第一部分,这应该相当容易.net 将元素拖放到新区域,.net,drag-and-drop,webforms,.net,Drag And Drop,Webforms,我正在做一个爱好项目,以加强我的应用程序开发技能。有一件事给我带来了麻烦 我的项目是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”访问移动的数据,这将返回一个可转换对象
这并不能解决我的一些问题(值得注意的是,鼠标没有携带数据的“阴影”),但这是一个很好的第一步