我有一个DropDownList其SelectedIndexChanged事件我设置:

move.SelectedIndexChanged += Move;

public void Move(object sender, EventArgs e)
{
}

我想创建从EventArgs的派生的类,这是在变量“e”的获取传递到移动方法。

public void Move(object sender, EventArgs e)
{
  MyEventArgs my_e = (MyEventArgs)e;

  int Id = my_e.ID;
  position = my_e.position;
  etc;
}

时,可能吗? 如果是这样,我可以给,我可以在事件中使用这个类的属性:

我需要这样做,因为我想了解更多信息传递到比一个DropDownList目前包含Move方法。我可以把这个信息在DropDownList的ID但是这是难看且需要凌乱字符串解析。

例如

ID = "Id_4_position_2"

注意:根据要求由开发技术

我移动在一个列表中的元素。我需要知道旧秩序和新秩序。我可以通过使用DropDownList的ID存储在旧秩序和的SelectedValue存储新秩序这样做。因此,实际上,我有所有我需要的,但它似乎不雅把订单中的ID。我也想避免自定义事件,似乎太辛苦了。

替代文字http://www.yart.com.au/stackoverflow/move .PNG

有帮助吗?

解决方案

这是不可能的。

您不能施放一个父类的子类。

您的意思是这样:

public class MyEventArgs : EventArgs
{
}

然后,你必须EventArgs e并希望将其类型强制转换为MyEventArgs。这是行不通的。

一个子类延伸父类,这意味着它有更多的肉。父类是较窄。没有明智的方法以某种方式自动扩展父类对象成为一个子类对象。


如果你继承什么UI控件和自定义属性添加到它?

public class PositionDropDownList : DropDownList
{
    public int Id { get; set; }
    public int Position { get; set; }
}

当您为您的表单控件设置这些值。然后你就可以得到他们在您的活动:

public void Move(object sender, EventArgs e)
{
  PositionDropDownList ddl = (PositionDropDownList)sender;

  int Id = ddl.Id;
  position = ddl.Position;
}

将类似的东西,对你的工作?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top