PDA

View Full Version : هندلر



yavari
سه شنبه 29 خرداد 1386, 11:04 صبح
سلام

من هر کاری میکنم که em_ClientListHandler به رویداد ClientListHandler وصل بشه ، نمیشه !


VB AddHandler Me.em.ClientListHandler, New GetClientsList(AddressOf em_ClientListHandler)
C# this.em.ClientListHandler += new GetClientsList(this.em_ClientListHandler);
دلگیت :

VB Public Delegate Sub GetClientsList(ByVal clientObject As IClientImplement)
C# public delegate void GetClientsList(IClientImplement clientObject);
این ایونتمه :

VB Public Event ClientListHandler As GetClientsList
C# public event GetClientsList ClientListHandler;
اینم کنترل کننده ایونت :

VB
Public Sub em_ClientListHandler(ByVal ici As IClientImplement)
Me.clientListPrivate = ici.ClientList
Dim th As Thread = New Thread(New ThreadStart(AddressOf Me.GetClientList))
th.Start()
End Sub
Private Sub GetClientList()
Me.lstUsers.Items.Clear()
Dim icc As IClientImplement
For Each icc In Me.clientListPrivate
Me.lstUsers.Items.Add(icc.IUserName)
Next
Me.lstUsers.BackColor = Color.LightBlue
Me.lblUserCount.Text = "There are currently " + Me.clientListPrivate.Count.ToString() + " user connected."
End Sub
C#

public void em_ClientListHandler(IClientImplement ici)
{
this.clientList = ici.ClientList;
Thread th = new Thread(new ThreadStart(this.GetClientList));
th.Start();
}

private void GetClientList()
{
this.lstUsers.Items.Clear();
foreach (IClientImplement icc in this.clientList)
{
this.lstUsers.Items.Add(icc.UserName);
}
this.lstUsers.BackColor = Color.LightBlue;
this.lblUserCount.Text = "There are currently " + this.clientList.Count.ToString() + " user connected.";
}

لیست شدن کلاینتا هم از اینجا الگو میگیره

VB
Public Interface IClientImplement
Shadows Property ClientList() As ArrayList
Property IUserName() As String
Property IMessage() As String
Property ReceiverName() As String
Sub ISendMessageTome(ByVal clientObject As IClientImplement)
Sub ISendWelcomeMessageTome(ByVal clientObject As IClientImplement)
Sub IUserLeft(ByVal clientObject As IClientImplement)
End Interface
C#
public interface IClientImplement
{
ArrayList ClientList
{
get;
set;
}

string UserName
{
get;
set;
}

string Message
{
get;
set;
}

string ReceiverName
{
get;
set;
}
void SendMessageTome(IClientImplement clientObject);
void SendWelcomeMessageTome(IClientImplement clientObject);
void UserLeft(IClientImplement clientObject);
}

اما ClientList من بعد از کانکت ، آپدیت نمیشه ! :ناراحت:

ممنون میشم یکی بگه کجای کارم می لنگه ! :ناراحت:
با تشکر

حامد مصافی
سه شنبه 29 خرداد 1386, 17:36 عصر
با سلام خدمت دوست عزیزم جناب یاوری.

1- میشه شبه کد های مربوط با ماژول نهایی (استفاده کننده) و کلاس و اینترفیس رو بذاری اینجا. یا اینکه مشخص کنی هر بلاک از کد های پست فوق مربوط به کدام پیمانه است.
2- این انقیاد رویداد به چه نیتی انجام می پذیرد؟؟
3- این عمل در کجا صورت می گیرد؟ کلاس ساخته شده یا کلاس مصرف کننده؟