PDA

View Full Version : سوال: اضافه کردن control به userControl



elahejafari
چهارشنبه 08 آذر 1391, 09:26 صبح
سلام
من یک userControl دارم که یک سری ایتم دارد

میخواهم وقتی از این userControl در برنامه دیگری استفاده می کنم خاصیت control داشته باشد یعنی
در برنامه اصلی به این userControl بتوان یک ایتم مثل لیبل و یا باتم و... اضافه کنم
چه دستوراتی باید به userControl اضافه کنم تا چنین امکانی داشته یاشد ؟

mohsen92
چهارشنبه 08 آذر 1391, 11:16 صبح
مبهمه. بیشتر توضیح بده. ترجیحا کاری رو کردی بذار ببینیم.

harani
چهارشنبه 08 آذر 1391, 12:35 عصر
میتونی modifire کنترلت رو برابر public کنی .

ولی راه بهتر از نظر من اینکه از get-set استفاده کنی .
مثلاً برای دسترسی به تکست یک کنترل لیبل در یوزر کنترل میتونی از کد زیر استفاده کنی.

public string text_Label{get{return label1.Text;}set{label1.Text = Value;}}//a

در اینجا پس از اضافه شدن یوزر کنترل در فرمت دیگه خاصیتی با نام Text برای لیبلت وجود نداره بلکه خاصیت اون text_Label شده و شما میتوانید توسط این خاصیت به متن کنترل دسترسی داشته باشید.

plus
چهارشنبه 08 آذر 1391, 13:09 عصر
سلام
من یک userControl دارم که یک سری ایتم دارد

میخواهم وقتی از این userControl در برنامه دیگری استفاده می کنم خاصیت control داشته باشد یعنی
در برنامه اصلی به این userControl بتوان یک ایتم مثل لیبل و یا باتم و... اضافه کنم
چه دستوراتی باید به userControl اضافه کنم تا چنین امکانی داشته یاشد ؟
خاصیتی که شما میخوای خاصیت Container بودن هست.کافیه یک Attribute به UserControl اضافه کنی:



using System.ComponentModel.Design;

namespace WindowsFormsApplication5
{
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
}
}

elahejafari
شنبه 11 آذر 1391, 09:30 صبح
خاصیتی که شما میخوای خاصیت Container بودن هست.کافیه یک Attribute به UserControl اضافه کنی:



using System.ComponentModel.Design;

namespace WindowsFormsApplication5
{
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
}
}


از پاسخ شما ممنونم
ولی مشکلم من را حل نکرد
من به دنباله خاصیتی هسنم که userContorl رو مثل panel کنه که در زمان استفاده بتوانم کامپونت به آن اضافه کنم و نه در زمان ساخت .

plus
شنبه 11 آذر 1391, 18:38 عصر
منظورتون از زمان استفاده چیه؟ زمان اجرا توسط کاربر نهایی؟ یا زمان طراحی فرم؟ اگه زمان طرای فرم میخوای که با این باید بشه. کافیه کنترل رو از روی فرم بگیر بندازی داخل این کنترل.
اینی که گفتم رو اضافه کنی UserControl مثل پنل میشه.