• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

如何在自定义子类里操作窗体啊??

davidw6 2005-03-12 06:40:01
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.RichTextBox1.Text = ""
Dim dd As New test1
dd.ss = 797809
dd.test2()
End Sub
Public Class test1
Public ss As Integer
Public Sub test2()
Dim frm As Form1
frm = New Form1
frm.RichTextBox1.Text = ss
End Sub
End Class

RichTextBox1.Text并没有改变!怎么回事啊,怎么做,谢谢!!!
...全文
75 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
davidw6 2005-03-13
太棒了,解决问题了!!!!
回复
机器人 2005-03-13
frm = New Form1 〈========= 这是你New出来的新窗口,并不是你想改的窗口!
frm.RichTextBox1.Text = ss

正如 hamadou(闵峰) 所说,修改Test1的构造函数,把想要修改的窗体的引用作为参数传递给Test1
回复
捏造的信仰 2005-03-13
检查frm变量持有的对象是不是你真正想要的那个窗体!
回复
hamadou 2005-03-13
改成下面的可以:这里的form4就是你的form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.RichTextBox1.Text = ""
Dim dd As New test1(Me)
dd.ss = 797809
dd.test2()
End Sub

Public Class test1
Public ss As Integer
Private m_form As Form4
Public Sub New(ByVal m As Object)
m_form = CType(m, Form4)
End Sub
Public Sub test2()
m_form.RichTextBox1.Text = ss
End Sub
End Class
回复
hamadou 2005-03-13
这个很简单啊!你又创建了一个from1的实例,但却不显示它,你修改的不过是这个实例的richtextbox的text,但是你看到的却是另一个(最初显示的form1的一个实例)。当然看不到效果了!
回复
davidw6 2005-03-12
UP!!!!!!!!!
回复
davidw6 2005-03-12
把 frm = New Form1去掉后,执行错误!

未处理的“System.NullReferenceException”类型的异常出现在 WindowsApplication1.exe 中。

其他信息: 未将对象引用设置到对象的实例。
回复
Night_Elf 2005-03-12
把 frm = New Form1去掉
回复
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-12 06:40
社区公告
暂无公告