PDA

View Full Version : مشکل در نمایش فرم در تردها



sh1369
سه شنبه 27 تیر 1391, 18:38 عصر
سلام
دوستان من این قطعه کد رو تو برنامم استفاده کردم از طرف سرور وقتی به کلاینت دستور لاک شدن رو می فرستم باید فرم دوم برنامه کلاینت رو به صورت تمام صفحه نشان بده اما مشکل اینه که یه لحظه خیلی کوتاه فرم رو نشون می ده بعد سریع hide می کنه چیکار کنم که درست بشه
لطفا کمکم کنید ممنون
کد برنامه هم در زیر اومده

void locking()
{
TcpListener ml1 = newTcpListener(1371);
ml1.Start();
while (true)
{
sm = ml1.AcceptSocket();
tc1 = newThread(newThreadStart(recieve_lock));
tc1.Start();
}
}
//----------------------------------------//
void recieve_lock()
{
byte[] data1 = newbyte[4];
int recv;
recv = sm.Receive(data1);
string str1 = Encoding.UTF8.GetString(data1);
str1 = str1.Trim();
//MessageBox.Show(str1);
if (str1 == "LOCK")
{
//Process.Start("Rundll32.exe", "user32.dll,LockWorkStation");
Form f2 = newForm2();
f2.Show();
}
elseif (str1 == "UNLO")
{
Form f2 = newForm2();
f2.Hide();
}
}

fjm11100
چهارشنبه 28 تیر 1391, 11:20 صبح
والا از اونجایی که یک if ساده بنظر میاد! یا توی send داری unlock را میفرستی یا elseif یک مشکلی داره مطمئنی کدت جای این اینطوری نیست؟ به { ها توجه کن

elseif (str1 == "UNLO")
Form f2 = newForm2();
f2.Hide();

fjm11100
چهارشنبه 28 تیر 1391, 11:23 صبح
اخ ببخشید این کد شما یک اشکال اساسی هم داره

Form f2 = newForm2();
f2.Hide();



اصلا مفهومی نداره چون f2 اول یک چیزه دیگه است f2 دوم شی دیگه ای. باید همون فرمی که با Lock ساختی را نگه داری تا بعدا همون را Hide کنی

sh1369
چهارشنبه 28 تیر 1391, 17:06 عصر
سلام ممنون که جواب دادین من فرم دوم رو هم به شکل عمومی و بیرون از بلاک کدم ساختم اما بازم اثری نکرد و به همون شکل قبلی موند
بازم منتظر نظرات شما عزیزان هستم
تشکر