PDA

View Full Version : سوال: چه کار کنم اندازه UserControl تغییر نکنه؟



rasol_afkham
شنبه 01 آذر 1393, 21:20 عصر
با سلام خدمت دوستان عزیز:لبخند:
من با استفاده از User Control یک کامپوننت درست کردم و داخلش یک سری اشکال با استفاده از کلاس Drawing ایجاد نموده ام. اندازه کامپوننتم رو 200*200 قرار دادم. اما بعد از اجرای برنامه، وقتی که به فرم (در حالت ویرایش) بر می گردم اندازه کامپوننت بزرگتر می شه. گاهی وقت ها چندین برابر فرم اصلی می شه، در صورتی که در حین برنامه اصلا اندازه کامپوننت رو تغییر نمی دم ...!:متفکر:

hosein2008
شنبه 01 آذر 1393, 22:15 عصر
سلام

باید حواستون باشه که Anchor و dock در فرم اصلی برای این کنترل درست تنظیم بشه

نباید ار دو طرف Anchor بخوره

rasol_afkham
شنبه 01 آذر 1393, 22:26 عصر
هر دوتاش برابر با None هستند. در ضمن، وقتی به صفحه کد نویسی می رم و دوباره به صفحه ویرایش فرم بر می گردم هم اندازه، موقعیت و همچنین Margin هم عوض می شه. بعضی وقتها خیلی تغییر می کنه. مثلا مقدار Margin عددیی بیشتر از 50000، در مورد اندازه و موقعیت هم همین طور. تو برنامه از کلاس های Drawing زیاد استفاده کردم، اما اندازه و موقعیتی رو تغییر ندادم. البته بعضی از روشها و خصوصیات و رویداد هایی که مربوط به UserControl می شه رو از کار انداختم. با استفاده از کد زیر
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]

hosein2008
شنبه 01 آذر 1393, 22:32 عصر
من یه برنامه قبلا نوشتم که همین مورد رو داشته

هر موقع میری نوی کد و برمیگردی مثلا جای یه دکمه عوض میشه. درسته؟

اگه خیلی عجله ای نیست من فردا که رفتم شرکت چک میکنم فردا شب جواب بهتون میدم

محمد آشتیانی
سه شنبه 04 آذر 1393, 15:41 عصر
سلام
شما میتونی تو رویداد Resize کنترلت سایز رو ثابت کنی ، به اینصورت


private void UserControl1_Resize(object sender, EventArgs e)
{
this.Size = new Size(200, 200);
}




موفق باشید

Mahmoud.Afrad
چهارشنبه 05 آذر 1393, 17:58 عصر
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();

this.MaximumSize = this.MinimumSize = this.Size;
}
}