Hi, Good day/night, First of all, excuse my bad english.. Well. I have the next problem...
I'm making a program where I can receive just one Message in a TextBox, and when I click the button or the textbox both must be removed, and then, the next messajes can go up in a AutoSlide Panel. Here is the whole code.. the last codebox is where I cant find the problem.. "How to use a button handler to make multiple controls created Dinamically to be closed". Thanks
Imports System.Threading
Imports System.Net.Sockets
Imports System.IO
Imports System.Drawing
Public Class Form1
Friend WithEvents NuevaOrden As TextBox
Friend WithEvents OrdenLista As Button
Private oInitSocket As TcpListener
Public i As Integer = 1
Private nMensajes As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
oInitSocket = New TcpListener(Net.IPAddress.Any, 60000)
oInitSocket.Start()
Me.Timer1.Enabled = True
End Sub
Private Sub chequear()
Me.Timer1.Enabled = False
If oInitSocket.Pending = True Then
Dim oClientSocket As Socket = oInitSocket.AcceptSocket()
Dim vDatos(255) As Byte
oClientSocket.Receive(vDatos)
NuevaOrden = New TextBox
NuevaOrden.Name = "Orden" & i
NuevaOrden.Parent = Me.PanelOrden
NuevaOrden.Tag = i
NuevaOrden.ReadOnly = True
NuevaOrden.Width = 100
NuevaOrden.Height = 50
NuevaOrden.Multiline = True
OrdenLista = New Button
OrdenLista.Name = "OrdenLista" & i
OrdenLista.Text = "OrdenLista" & i
OrdenLista.Parent = Me.NuevaOrden
OrdenLista.Tag = i
AddHandler OrdenLista.Click, AddressOf Me.OrdenLista_Click
NuevaOrden.Text &= vbCrLf & "Orden nº " & i & ": " & _
System.Text.Encoding.BigEndianUnicode.GetString(vDatos)
PanelOrden.Controls.Add(NuevaOrden)
NuevaOrden.Controls.Add(OrdenLista)
oClientSocket.Disconnect(False)
oClientSocket.Close()
nMensajes += 1
i += 1
End If
Me.Timer1.Enabled = True
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCerrar.Click
Dim condición As Integer
condición = MsgBox("¿Desea salir?", vbYesNo)
If condición = vbYes Then Me.Close() Else Exit Sub
End
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
chequear()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
End Sub
Private Sub FlowLayoutPanel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PanelOrden.Paint
End Sub
And here is my handler where I want the code to make both "button and TextBox" to be removed.
Private Sub OrdenLista_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim tag As String
Dim tag2 As String
tag = DirectCast(sender, Button).Tag
MsgBox(tag)
tag2 = "NuevaOrden" & tag
MsgBox("tag2: " & tag2)
tag = "OrdenLista" & tag
MsgBox("tag: " & tag)
PanelOrden.Controls.RemoveByKey(tag2)
PanelOrden.Controls.RemoveByKey(tag)
End Sub
End Class