我正在尝试将表单名称和对象作为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
它没有按照我想要的方式工作,我能做些什么工作吗?
答案 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