private void button1_Click(object sender, EventArgs e){}
谁能用通俗的语言详细的解释一下privatevoidbutton1_Click(objectsender,EventArgse){}这个事件的运行机制啊?要是能举几个小简...
谁能用通俗的语言详细的解释一下private void button1_Click(object sender, EventArgs e){}这个事件的运行机制啊?要是能举几个小简单的小例子就太好了,谢谢你们了!
关键的是(object sender, EventArgs e)小括号里面的不理解! 展开
关键的是(object sender, EventArgs e)小括号里面的不理解! 展开
3个回答
展开全部
object sender
触发这个函数发生的对象
EventArgs e
事件相关参数数据
你要为一个事件写一个响应函数,你需要什么?
1.是谁触发的:你可以把三个按钮的点击事件都指定为一个响应函数,但是你要是做出不同反应怎么办?区分sender看是哪个按钮。
2.触发的是什么事件,这个事情的详细情况是什么:这里边包含着事件能提供的附属信息
可以理解下下面方法中的 e 所起的作用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//删除时的确定
(e.Row.Cells[6].Controls[0] as LinkButton).Attributes.Add("onclick","return confirm('确定删除?');");
//实现光棒效果
e.Row.Attributes.Add("onmouseover","this.bgColor='#ee00ee';");
e.Row.Attributes.Add("onmouseout", "this.bgColor='#ffffff';");
//如果编辑的索引和当前你选的行的索引相同
if (GridView1.EditIndex == e.Row.RowIndex)
{
//找到下拉列表控件(注意是该控件的ID)
DropDownList ddl = e.Row.FindControl("DropDownList1") as DropDownList;
//(e.Row.DataItem)来获得当前这一行数据所对应的实体类对象
Entity entity= (e.Row.DataItem as Entity);
//ddl.ClearSelection();
//在下拉列表中找到该对象的学历并选中
ddl.Items.FindByText(worker.WorkStudyLevel).Selected = true;
FileUpload fu = e.Row.FindControl("FileUpload1") as FileUpload;
//通过属性中杂项找到id
Image hi = e.Row.FindControl("Image1") as Image;
string scriptStr = "SetImage(this.value,'name');";
scriptStr = scriptStr.Replace("name",hi.ClientID);
fu.Attributes.Add("onchange", scriptStr);
//fu.Attributes.Add("onchange", "SetImage(this.value,'"+hi.ClientID+"');");与上一样
}
}
}
触发这个函数发生的对象
EventArgs e
事件相关参数数据
你要为一个事件写一个响应函数,你需要什么?
1.是谁触发的:你可以把三个按钮的点击事件都指定为一个响应函数,但是你要是做出不同反应怎么办?区分sender看是哪个按钮。
2.触发的是什么事件,这个事情的详细情况是什么:这里边包含着事件能提供的附属信息
可以理解下下面方法中的 e 所起的作用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//删除时的确定
(e.Row.Cells[6].Controls[0] as LinkButton).Attributes.Add("onclick","return confirm('确定删除?');");
//实现光棒效果
e.Row.Attributes.Add("onmouseover","this.bgColor='#ee00ee';");
e.Row.Attributes.Add("onmouseout", "this.bgColor='#ffffff';");
//如果编辑的索引和当前你选的行的索引相同
if (GridView1.EditIndex == e.Row.RowIndex)
{
//找到下拉列表控件(注意是该控件的ID)
DropDownList ddl = e.Row.FindControl("DropDownList1") as DropDownList;
//(e.Row.DataItem)来获得当前这一行数据所对应的实体类对象
Entity entity= (e.Row.DataItem as Entity);
//ddl.ClearSelection();
//在下拉列表中找到该对象的学历并选中
ddl.Items.FindByText(worker.WorkStudyLevel).Selected = true;
FileUpload fu = e.Row.FindControl("FileUpload1") as FileUpload;
//通过属性中杂项找到id
Image hi = e.Row.FindControl("Image1") as Image;
string scriptStr = "SetImage(this.value,'name');";
scriptStr = scriptStr.Replace("name",hi.ClientID);
fu.Attributes.Add("onchange", scriptStr);
//fu.Attributes.Add("onchange", "SetImage(this.value,'"+hi.ClientID+"');");与上一样
}
}
}
展开全部
C#是事件驱动的语言,sender是触发此事件的源,就是你代码中的BUTTON1。
而EVENTARGS是当前事件的一些参数
而EVENTARGS是当前事件的一些参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sender 触发事件的源头。可以转化为自己想要的控件,例:
Button btnData=sender as Button;
btnData.Text="1";//为触发事件的按钮改变Text属性
不知道你的是不是aspx页面。 要是aspx页面 怎么能用private呢?应该是protected
Button btnData=sender as Button;
btnData.Text="1";//为触发事件的按钮改变Text属性
不知道你的是不是aspx页面。 要是aspx页面 怎么能用private呢?应该是protected
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询