永发信息网

c# 中TextBox tb = (TextBox)sender表示?

答案:6  悬赏:40  手机版
解决时间 2021-03-31 21:54
  • 提问者网友:捧腹剧
  • 2021-03-30 23:12
c# 中TextBox tb = (TextBox)sender表示?
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-03-30 23:49
sender是一个表示引发该事件的对象,但类型不限,所以被定义为object类型。
如果需要访问这个对象的属性,就需要将它转换到原来的类型,可以使用强制转换。

TextBox tb = (TextBox)sender;
string str=tb.Text; //就可以获得它的Text属性
//而string str=sender.Text;就错了,因为sender是object,没有Text属性

再教你一点:as 关键字
像这种用法更推荐用as关键字写:
Textbox tb = sender as Textbox;
唯一的不同是你这种写法转换失败会引发异常,而这种写法转换失败tb的值为null。如果转换失败可能因为引发者不是Textbox类型,就无法转换。

----------------------------------------------------------------
hxx007ookk的意见我表示反对,试问这个框架为什么决定事件的引发者要被定义为object?你知道强制转换是一种特殊的函数,如果采取转换是损失效率的,为什么不直接声明为Textbox类型?原因在于是为了提供一种灵活度。sender可以不是Textbox类型,虽然你说的是一般的情况,但不是全部。开发一些应用程序过程中我就用到过。从事件角度讲这个函数是某个Textbox对象的TextChanged事件处理函数。然而也可以看作一个普通的函数,实际上谁都可以调用它,只要你愿意。Right?
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-03-31 05:25
就是 吧sender 强制转换成 TEXTBOX对象
你看下 SENDER是什么
  • 2楼网友:大漠
  • 2021-03-31 03:52
事件的发送转换成控件
  • 3楼网友:孤独的牧羊人
  • 2021-03-31 03:05
我们知道:textbox tx=new textbox()这是声明一个新的textbox。而sender是在事件中的操作对象。你可以这样理解:
TextBox tb = (TextBox)sender声明一个目标对象。
  • 4楼网友:骨子里都是戏
  • 2021-03-31 01:43
应该有个object sender参数,sender就是触发当期事件的控件
TextBox tb = (TextBox)sender
就是把sender强转成textbox类型
不是把事件转成控件。事件怎么转成控件??
sender就是触发当期事件的控件,是个OBJECT,你要用到当前的控件必须转成TEXTBOX才能用啊,比如取到textbox的text属性的值,就必须把sender 强转成textbox类型,才能取到text的值啊。TextBox tb = (TextBox)sender 然后 tb.Text就能取到了
  • 5楼网友:第四晚心情
  • 2021-03-31 00:08
不是 sender是txtIPn_TextChanged方法的参数
就是引发这个事件的那个控件的应用
TextBox tb = (TextBox)sender;
是强制类型转换 这个地方的sender本身就是TextBox类型的
有问题hi我
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯