public کردن modifier کنترل هایی که با کد نوشتیم
سلام
من مثلا چندتا Checkbox با کد نوشتم که در فرم لود ایجاد میشن. تو ایجاد شدنشون مشکلی نیست
اما من میخوام هرکدوم که ایجاد میشه modifier هم public بشه
اما نمیشه. چیکار کنم؟
کد من اینه اما از خط سوم ایراد میگره. در واقع تو اون پنجره ای که باز میشه و تمام پراپرتی ها و غیره توش نوشته شده Modifiers نداره
cb = new CheckBox();
cb.Name = "cb" + i.ToString();
cb.Modifiers=public
cb.Text = dt.Rows[i][1].ToString();
cb.Location = new Point(5, 10 + i * 25);
this.Controls.Add(cb);
خیلی لازمش دارم لطفا کمک کنید
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
با سلام
Modifires یک Property در Design-Time هست یا به اصطلاح این پروپرتی فقط توسط طراح تعیین میشه و کاربر نقشی در تغییر اون نداره
در چنین مواقعی بهتره شما بگید میخوایید چیکار بکنید تا دوستان روش های مناسبی بهتون بگن
موفق باشید
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
من میخوام تو یک فرم دیگه تکست این چک باکس رو بریزم تو یک متغیر string:متفکر:
تا اونجایی که میدونم برای این که از خصوصیات یک کنترل مثل Text و غیره تو یک فرم دیگه استفاده کنیم باید modifiers اون کنترل رو public کنیم
حالا میخوام ببینم چجوری میشه این کارو کرد؟؟؟؟
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
شما در UserControl خودتون یک property جدید تعریف کنید و مقدار متن CheckBox رو برگردونید.در فرم، ازین Property برای دستیابی به متن CheckBox (به صورت غیر مستقیم) استفاده کنید.
class MyUserControl : UserControl
{
// ...
public string SomeText
{
get { return checkBox1.Text; }
}
// ....
}
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
نقل قول:
نوشته شده توسط
plus
شما در UserControl خودتون یک property جدید تعریف کنید و مقدار متن CheckBox رو برگردونید.در فرم، ازین Property برای دستیابی به متن CheckBox (به صورت غیر مستقیم) استفاده کنید.
class MyUserControl : UserControl
{
// ...
public string SomeText
{
get { return checkBox1.Text; }
}
// ....
}
ولی این نمیشه!!
چون من چک باکس هارو با کد ایجاد کردم و تعداد چک باکس ها هم به تعداد ردیف های DataTable هستش. پس باید یه حلقه بزارم که چک کنه هر کدوم تیک خورده بود تکستشو بریزه تو یک متغیر
من تنها مشکلم اینه که باید تو یک فرم دیگه این کدهارو بنویسم برای همین بهشون دسترسی ندارم. اگه تو همون فرم بود میتونستم بهشون دسترسی پیدا کنم :ناراحت:
لطفا کمک کنید:ناراحت:
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
اگه قراره فقط یک text برگرده، شما حلقه رو درون get مربوط به اون property بگذارید، یعنی در خود UserControl که به CheckBox ها دسترسی دارید.
class MyUserControl : UserControl
{
// ...
public string SomeText
{
get
{
for ....
return result;
}
}
// ....
}
اگه قراره بیش از یک مقدار برگرده، باز میتونید به همین روش عمل کنید و آرایه ای از رشته ها رو برگردونید:
class MyUserControl : UserControl
{
// ...
public string[] SomeText
{
get
{
List<string> MyList = new List<string>();
for ....
return MyList.ToArray();
}
}
// ....
}
اگه هم میخواین کلا حلقه و عملیات رو در فرم انجام بدین، بجای ایجاد دسترسی مسقیم به CheckBox ها، میتونید متدها و property های مناسب رو در UserControl بگذارید تا از Form به وضعیت CheckBox ها دسترسی داشته باشید، مثلا:
class MyUserControl : UserControl
{
// ...
public ItemCount
{
get
{
return [Number of checkboxes];
}
}
public bool IsItemChecked(int Index)
{
return [true if specified checkbox is checked, false otherwise];
}
public bool GetItemText(int Index)
{
return [text of the specified checkbox];
}
// ....
}
اگه هم میخواین راحت ترین کار و بدترین کار رو انتخاب کنید، متغیر هایی که توشون CheckBox رو new میکنید رو به صورت public تعریف کنید، مثلا لیستی از CheckBox ها:
class MyUserControl : UserControl
{
public List<CheckBox> MyCheckBoxes = new List<CheckBox>();
private void UserControl_Load(object sender, EventArgs e)
{
CheckBox cb = new CheckBox();
MyCheckBoxes .Add(cb);
}
}
اینطوری توی فرم به مشخصه MyCheckBoxes که لیستی از CheckBox های شما در userControl هست دسترسی دارید.
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
نقل قول:
نوشته شده توسط
plus
اگه قراره فقط یک text برگرده، شما حلقه رو درون get مربوط به اون property بگذارید، یعنی در خود UserControl که به CheckBox ها دسترسی دارید.
class MyUserControl : UserControl
{
// ...
public string SomeText
{
get
{
for ....
}
}
// ....
}
بله دقیقا منم همین کارو کردم
اما وقتی میخوام تو حلقه بنویسم i<dt.Rows.Count اصلا dt رو نمیشناسه (dt همون DataTable هستش)
نقل قول: public کردن modifier کنترل هایی که با کد نوشتیم
نقل قول:
نوشته شده توسط
erfan_urchin
بله دقیقا منم همین کارو کردم
اما وقتی میخوام تو حلقه بنویسم i<dt.Rows.Count اصلا dt رو نمیشناسه (dt همون DataTable هستش)
خوب بستگی داره شما dt رو کجا تعریف کردین.