2 ضمیمه
نقل قول: قفل شدن ComboBox
با سلام ...
جواب به: سوال اول شما
دوست عزیز، اول بصورت جداگانه کارکرد ComboBox ها و سایر بخش های موجود در پروژتون رو بررسی کنید تا مشخص بشه مشکل مربوط به کدوم بخشه، اگه Debug رو انجام دادین و مشکل رفع نشد، معمولا در اکثر زبان ها و البته در زبان #C واسه جلوگیری از بروز این چنین مشکلاتی می تونید از مدیریت خطا یا Exception استفاده کنید.
که ساختار تعریفش به این شکله :
try
{
// statements causing exception
}
catch( ExceptionName e1 )
{
// error handling code
}
catch( ExceptionName e2 )
{
// error handling code
}
catch( ExceptionName eN )
{
// error handling code
}
finally
{
// statements to be executed
}
جواب به: سوال دوم شما
واسه اینکه فرم شما در صورت باز بودن نتونه با هر سری درخواست، دوباره در یک یا چند صفحه جدید دیگه باز بشه.
1- روی Form1 پروژتون یه دکمه قرار بدید.
ضمیمه 151586
2- این کد رو به رویداد Click دکمه فرمتون اضافه کنید:
bool IsOpen = false;
foreach (Form f in Application.OpenForms)
{
if (f.Text == "Form2")
{
IsOpen = true;
f.Focus();
break;
}
}
if (IsOpen == false)
{
Form f2 = new Form2();
f2.Show();
}
}
}
3- یک فرم دیگه با نام Form2 ایجاد کنید.
ضمیمه 151587
4- در نهایت با اولین کلیک بر روی دکمه Open Form 2 صفحه Form2 پروژتون به نمایش درمی آید، و طبق شرطی که در کد بالا تعریف کردیم، در صورتی که Form2 باز باشه، فرم فقط Focus میشه و دیگه واسه یک یا چند بار دیگه باز نمیشه.
نقل قول: قفل شدن ComboBox
سلام
ممنو بابت راهنمایی
در مورد اول انجام دادم فرمایش شما رو ولی نشد،فکر میکنم دلیل مشکل اینه که وقتی فرم بسته میشه این بسته شدن به صورت کامل نیست و یکسری منابع هنوز درگیرن(ظواهر اینطوری نشون میده،چون برای بار اول لود فرم و کنترل هاش کمی طول میکشه به خاطر محاسبات ولی برای دفعات بعد خیلی سریع لود میشه)
در مورد دوم هم چون فرم از اینترنت استفاده میکنه (نرم افزار دیگه ای فرم رو لود میکنه)پیش میاد که در صورت قطع و وصل اینترنت ،فرم باز و بسته میشه
به همین خاطر دقیقا چیزی رو که نوشتم میخوام،یعنی تا مثلا f1 باز هست هیچ f1 دیگه ای حق باز شدن نداشته باشه
نقل قول: قفل شدن ComboBox
از دوستان اگر کسی میتونه لطفا کمک کنه
من قبل از این پست جستجو هم کردم بر اساس کلمات" ComboBox " و "قفل شدن" و نتایج رو یکی یکی بررسی کردم اما مورد مشابهی نبود
این مورد قفل شدن کمبوباکس ها خیلی اذیت میکنه و درگیرم کرده
نقل قول: قفل شدن ComboBox
یعنی کسی نیست یا اینکه همچین موردی فقط برای من پیش اومده:متفکر:
نقل قول: قفل شدن ComboBox
سلام دوست عزیز
چجوری کمبو باکس رو پر کردید؟
از دیتا بیس یا ؟؟؟؟؟؟
بعد از سلکت یا انتخاب یکی از آیتم های کمبو باکس آیا شرطی قرار دادین؟
نقل قول: قفل شدن ComboBox
نقل قول:
نوشته شده توسط
hamidrezax1
سلام دوست عزیز
چجوری کمبو باکس رو پر کردید؟
از دیتا بیس یا ؟؟؟؟؟؟
بعد از سلکت یا انتخاب یکی از آیتم های کمبو باکس آیا شرطی قرار دادین؟
سلام
از دیتا بیس نیست و دستی بهش دادم
اما چندتا کمبوباکس دیگه هم هست که اونها الان خام هستند و هیچ آیتم و سلکتی هم ندارن و بازم همزمان قفل میشن
و مسئله دیگه اینکه بدون سلکت و صرفا با یکی دوبار باز و بسته شدن فرم این اتفاق میفته و قفل میشن
نقل قول: قفل شدن ComboBox
دوست عزیز معمولا زمانی این اتفاق میفته که یک جایی شرطی داشته باشید و یا یک ارور توی فرمتون ایجاد بشه.مثلا یک فیلد باید عدد داده بشه و شما حروف وارد کرده باشید
در این صورت برنامه حالت هنگی میگیره و ایتم ها به درستی کار نمیکنن.این موضوع رو با چک پوینت گام به گام بررسی کنید و یا در صورت امکان کدهاتون رو قرار بدین تا دوستان بتونن نظراتشون رو ارائه بدن
موفق باشید
نقل قول: قفل شدن ComboBox
نقل قول:
نوشته شده توسط
hamidrezax1
دوست عزیز معمولا زمانی این اتفاق میفته که یک جایی شرطی داشته باشید و یا یک ارور توی فرمتون ایجاد بشه.مثلا یک فیلد باید عدد داده بشه و شما حروف وارد کرده باشید
در این صورت برنامه حالت هنگی میگیره و ایتم ها به درستی کار نمیکنن.این موضوع رو با چک پوینت گام به گام بررسی کنید و یا در صورت امکان کدهاتون رو قرار بدین تا دوستان بتونن نظراتشون رو ارائه بدن
موفق باشید
سلام
بسیار بسیار ممنون بابت وقتی که گذاشتید
همونطوری که عرض کردم کمبوباکس ها فقط یکیشون چندتا آیتم دستی داره و بقیه هنوز هیچ آیتم و سلکتی ندارن
و کدها هم جنبه آموزشی داشته و خیلی خیلی ساده هستند
از طرفی چون بدون سلکت قفل میشن بعیده از کدهای مربوط به کمبوباکس باشه
همونطوری که در چند پست بالا عرض کردم احتمالا بخاطر درگیری منابع فرم بسته شده هست
بازم کار میکنم ببینم چی میشه
گفتم شاید از دوستان باشه کسی که قبلا این تجربه رو داشته
نقل قول: قفل شدن ComboBox
سلام ،
به احتمال خیلی زیاد معماری نرم افزارتون صحیح نیست ! منظور اینه که روش هایی که شما برای فرم ها،اشیاء و فراخوانی اونا استفاده کردین احتمالا ایراد دارن ،
نکته دوم اینکه مهم نیست کدها چقدر ساده هستند یک خطای کوچیک میتونه Thread نرم افزار شما رو به DeadLock ببره که الان هم همین اتفاق افتاده.
بدون دیدن کدها یا حد اقل بخشی از اونا نمیشه نظر قطعی داد.
** ضمنا به نظر میاد شما باید نرم افزارتون رو MultiThread کنین ، کار با اینترنت قطعا با یک Thread امکان پذیر نیست چون شما باید مثلا n ثانیه یا دقیقه صبر کنین تا فلان سرور پاسخ شما رو بده و تا اونموقع کل ترد شما از جمله GUI هنگ میکنه.
** پیشنهاد میکنم برای نوشتن چنین برنامه های که عملیات سنگین دارن ( مثل کپی کردن فایل ، گرفتن بک آپ ، دانلود و آپلود از اینترنت و غیره) حتما در خصوص MultiThreading تحقیق کنین.
مباحثی مثل async/await و Task.Run.
یه ویدئو در آپارات موجوده که بنده سالها پیش آپلود کردم شاید به کارتون بیاد :
https://www.aparat.com/v/dfbZo
نقل قول: قفل شدن ComboBox
سلام و سپاس
بله یک احتمال این هست که معماری صحیح نباشه
در مورد نکته دوم که فرمودید منظورم از ساده بودن کدها اینه که کم و قابل محاسبه به صورت ذهنی و دستی هستند و مسئله دیگه اینکه کل فرم و کنترل هاش و حتی تایمر به درستی کار میکنن و فقط کمبوها قفل میشن
در مورد Thread هم علاقه زیادی به یادگیری دارم اما به دنبال منبعی هستم که از صفر به صورت اصولی آموزش داده باشه و مثال زده باشه،اگر سراغ دارین ممنون میشم آدرس بدید
نقل قول: قفل شدن ComboBox
نقل قول: قفل شدن ComboBox
نقل قول:
نوشته شده توسط
ShayanFiroozi
بی نهایت ممنون