PDA

View Full Version : سوال در مورد Groupebox



mahan351
یک شنبه 27 بهمن 1392, 21:08 عصر
سلام
تو Groupbox یه سری Chekbox قرار دادم. چجوری میشه براش تعریف کنم که checkbox ی که تیک خوردی باشه رو بریزه تو label1 ?
و یه سوال دیگه: چجوری می تونم Item هایی که تو Form1 هست رو به Form2 بشناسونم؟ مثلا form 2 جدید که باز می کنی بنویسی Textbox20 خودش auto برات بیاد.

farhad.k.t
دوشنبه 28 بهمن 1392, 13:12 عصر
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control item in groupBox1.Controls )
{
if (item is CheckBox)
item.Click += new EventHandler((object send, EventArgs a) => { label1.Text = ((CheckBox)send).Text; });
}
}

در مورد دسترسی به اشیای فرم اول:
در برنامه نویسی شیئ گرا هر فرم یک شیئ جداگانه است و برای دسترسی به آن باید از آن نمونه گیری کنید و البته روش های مختلفی برای دسترسی به اشیای فرم دیگر وجود دارد مانند تعریف متغیر های استاتیک و...
که بهترین راه برای این کار بدین صورت است:

Application.OpenForms["Form1"].Controls["label1"].ForeColor = Color.Red;

موفق باشید...

mahan351
دوشنبه 28 بهمن 1392, 13:56 عصر
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control item in groupBox1.Controls )
{
if (item is CheckBox)
item.Click += new EventHandler((object send, EventArgs a) => { label1.Text = ((CheckBox)send).Text; });
}
}

در مورد دسترسی به اشیای فرم اول:
در برنامه نویسی شیئ گرا هر فرم یک شیئ جداگانه است و برای دسترسی به آن باید از آن نمونه گیری کنید و البته روش های مختلفی برای دسترسی به اشیای فرم دیگر وجود دارد مانند تعریف متغیر های استاتیک و...
که بهترین راه برای این کار بدین صورت است:

Application.OpenForms["Form1"].Controls["label1"].ForeColor = Color.Red;

موفق باشید...

ببخشید میشه در مورد قسمت دوم یکم توضیح بدید؟این بگم که می خوام اون chekbox ی که داخل groupebox تو form1 تیک خوردی بریزه داخل label تو form2

farhad.k.t
دوشنبه 28 بهمن 1392, 23:28 عصر
ابتدا modifier لیبل فرم دوم را روی public بگذارید و سپس از کد زیر در فرم1 استفاده کنید:

private void Form1_Load(object sender, EventArgs e)
{
Form2 frm = new Form2();
foreach (Control item in groupBox1.Controls )
{
if (item is CheckBox)
((CheckBox)item).CheckedChanged += new EventHandler((object send, EventArgs a) => { if (((CheckBox)item).Checked)frm.label1.Text = ((CheckBox)send).Text; frm.ShowDialog(); });
}
}

کد بالا برای chbox های درون groupbox رویداد checkedchange را تعریف می کند که هر کدوم check خورده بود را به lbl فرم دوم انتقال دهد.

موفق باشید...

mahan351
چهارشنبه 30 بهمن 1392, 16:55 عصر
ابتدا modifier لیبل فرم دوم را روی public بگذارید و سپس از کد زیر در فرم1 استفاده کنید:

private void Form1_Load(object sender, EventArgs e)
{
Form2 frm = new Form2();
foreach (Control item in groupBox1.Controls )
{
if (item is CheckBox)
((CheckBox)item).CheckedChanged += new EventHandler((object send, EventArgs a) => { if (((CheckBox)item).Checked)frm.label1.Text = ((CheckBox)send).Text; frm.ShowDialog(); });
}
}

کد بالا برای chbox های درون groupbox رویداد checkedchange را تعریف می کند که هر کدوم check خورده بود را به lbl فرم دوم انتقال دهد.

موفق باشید...
کار نکرد کد مشکل داره خودتون امتحان کنید متوجه میشید

farhad.k.t
چهارشنبه 30 بهمن 1392, 23:43 عصر
اين كد براي راهنمايي شما بود و به همين جهت بايد تغييراتي در ان اعمال مي شد مثلا بايد در قسمت public partial از فرم ٢ نمونه گيري كنيد و در كدي كه داده بودم قسمت frm.showdialog را به باتني كه مي خواهيد با ان فرم ٢باز شود انتقال دهيد... در ضمن براي تكست باكس ها هم اگر تعداد كم است مي توانيد در باتن مربوط به نمايش فرم٢ مستقيما در ليبل هاي فرم ٢ بريزيد در غير اين صورت به روش چك باكس ها عمل كنيد و فقط به جاي نوع checkbox بايد textbox را جايگزين كنيد. اگر امكان دارد پروژه را اپلود كنيد تا دقيقتر بررسي شود و در صورتي كه در عمليات بالا مشكل داشتيد اطلاع دهيد تا كد را برايتان بفرستم.موفق باشيد...