回 帖 发 新 帖 刷新版面

主题:请问一下如何动态创建一个窗体(VB的)?

我已经做好一个窗体了,叫newform
我想在另一窗体里加个“新建”的按钮,点击一下,就新建一个newform的窗体。
不知道如何实现,一点想法都没有。

回复列表 (共7个回复)

沙发

dim frm as newForm
set frm=new newForm
frm.show

板凳

相当好。

3 楼


大哥,还有一个问题,
如何判断远程连到本地的winsock数组里的是winsock(?)

4 楼

如果你用控件数组的话,在控件的事件过程的参数里会有一个Index参数,用那个就可以区分是winsock(?)
如:
Private Sub Winsock1_Connect(Index As Integer)
Debug.Print Index
End Sub

5 楼


大哥,你的说法应该没问题。
这样的,我每个winsock的来连接我,我这里都会自动产生一个form窗体与之连接。
假设有两个连接,就会有两个form窗体,
一、我想,在每一个窗体里得到,与这个窗体里的winsock相连的index。
二、我接收到数据后,还要判断数据是哪个winsock发来的,放到相应的form里,
于是,我就不知道,一个index变量怎么完成了。

6 楼

为窗体增加一个属性或变量,用来记录与它相关联的winsock的index
如,在窗体里增加一个变量
public mWinsockIndex as Integer

其实,保存在窗体的tag属性里也是个可以考虑的做法
dim frm as newForm
set frm=new newForm
frm.Tag=winsock的index
frm.show
以后你需要时,可以从frm.Tag里取得

7 楼

一个总的窗体A收到数据后,根据是哪个客户端发来的winsock数据,传到不同的窗体(B1、B2、B3)的text里,你这个,还是只有一个变量,你的意思我大概明白,但我还是不知道如何实现。
'A收到消息
Private Sub winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
            On Error Resume Next
            Dim strdata As String
            winsock1(这里如何填,哪个发来的?).GetData strdata
            form(这里如何填,传到哪个窗体).txtMessage.Text = form(这里如何填,传到哪个窗体).txtMessage.Text & strdata
End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册