PDA

View Full Version : استفاده از event در #C



araelectronic@ymail.com
چهارشنبه 13 بهمن 1389, 17:50 عصر
با سلام
من یک ترازو دارم که از طریق پورت com به کامپیوتر وصل میشه . یک DLL داره که ارتباط از طریق اون صورت میگیره .
DLL یک event داره که دوتا آرگومان رو برمیگردونه که قبلا در vb.net ازش استفاده کردم . حالا میخوام تو C# ازش استفاده کنم ولی به مشکل خوردم و دستورات Event handell را نمیشناسه . لطفا راهنمایی کنید .
با تشکر

کد VB





Dim WithEvents wig As New OnlineWeightDLL.Pack

Public Sub processHappen(ByRef a As Boolean, ByVal b As Object) Handles wig.OnData

...
end sub

hossin.esm
چهارشنبه 13 بهمن 1389, 18:43 عصر
یک مثال اضافه کردن رویداد textChange به textBox1
هنگام تایپ وقتی تول تایپ ضاهر شد با کلید tab میتونی خودکار رویداد را ایجاد کنید


private void Form1_Load(object sender, EventArgs e)
{

textBox1.TextChanged+=new EventHandler(textBox1_TextChanged);

}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}

araelectronic@ymail.com
چهارشنبه 13 بهمن 1389, 19:14 عصر
ممنون از پاسختون ولی تو این مورد چون دوتا آرگومان داریم چطوری event را اضافه بکنم ؟

hossin.esm
چهارشنبه 13 بهمن 1389, 20:55 عصر
همان طور که گفتم
هنگام تایپ وقتی تول تایپ ظاهر شد با کلید tab میتونی خودکار رویداد را با پارامتر ورودی ایجاد کنید
یا میتونید دستی پارامتر ها را اضافه کنید.

araelectronic@ymail.com
چهارشنبه 13 بهمن 1389, 22:39 عصر
کد در C#


OnlineWeightDLL.Pack wig=new Pack();
wig.OnData += new __Pack_OnDataEventHandler (pphapend);
public void pphapend(ref bool a,object b )
{

}

araelectronic@ymail.com
جمعه 15 بهمن 1389, 01:18 صبح
من به یک مشکل جدید برخوردم . وقتی به یک تابع event جدید میدم موقعی که داخل آن میخوام به یک textbox مقدار بدم این ارور را میده Cross-thread operation not valid
دوستان لطفا راهنمایی کنید

با تشکر

hossin.esm
جمعه 15 بهمن 1389, 09:18 صبح
احتمالا از نخ استفاده شده و دسترسی به عناصر فرم به صورت مستقیم امکام پذیر نیست.
که باید از delegate , Invoke استفاده کنید.

یک مثال هم از قبل در رابطه با نخ ایجاد کرده بودم