您可以设置从ASP.NET控件EventArgs的?
题
我有一个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。我也想避免自定义事件,似乎太辛苦了。
解决方案
这是不可能的。
您不能施放一个父类的子类。
您的意思是这样:
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;
}
将类似的东西,对你的工作?
不隶属于 StackOverflow