PDA

View Full Version : معادل lockscreen در foxpro توي #C چيست؟



iranrose63
دوشنبه 20 خرداد 1387, 08:45 صبح
سلام
معادل lockscreen در foxpro توي #C چيه؟(وقتي lockscreen برابر true باشد هر تغييري كه در فرم داده بشه ديده نميشه تا وقتي كه false بشه)
در واقع من مي خوام جلوي پرش هايي را كه در موقع اعمال بعضي تغيرات در فرم ايجاد ميشه رو بگيرم

ASKaffash
دوشنبه 20 خرداد 1387, 08:57 صبح
با سلام
معادل
this.Enabled = false;

iranrose63
دوشنبه 20 خرداد 1387, 09:24 صبح
ممنون دوست عزيز ولي تغيير enabled جلوي پرش ها رو نمي گيره مي خوام تغييراتي كه در فرم ميدم ديده نشن تا وقتي كه كامل بشن

iranrose63
دوشنبه 20 خرداد 1387, 12:45 عصر
بچه ها اين مساله خيلي مهمه هر چند كه توي عملكرد برنامه تاثيري نداره ولي براي اينكه برنامه بهتر به نظر بياد و از نظر كاربر برنامه بهتر باشه اين مساله بايد حل بشه. كسي چيزي نميدونه

علیرضا مداح
دوشنبه 20 خرداد 1387, 17:58 عصر
سلام دوست عزیز ،
شما میتوانید از متدهای SuspendLayout و ResumeLayout مربوط به شیء Form استفاده نمایید ، به طور مثال کد زیر دو شیء Button را به فرم اضافه مینماید (MSDN) :


private void AddButtons()
{
// Suspend the form layout and add two buttons.
this.SuspendLayout();
Button buttonOK = new Button();
buttonOK.Location = new Point(10, 10);
buttonOK.Size = new Size(75, 25);
buttonOK.Text = "OK";
Button buttonCancel = new Button();
buttonCancel.Location = new Point(90, 10);
buttonCancel.Size = new Size(75, 25);
buttonCancel.Text = "Cancel";

this.Controls.AddRange(new Control[]{buttonOK, buttonCancel});
this.ResumeLayout();
}

iranrose63
سه شنبه 21 خرداد 1387, 08:14 صبح
ممنون از توجهتون آقاي مداح ولي اين توابع هم جلوي پرش ها رو نگرفت
من يه فرم پدر دارم كه در صورتي كه زبان آن تغيير كند در تمام فرم هاي فرزند كه باز هستند هم يك سري از كنترل ها جا به جا مي شوند موقعي كه اين اتفاق مي افته يك سري پرش در فرم ها ديده ميشه من مي خوام اين پرش ها از بين بره

ASKaffash
سه شنبه 21 خرداد 1387, 17:10 عصر
سلام
دوست عزیز چون قبلا فاکس کاربودم متوجه شدم ولی من در #C مشابه آن را ندیده ام وتغییرات در فرمها انگار سکته دارد(بنظرم نداریم چون DataGridView هم خیلی موقع سکته میزند)

iranrose63
چهارشنبه 22 خرداد 1387, 08:50 صبح
فكر نمي كنم قدرت #c از foxpro كمتر باشه يعني تا حالا كسي به يه همچين مشكلي برخورد نكرده وقتي تعداد كنترل هاي فرم زياد ميشن و شما مي خواين سايز يا مكان اونها رو عوض كنيد پرش روي فرم ديده نميشه اين مساله پرش كيفيت برنامه رو خيلي پايين مياره بايد يه روشي باشه كسي نميدونه حداقل اگه ممكنه راهنمايي كنيد دنبال چي بايد بگردم

اَرژنگ
چهارشنبه 22 خرداد 1387, 16:39 عصر
فكر نمي كنم قدرت #c از foxpro كمتر باشه يعني تا حالا كسي به يه همچين مشكلي برخورد نكرده وقتي تعداد كنترل هاي فرم زياد ميشن و شما مي خواين سايز يا مكان اونها رو عوض كنيد پرش روي فرم ديده نميشه اين مساله پرش كيفيت برنامه رو خيلي پايين مياره بايد يه روشي باشه كسي نميدونه حداقل اگه ممكنه راهنمايي كنيد دنبال چي بايد بگردم
به احتمال زیاد شما دارید طرز برنامه نویسی در فاکس را با سی‌شارپ پیاده میکنید، برایه اینکه ببینیم چکار کردید یک مثال ساده که اشکالی را که باهاش برخوردید را نمایش میده بفرستید (با سورس کامل) که یک دوایی برایه این مشکل پیدا کنیم.

iranrose63
شنبه 25 خرداد 1387, 11:22 صبح
جناب آرژنگ من اصلا با foxpro كار نكردم بنابر اين نمي تونم طرز برنامه نویسی در فاکس را با سی‌شارپ پیاده كنم رييس شركت من با foxpro كار ميكنه و من و ايشون كلي سر اين دو زبان با هم بحث داريم يه روز ايشون در مورد lockscreen به من گفتن و من دارم سعي ميكنم براي اون تو #C معادل پيدا كنم
متاسفانه نمي تونم سورس برنامم رو اينجا بذارو چون برنامه رو سرور شركته و من تو اون از كلاس هاي خودم استفاده كردم نمي تونم همه رو دوباره بنويسم ولي برنامم اينطوريه كه تو فرمم چند تا كليد دارم كه با كليك روي هر كدوم چندين panel به صورت ديناميك توليد ميشه كه تو هر كدوم از اونها چند lable هستند كه بنابر شرايط يكي از panel ها نشون داده ميشن و مكان و سايز lable ها هم تغيير ميكنن چون تعداد كنترل هاي فرم زياد موقع چيده شدن اونها روي فرم يك پرش ايجاد ميشه كه از زيبايي برنامه كم ميكنه مي خوام اين پرش ها از بين برن يعني تا وقتي كنترل ها در جاي خودشون قرار نگرفتن تصوير قبلي فرم نشون داده بشه (معادل lockscreen در foxpro) ميتونيد كمكم كنيد

ASKaffash
شنبه 25 خرداد 1387, 16:22 عصر
سلام
دوست عزیز قبلا به شما گفتم من فاکس کاربودم کار LockScreen قفل کردن نمایش فرم است و وقتی تصویر و چیدمان فرم روی حافظه توسط فاکس تمام شد با تغییر LockScreen کل ظاهر فرم به سرعت برق وباد نمایش داده میشود ولی فرمها در دات نت چنین خاصیتی ندارند(حتی فاکس قدیمی 2.6 هم Save Screen داشت که مشابه این کار را میکرد)

Mrs.Net
شنبه 25 خرداد 1387, 18:09 عصر
شاید اینجوری بهتر باشه
تو فاکس پرو با قفل کردن این اتفاق میافته : فرم بدون تغییر در حال ویو هست - بصورت آسینکرونایز تغییرات اعمال میشه و بعد تغییرات جدید نمایش داده میشه. اما تو سی شارپ شما بایدخودتون این کارو مدیریت کنید.
راه حلهای آماتور: شما میتونید فرم هاید کنید و بعد از تغییرات نمایش بدید. شما میتونید تولزهارو هاید کنید و بعد از تغییرات نمایش بدید.

اما بنظرم روشتونو باید چک کنید چون خود تغییر دادن جای تولزهای فرم مکث بوجود نمیاره مگه اینکه این تغییر همزمان با پر کردن تولزها یا محاسبات باشه. پس اینهارو از هم جدا کنید.

mohammed
شنبه 13 مهر 1387, 08:44 صبح
سلام
احتمالا ترکیب روشی که آقای مداح گفتند با تکنیک Double Buffering مشکل شمارا حل می کند.