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

解決


あみゅーず  2003-11-21 06:49:48  No: 80510

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 11:44:56  No: 80511

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

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)

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加