VB.net中有没有象JAVA里面(this)的东东啊!

elfzzf 2003-03-07 11:47:37
我做了一个公共函数 function(this)
想把调用控件名传过去,不想直接写控件名! java里只要写 函数名(this)就可以
了,VB。NET可以吗?怎么做?
...全文
105 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumtec 2003-03-29
  • 打赏
  • 举报
回复
已经说过了,之所以你的this指的是当前的控件,原因就是你这个代码是在这个控件里面写的。如果你自己去写一个控件(比如说继承了TextBox的控件),那么在这个代码里面写的Me就相当于java里面的this。你找不到对应的东西是因为你写的地方根本就不一样,在java里面你写的代码再textbox里面,在vb.net你写的代码是在form里面,于是java的this代表的就是textbox,在vb.net里面的me代表的就是form。这恰好证明了java的this等于vb.net的me。

此外,如果你是在事件里面写的话,那么sender可以代表驱动这个事件的那个具体的控件,比如:
Private Sub TextBox1_Changed(ByVal sender As Object ....) Handles TextBox1.Changed
Dim t As TextBox
t = CType(sender, TextBox)
' 此时 t 就是 textbox1
End Sub

如果你想把这个控件传给另一个函数,你可以这样做:

Private Sub XXX_EventXXX(ByVal sender As Object, ByVal e As ...EventArgs) Handles XXX.EventXXX
my_function(sender)
End Sub
elfzzf 2003-03-09
  • 打赏
  • 举报
回复
太不方便,太不爽了,这个问题难道VB.NET里面就没有对应的解
决方法吗?
Montaque 2003-03-08
  • 打赏
  • 举报
回复
Me是表示当前的Class实例,并不是当前使用的控件。
sumtec 2003-03-08
  • 打赏
  • 举报
回复
当然了!在Java中难道就不是表示当前Class的实例?难道在Form的代码里面写就是能够代表那个Form上面的当前使用的控件吗?
如果用Me没有用或者不是你想象的那样,那么就是翻译工作做得不好!java里面的this应该就跟c#里面的this是一样的吗?查一下C#和VB.NET关键字的区别,上面应该说了me就是c#里面的this。我可以保证这个me跟C#里面的是没有任何区别的!
Montaque 2003-03-07
  • 打赏
  • 举报
回复
不想直接写控件名,可以用with语句.
Struggling 2003-03-07
  • 打赏
  • 举报
回复
vb.net里是me。
c#里是this。
anika 2003-03-07
  • 打赏
  • 举报
回复
yes, me
dali1114 2003-03-07
  • 打赏
  • 举报
回复
me
jaffler 2003-03-07
  • 打赏
  • 举报
回复
me
sumtec 2003-03-07
  • 打赏
  • 举报
回复
晕!
VB.NET里面是Me
heroyujun 2003-03-07
  • 打赏
  • 举报
回复
可以,将this定义为控件

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧