PDA

View Full Version : سوال: مشکل با ساخت لیست باکس به وسیله کلاسها



oliya24
چهارشنبه 02 آذر 1390, 01:32 صبح
سلام دوستان من دارم یه پروژه میسازم البته برای تمرین یه لیست باکس به فرم اضافه کردم و یه تکس باکس و یه دکمه
و یک کلاس هم اضافه کردم و در اون یه سری خصوصیات تعریف کردم تا اینجا مشکلی نیست حالا میخوام یه کار بکنم که بشه با کلاس نویسی ایتم ها را از تکس باکس خوند و درون لیست اضافه کرد یعنی اینکه یک متد بنویسم و در برنامه ازش استفاده کنم
من تازه وارد به این مباحث هستم میشه بفرمایید باید برای ادامه برنامه چه کنم

محمد فدوی
چهارشنبه 02 آذر 1390, 03:19 صبح
اگه درست متوجه شده باشم...
فرض کنیم یه Button، یه TextBox به نام Txt و یه ListBox به نام Lst داریم. کافیه تکه کد زیر رو توی رویداد کلیک روی Button بنویسی:
Lst.Items.Add(Txt.Text)
حله؟!

Hybrid
چهارشنبه 02 آذر 1390, 08:11 صبح
نه دوست عزیز منظوره دوستمون این نبود ایشون میگن که با سبک کلاس نویسی بشه آیتم اضافه کرد ...این سوال من هم هست اگه میشه دوستان کمک کنند...با تشکر

oliya24
چهارشنبه 02 آذر 1390, 10:26 صبح
اگه درست متوجه شده باشم...
فرض کنیم یه Button، یه TextBox به نام Txt و یه ListBox به نام Lst داریم. کافیه تکه کد زیر رو توی رویداد کلیک روی Button بنویسی:
Lst.Items.Add(Txt.Text)
حله؟!
دوست عزیز من این روش رو بلد هستم ولی میخوام با استفاده از کلاس نویسی این کار رو انجام بدم

محمد فدوی
چهارشنبه 02 آذر 1390, 14:37 عصر
فکر کنم بازم نفهمیدم :لبخند:
بصورت پیشفرض برنامه های ویندوزی سی شارپ دو کلاس Form1 و Program رو دارن...
شما می خواین که یک کلاس بنویسید که کار اضافه کردن داده ها رو انجام بده... مثلا DataAdder
حالا به دو روش می تونید عمل کنید:
1- استفاده از متد static

public static class DataAdder
{
public static void AddData(ListBox lst, TextBox txt)
{
lst.Items.Add(txt.Text);
}
public void static void AddItem(ListBox lst, object item)
{
lst.Items.Add(item);
}
}

در حالت فوق نیازی به ساختن نمونه از کلاس نیست(و البته امکان پذیر هم نیست!)

2- استفاده از متد عضو

public class DataAdder
{
private ListBox lstTarget;
public DataAdder(ListBox target)
{
lstTarget = target;
}
public void AddItem(TextBox txt)
{
lstTarget.Items.Add(txt.Text);
}
public void AddItem(object item)
{
lstTarger.Items.Add(item);
}

در این حالت حتماً باید یک نمونه از کلاس رو بسازید...

درست فهمیدم؟!

محمد فدوی
چهارشنبه 02 آذر 1390, 14:39 عصر
ببخشید کدهایی که نوشتم نامرتب شد...