Dart.Mail 名前空間 > TcpBase クラス : StateChanged イベント |
<DescriptionAttribute("Raised when the value of the State property changes.")> <CategoryAttribute("Property Changed")> Public Event StateChanged As EventHandler
[Description("Raised when the value of the State property changes.")] [Category("Property Changed")] public event EventHandler StateChanged
イベントハンドラでのUIコントロールの更新については、SynchronizingObjectプロパティを参照してください。
このイベントは、Readの呼び出し中にリモートホストが接続を閉じた場合に発生します。この状況では、Dartコンポーネントがフォームで作成された場合、このイベントを使用してフォームを破棄しないでください(これには、Form.Showを使用してフォームを表示していた場合にForm.Closeを呼び出すことも含まれます)。その代わりに、コンポーネントをフォーム以外の場所で作成してフォームに渡すか、実行中のReadが戻った後にフォームを破棄します。
private void myComponent_StateChanged(object sender, EventArgs e) { // 接続が確立されたとき、または閉じたとき(Stateプロパティが変更されたとき)に必ず発生します。 switch (myComponent.State) { case ConnectionState.Connected: case ConnectionState.ConnectedAndSecure: // インタフェースを更新して接続状態であることを示します。 textDisplay.ReadOnly = false; textDisplay.BackColor = Color.WhiteSmoke; Text = (myComponent.State == ConnectionState.Connected) ? "[Connected to " + myComponent.RemoteEndPoint.Address.ToString() + ":" + myComponent.RemoteEndPoint.Port.ToString() + "]" : "[Securely Connected to " + myComponent.RemoteEndPoint.Address.ToString() + ":" + myComponent.RemoteEndPoint.Port.ToString() + "]"; break; case ConnectionState.Closed: // インタフェースを更新して接続されていないことを示します。 textDisplay.ReadOnly = true; textDisplay.BackColor = Color.Silver; this.Text = "[Not Connected]"; break; } }
Private Sub myComponent_StateChanged(ByVal sender As Object, ByVal e As EventArgs) ' 接続が確立されたとき、または閉じたとき(Stateプロパティが変更されたとき)に必ず発生します。 Select Case myComponent.State Case ConnectionState.Connected, ConnectionState.ConnectedAndSecure ' インタフェースを更新して接続状態であることを示します。 textDisplay.ReadOnly = False textDisplay.BackColor = Color.WhiteSmoke Text = If((myComponent.State = ConnectionState.Connected), _ "[Connected to " & myComponent.RemoteEndPoint.Address.ToString() & ":" & _ myComponent.RemoteEndPoint.Port.ToString() & "]", "[Securely Connected to " & _ myComponent.RemoteEndPoint.Address.ToString() & ":" & _ myComponent.RemoteEndPoint.Port.ToString() & "]") Case ConnectionState.Closed ' インタフェースを更新して接続されていないことを示します。 textDisplay.ReadOnly = True textDisplay.BackColor = Color.Silver Me.Text = "[Not Connected]" End Select End Sub