PDA

View Full Version : ساخت user control پیشرفته



shr6557
دوشنبه 04 شهریور 1387, 17:01 عصر
سلام
من یه user control طراحی کردم که در خودش یک panel رو جای داده ولی وقتی user control رو به فرم می چسبونم این امکان وجود نداره که با drag کردن اشیا بر روی user control قسمت panel اشیایی مثل textbox به panel من در متصل بشن چکار می تونم بکنم؟

pesare_ariyayi
دوشنبه 04 شهریور 1387, 17:39 عصر
منظورتون رو از اتصال متوجه نمی شم.
اگر منظورتون چسبیدن مرز textbox به panel داخل کنترلتون هست, باید بگم فرمی که شما control خودتون رو توش drag کردید فقط مرزهای control رو ملاک قرار میده و مرز panel رو در نظر نمی گیره که با نزدیک کردن textbox به panel بهش بچسبه.
اما اگه منظورتون از اتصال بدست گرفتم panel داخل control توسط کد هست, کافیه شما panel رو تو قسمت طراحی public, control تعریف کنید. اینطوری می تونید هرجایی که یک نمونه از controlتون درست می کنید به panel اون دسترسی داشته باشید.

shr6557
دوشنبه 04 شهریور 1387, 18:39 عصر
نه من می خوام مثله کنترل tabcontrol بتونم یه فضایی داشته باشم که هر شی که خواستم داخل اون قرارا بدم

pesare_ariyayi
دوشنبه 04 شهریور 1387, 19:11 عصر
من تا حالا همچین تجربه ای نداشتم اما تا اگه بخوام یه پیشنهاد کنم می تونم بگم که:
توی drag event پنل control برو و توی sender, method رو مساوی panel child قرار بده.
اینطوری:


private void panel1_DragDrop(object sender, DragEventArgs e)
{
Control hi = (UserControl)sender;
hi.Parent = this.panel1;
}

اینطوری میتونی یک کپی از آبجکتی که کاربر توی فرمت کشیده رو داشته باشی و ....

shr6557
دوشنبه 04 شهریور 1387, 20:31 عصر
نه این کار رو کردم نشد
من تو design mode می خوام این کار رو بکنم ها

jaza_sa
دوشنبه 04 شهریور 1387, 20:58 عصر
اگر UC شما فقط شامل یک Panel هست ، و میخواید خصوصیاتی که شما تعریف میکنید به اون اضافه بشه
کافیه بجای اینکه UC از کلاس UserControl به ارث برسه ، از کلاس Panel به ارث برسه
در نهایت شما Panel خواهید داشت که علاوه بر خصوصیات اصلی اون ، خصوصیات جدید که شما برای اون درنظر گفتید هم داره