PDA

View Full Version : مشکل استفاده از Control class در یک class کاربر



Alireza7581
شنبه 28 دی 1392, 12:18 عصر
با عرض سلام و احترام خدمت اساتید گرامی


من این(در قسمت زیر می بینید) تکه کد رو نوشتم تا مقادیر داخل تمامی TextBoxهای موجود روی فرم رو پاک کنه. اما نمی خوام هی این کدها رو تو جاهای مختلف کپی کنم برای همین یک کلاسی(که در قسمت زیر کدش رو می بینید) ساختم و این روال رو تو کلاس معرفی کردم. اما هر کاری می کنم داخل کلاس من Controls رو نمی شناسه. ممنون میشم تا راهنمایییم کنید. با تشکر

کد مربوط به روال در حالت عادی (داخل فرم):

foreach (var item in controls)
{
if (item is TextBox )
{
(item as TextBox).Text = "";
}
}//end of foreach


کلاس مربوطه:


class Setclass1
{
public void EmptyControls()

{
foreach (var item in controls)
{
if (item is TextBox )
{
(item as TextBox).Text = "";
}
}//end of foreach
}
}

arash_flag
شنبه 28 دی 1392, 12:45 عصر
با سلام دوست عزیز
شما می تونید این کد رو به صورت یک تابع در بیاورید .
یعنی زیر قسمت پایین using ها آن را به صورت یک تابع در بیاری و سطح دسترسی آن را هم public بزاری و در هر جا که بخای استفاده کنی از آن فرم مورد نظر یک شی می سازی و بعد تابع خودت را فراخوانی می کنی .
موفق باشی ....
:تشویق:

hamid_hr
شنبه 28 دی 1392, 12:51 عصر
اول برا تابعتون یه ورودی بزارین که بفهمه کنترلهای کدوم فرم رو سرچ کنه

public void EmptyControls(Control Col)

{
foreach (var item in Col.controls)
{
if (item is TextBox )
{
(item as TextBox).Text = "";
}
}//end of foreach
}

mahdi.compute
شنبه 28 دی 1392, 13:10 عصر
با عرض سلام و احترام خدمت اساتید گرامی


من این(در قسمت زیر می بینید) تکه کد رو نوشتم تا مقادیر داخل تمامی TextBoxهای موجود روی فرم رو پاک کنه. اما نمی خوام هی این کدها رو تو جاهای مختلف کپی کنم برای همین یک کلاسی(که در قسمت زیر کدش رو می بینید) ساختم و این روال رو تو کلاس معرفی کردم. اما هر کاری می کنم داخل کلاس من Controls رو نمی شناسه. ممنون میشم تا راهنمایییم کنید. با تشکر

کد مربوط به روال در حالت عادی (داخل فرم):

foreach (var item in controls)
{
if (item is TextBox )
{
(item as TextBox).Text = "";
}
}//end of foreach


کلاس مربوطه:


class Setclass1
{
public void EmptyControls()

{
foreach (var item in controls)
{
if (item is TextBox )
{
(item as TextBox).Text = "";
}
}//end of foreach
}
}


خوب این جوری بنویس


foreach (Control C in this.Controls)
if (C.Name.StartsWith("TextBox"))
C.ResetText();

Alireza7581
شنبه 28 دی 1392, 14:14 عصر
با تشکر از همه ی اساتید

خیلی ممنونم ازتون مخصوصا از hamid_hr - درست شد:چشمک: