VB.netのwinsockをVBのようにコントロール配列にして使用するには?

解決


あみゅーず  2003-11-20 21:49:48  No: 80510  IP: [192.*.*.*]

VB.netのwinsockをVBのようにコントロール配列にして使用するには?

VB.netでwinsockをVBのように配列にして使用したいと思い、
以下のようにwinsockのインスタンスを配列に格納したのですが


    Public sckBase(3) As AxMSWinsockLib.AxWinsock     ' Winsockcontrolをコントロール配列として使用する
 
    Private Sub frmServer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer
        Dim strPort As String

        For i = 0 To 3
            sckBase(i) = New AxMSWinsockLib.AxWinsock()
        Next

        strPort = InputBox("サーバで使用するポート番号を入力してください", "Input Port No.", 10000)
        sckBase(0).LocalPort = CLng(strPort)                ' Server Port
        sckBase(0).Listen()                                 ' sckBase(0)は listen 専用
    End Sub

sckBase(0).LocalPort = CLng(strPort) の部分で
「'InvalidActiveXStateException' のハンドルされていない例外が 
  axinterop.mswinsocklib.dll で発生しました。」
となってしまい、うまく行きません。ご享受よろしくお願いします。

編集 削除
あみゅーず  2003-11-23 02:44:56  No: 80511  IP: [192.*.*.*]

本件、ある方のご好意によりまして解決いたしました。

Me.SuspendLayout()
For i = 0 To 3
sckBase(i) = New AxMSWinsockLib.AxWinsock
CType(sckBase(i), System.ComponentModel.ISupportInitialize).BeginInit()
Controls.Add(sckBase(i))
CType(sckBase(i), System.ComponentModel.ISupportInitialize).EndInit()
Next
Me.ResumeLayout(False)

もし同様なことでお悩みの方のための参考にどうぞ。

編集 削除