C# 提取并比较eventargs数据
我在比较从eventargument获得的数据时遇到了一个问题,更具体地说,我有两个使用接口的类,我们称之为“IInt”。我还有一个列表,其中填充了这两个类的对象 我目前使用OnDragDrop事件从这个列表中拖动对象,但是我需要一种方法来确定我拖动的对象是class1还是class2。是否有方法提取数据并使用DragEventArgs drgevent进行比较 首先,当我从列表中抓取一个对象时C# 提取并比较eventargs数据,c#,windows,winforms,forms,C#,Windows,Winforms,Forms,我在比较从eventargument获得的数据时遇到了一个问题,更具体地说,我有两个使用接口的类,我们称之为“IInt”。我还有一个列表,其中填充了这两个类的对象 我目前使用OnDragDrop事件从这个列表中拖动对象,但是我需要一种方法来确定我拖动的对象是class1还是class2。是否有方法提取数据并使用DragEventArgs drgevent进行比较 首先,当我从列表中抓取一个对象时 foreach (IInt d in dlist) DoDragDrop(d.GetType
foreach (IInt d in dlist)
DoDragDrop(d.GetType(), DragDropEffects.Move);
当我想提取数据的时候,检查拖拽的是什么物体
protected override void OnDragDrop(DragEventArgs drgevent)
{
if (drgevent.GetType() == typeof(DragedObject))
do stuff...
}
在最终找到问题的根源之后,你的答案似乎是 如果我对你的理解是正确的,那么你就是在寻找 你可以用 或 更新 如果没有提供更多的代码,您需要执行以下操作:
foreach (IInt d in dlist)
DoDragDrop(d, DragDropEffects.Move);
DoDragDrop
听起来像是将从对象和效果创建DragEventArgs,因此您可能需要以下内容:
protected override void OnDragDrop(DragEventArgs drgevent)
{
if (drgevent.dObject.GetType() == typeof(DraggedObject))
do stuff...
}
请注意,您不是在测试arg本身,而是在测试它所包含的内容。在最终找到这个问题的根源之后,您的答案似乎是 如果我对你的理解是正确的,那么你就是在寻找 你可以用 或 更新 如果没有提供更多的代码,您需要执行以下操作:
foreach (IInt d in dlist)
DoDragDrop(d, DragDropEffects.Move);
DoDragDrop
听起来像是将从对象和效果创建DragEventArgs,因此您可能需要以下内容:
protected override void OnDragDrop(DragEventArgs drgevent)
{
if (drgevent.dObject.GetType() == typeof(DraggedObject))
do stuff...
}
请注意,您不是在测试arg本身,而是在测试它包含的内容。似乎不起作用,在我的DoDragDrop上,我从列表中发送项目的类型,如下所示:DoDragDrop(obj.GetType(),DragDropEffect.Move)(其中obj是遍历整个列表的foreach循环中的ref变量)您可能应该上传一个示例代码段。如果您的DoDragDrop需要一个类型,则这是正确的,但如果它需要一个您将测试该类型的对象,则这是错误的。是的,请编辑op以更清楚地说明我想要实现的目标。@Jacco这仍然没有帮助。缺少完整的故事……似乎您希望将
d
传递到DoDragDrop
而不是它的类型。但是,我不知道这一切是如何发展到Arg水平的……我对这方面还相当陌生,所以我的尝试可能完全失败了,idk。。但希望我想要实现的是足够清楚的,从列表中发送一些内容,稍后再获取它的类型。我不知道我还能怎么解释它,我所知道的只是我尝试过的东西暂时不起作用。似乎不起作用,在我的DoDragDrop上,我从列表中发送项目的类型如下:DoDragDrop(obj.GetType(),DragDropEffect.Move)(其中obj是遍历整个列表的foreach循环中的ref变量)您可能应该上传一个示例代码段。如果您的DoDragDrop需要一个类型,则这是正确的,但如果它需要一个您将测试该类型的对象,则这是错误的。是的,请编辑op以更清楚地说明我想要实现的目标。@Jacco这仍然没有帮助。缺少完整的故事……似乎您希望将d
传递到DoDragDrop
而不是它的类型。但是,我不知道这一切是如何发展到Arg水平的……我对这方面还相当陌生,所以我的尝试可能完全失败了,idk。。但希望我想要实现的是足够清楚的,从列表中发送一些内容,稍后再获取它的类型。我不知道还能怎么解释,我只知道我试过的东西暂时不起作用。
protected override void OnDragDrop(DragEventArgs drgevent)
{
if (drgevent.dObject.GetType() == typeof(DraggedObject))
do stuff...
}