※※※.NET小问题,100分哦!!!!

gameprogam 2002-09-18 06:16:06
问题1:
于new的问题。。
CClass为一个类
Dim A as New CClass和Dim A as New CClass()有什么区别?
问题2:
有什么好方法对窗体之间进行通讯,比如Form1要对Form2里面的控件进行实时控制?有什么好方法?
...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Latitude 2002-09-22
  • 打赏
  • 举报
回复
你硬要做进程通信也是可以的,看看我的一篇贴子,可能会有启发:
http://www.csdn.net/expert/topic/1032/1032015.xml?temp=.4239008
我在贴子中详细介绍了窗口间通信的方法。


---
by Henry
sumtec 2002-09-22
  • 打赏
  • 举报
回复
你没有看看我给你留的那几个以前的帖子?
我再来写一遍吧:

'mMain.vb
Module mMain
Public f1 As New Form1()
Public f2 As New Form2()

Sub Main()
Application.Run(f1)
End Sub
End Module

'Form1.vb
Class Form1
... ' VB自动生成代码,略

Friend Label1 As Label '拖上去的控件,自动生成的代码。
Friend Button1 As Button '拖上去的控件,自动生成的代码。

... ' VB自动生成代码,略

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Debug.WriteLine(f2.Label1_Text)
f2.Label1_Text = "Changed By Form1"
Debug.WriteLine(f2.Label1.Text) ' 注意看这句,和上面那句不一样。
' 但是提醒您,请慎用。
End Sub

Public Property Label1_Text As String
Get
Return Label1.Text
End Get
Set (Value As String)
Label1.Text = Value
End Set
End Property
End Class

'Form2.vb
Class Form2
... ' VB自动生成代码,略

Friend Label1 As Label '拖上去的控件,自动生成的代码。
Friend Button1 As Button '拖上去的控件,自动生成的代码。

... ' VB自动生成代码,略

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Debug.WriteLine(f1.Label1_Text)
f1.Label1_Text = "Changed By Form2"
Debug.WriteLine(f1.Label1.Text) ' 注意看这句,和上面那句不一样。
' 但是提醒您,请慎用。
End Sub

Public Property Label1_Text As String
Get
Return Label1.Text
End Get
Set (Value As String)
Label1.Text = Value
End Set
End Property
End Class


建议您还是先看看我留下来的旧帖子。
gameprogam 2002-09-19
  • 打赏
  • 举报
回复
1
Dim A as New CClass和Dim A as New CClass()有什么区别?
我有时候New的时候没有()就不行,带上()就可以,那个类的构造函数
根本不要什么参数........
2
我要的就是2个窗体对象之间如何进行通讯,我的2个解决方法
(1)用公用变量,把要的公用变量封装在一个类里面,在Sub Main里面
New一个对象,然后就可以用了
(2)窗体间的事件传递对相互的控件进行操作.
这么没有人说个好点方法啊?.......
Montaque 2002-09-18
  • 打赏
  • 举报
回复
一般没有什么区别。但是
Dim a as Byte
Dim a as Byte()
有区别,前者是一个字节,后者是一个数组。
bigrongshu 2002-09-18
  • 打赏
  • 举报
回复
1.要看这个类中的new函数,可能不带参数,也可能重载了带参数的

如果是后者,则new类的实例时候要带参数

2.使用窗体类(如form1)的属性(property)即可在form2中调用
sumtec 2002-09-18
  • 打赏
  • 举报
回复
http://www.csdn.net/Expert/TopicView1.asp?id=1001141
sumtec 2002-09-18
  • 打赏
  • 举报
回复
http://www.csdn.net/Expert/TopicView1.asp?id=873034
sumtec 2002-09-18
  • 打赏
  • 举报
回复
问题一:没有区别,这一对括号集成环境会自己添加上去的。
其实是调用了CClass这个累得New()过程,如果New是有参数的,那么有应该写成:
Dim A As New CClass(para1, para2)

问题二:楼主可能犯了概念性错误,VB.NET和VB6相差很多,此Form1非彼Form1了。VB.NET里面的Form1是一个类,或者你不明白的话你就理解为一个特殊的自定义类型,你不能直接操作这个Form1,而应该操作他的实例。
Type Form1
...
End Type

不能够Form1.Show
但是可以
Dim f As Form1
f = Me
f.Show

大概就是这个意思。
关于这个问题,在精华区有很多解答。自己可以找一下。

16,554

社区成员

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

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