PDA

View Full Version : استفاده از UserControl با کد نویسی



Shahram_12
پنج شنبه 14 دی 1391, 20:53 عصر
با سلام به همه دوستان

من برای کارم یک Usercontrol ایجاد کردم حالا میخواستم از اون کنترل در برنامه استفاده کنم البته با کد نویسی اون رو فراخوانی کنم نه اینکه اون رو روی فرمم قرار بدم ولی اون کنترل رو ایجاد نمیکنهبرنامه رو ضمیمه کردم ممنون میشم راهنمایی کنید

aliasghar2
پنج شنبه 14 دی 1391, 20:57 عصر
سلام واسه این کار بهتره اول namespace اونو اضافه کنی lثلا
using UserControl;

Shahram_12
پنج شنبه 14 دی 1391, 21:00 عصر
دوست خوب
اینکار رو هم کردم ولی اون کلاس رودر Using پیدا نمیکنه

aliasghar2
پنج شنبه 14 دی 1391, 21:12 عصر
خب این قضیه 2 تا احتمال داره

1. شما dll خودتون رو رفرنس نکردید
2. کلاس شما از نوع public نیست

Shahram_12
پنج شنبه 14 دی 1391, 21:37 عصر
دوست خوب ممکنه برنامه رو ببینی
من از یک کنترل استفاده میکنم نه یک کلاس و اون رو هم در برنامه فراخونی میکنم تا کنرل مورد نظر رو بسازه
من با گشتن در این مورد مشکل اطلاعات زیر رو بدست آوردم

نقل قول: ارسال مقدار از UserControl به Form

مشکلم حل شد
میگم شاید یکی یه روزی مثه من به این مشکل برخورد...
گفتم میخوام از طریق UserControl یه مقداریو به فرم اصلی ارسال کنم و چیزی مثل Log کردن اطلاعاته، فرض میکنیم میخوایم از UserControl یه متنیو به ListBox که توی فرم اصلی هست اضافه کنیم، برای اینکار توی UserControl؛ لیست باکسی که توی فرم اصلی هست رو به این صورت تعریف میکنیم:

1
2
3
4
5
ListBox LogList;
private void UserControl1_Load(object sender, EventArgs e)
{
LogList = (ListBox)ParentForm.Controls["listBox1"];
}





حالا توی UserControl هرجایی که بخوایم میتونیم listBox که توی فرم اصلی(والد) هست رو دسکاری کنیم

1
2
3
4
private void AddLog(string msg)
{
LogList.Items.Add(msg);
}





البته این چیزی ود که خودم نوشتم اساتید اگه مشکلی میبینید یا روش بهتری دارید از گفتنش دریغ نکنید و مارو بی بهره نذارید، ممنون


آقای mafaman2003 لطفا در مورد کدی که گفتم یه توضیحی هم بدید ممنون میشم

اینکار رو هم انجام دادم ولی مشکل حل نشد

asghar2008
پنج شنبه 14 دی 1391, 22:14 عصر
سلام

منظورتون از Usercontrol ،کنترلی هست که خود کاربر طراحیش میکنه. درسته؟

تو نوار ابزار کلیک راست Choose item رو انتخای کن خود کنترل به toolbox اضفه میشه.و بعد مثل بقیه کنترل ها ازش استفاده کن.

اما اگه کلاس بوده و به صورت dll در آوریش از منوی Project گزینه Add refrences رو انتخاب کن .وبعد در کدنویس باید مسیر کامل توابع خودتون رو بنویسید. والا خطا میگیره.

danialafshari
پنج شنبه 14 دی 1391, 23:08 عصر
سلام دوست عزیز
دوستان اصلا سورس رو دیدید ؟!
بابا چرا این بنده خدا رو اینقدر گیج می کنید این فقط می خواد کامپوننتش با کد نویسی بیاد رو فرم نه اینکه با Object


خب این قضیه 2 تا احتمال داره

1. شما dll خودتون رو رفرنس نکردید
2. کلاس شما از نوع public نیست

دوست عزیز من
ایشون سورس کامپوننت رو دارن و درون Solution قرار دادن پس نیازی به اد کردن refrence و یا public نیست چون در همون صفحه پروژه قرار داره و به طور مستقیم میشه ازش استفاده کرد

تصحیحش کردم بفرمائید (2 خط کد بیشتر نیست) :