创建表单名称和对象名称作为函数的参数

时间:2015-07-29 01:50:31

标签: vb.net function

我正在尝试将表单名称和对象作为public sub的参数传递,因为我有两个表单,它们几乎完全相同。

例如我在Form1中有richtextbox1,我在Form2中也有richtextbox1,我想创建一个像这样的公共子。

Public Sub Sub1(ByVal frm_name As form, Byval obj_name As object)
    frm_name.obj_name.Lines.Length 'Get the length of lines of that richtextbox
End Sub

然后我想打电话给它

'Form 1 Codes
Public Class Form1
   Private Sub Tmr1_Tick(sender As Object, e As EventArgs) Handles Tmr1.Tick
       Sub1(me, richtextbox1)
   End Sub
End Class

'Form 2 Codes
Public Class Form2
   Private Sub Tmr1_Tick(sender As Object, e As EventArgs) Handles Tmr1.Tick
       Sub1(me, richtextbox1)
   End Sub
End Class

它没有按照我想要的方式工作,我能做些什么工作吗?

1 个答案:

答案 0 :(得分:2)

想一想。你说的是你传递了事物的名字,但事实并非如此。您没有传递表单的名称;你自己传递了表格。你没有传递对象的名字;你正在传递对象本身。这个的实际意义是什么?要获得RichTextBox中的行数,对吗?因此,编写一个方法,将RichTextBox作为参数,然后调用它传递RichTextBox

Public Sub Sub1(rtb As RichTextBox)
    Dim lineCount = rtb.Lines.Length

    '...
End Sub

'Form 1 Codes
Public Class Form1
   Private Sub Tmr1_Tick(sender As Object, e As EventArgs) Handles Tmr1.Tick
       Sub1(richtextbox1)
   End Sub
End Class

'Form 2 Codes
Public Class Form2
   Private Sub Tmr1_Tick(sender As Object, e As EventArgs) Handles Tmr1.Tick
       Sub1(richtextbox1)
   End Sub
End Class