PDA

View Full Version : سوال: اضافه شدن radio button به تعداد دلخواه با کدنویسی



sooren_66
یک شنبه 09 آذر 1393, 02:00 صبح
سلام
چطور میتونم یک عدد رو توی تکست باکس بنویسم مثلا" 5 و 5 تا radio button برام رو صفحه ظاهر بشه بدون استفاده از خاصیت visible یعنی می خوام خودش ادد کنه.لطفا" راهنمایی کنید.

MOHMMAD.M
یک شنبه 09 آذر 1393, 08:15 صبح
سلام
از کلاس radio button یه شی بساز . بعد بزار تو یه حلقه for و هر چند بار که تو textbox نوشته شده بود ازش یه شی بساز .
موفق باش

Jean Reno
یک شنبه 09 آذر 1393, 09:25 صبح
126154

پروژه ضمیمه شده است

Jean Reno
یک شنبه 09 آذر 1393, 09:27 صبح
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back)
e.Handled = true;
}

private void Form1_Load(object sender, EventArgs e)
{
splitContainer1.Panel2.AutoScroll = true;
}

private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text.Trim()))
{
foreach (Control control in splitContainer1.Panel2.Controls)
{
if (control is RadioButton)
splitContainer1.Panel2.Controls.Remove(control);
}
int count = Convert.ToInt32(textBox1.Text);
for (int i = 0; i < count; i++)
{
CreatRadioButton(i);
}
}
}

private void CreatRadioButton(int i)
{

var radioButton=new RadioButton
{
AutoSize = true,
Location = new System.Drawing.Point(30, 15 + (i*30)),
Name = "radioButton" + i,
Size = new System.Drawing.Size(85, 17),
TabIndex = 0,
TabStop = true,
Text = @"radioButton" + i,
UseVisualStyleBackColor = true
};
splitContainer1.Panel2.Controls.Add(radioButton);
}

mrprestige
یک شنبه 09 آذر 1393, 18:23 عصر
سلام
چطور میتونم یک عدد رو توی تکست باکس بنویسم مثلا" 5 و 5 تا radio button برام رو صفحه ظاهر بشه بدون استفاده از خاصیت visible یعنی می خوام خودش ادد کنه.لطفا" راهنمایی کنید.

سلام دوست من ، شما میتونین داخل کنترل کنترل button اینو بنویسی

int n = 0;
int b =0;
b = Convert.ToInt32(textBox1.Text);
for (int i = 1; i <= b; i++)
{
RadioButton a = new RadioButton();
n += 90;
this.Controls.Add(a);
a.Size = new System.Drawing.Size(50, 50);
a.Location = new Point(n, 90);
}


موفق باشید .

sooren_66
دوشنبه 10 آذر 1393, 01:07 صبح
splitContainer1.Panel2.Controls.Add(radioButton);
jean reno این خط رو تو سی شارپ ارروو میگیره ازش.

MRasoul
دوشنبه 10 آذر 1393, 10:23 صبح
سلام
قصد جسارت ندارم اما این کدها به نظر من یه اشکال کوچیک داره،اونم مال وقتیه که اول عدد بزرگ وارد تکست باکس کنی و بعد از ایجاد کنترل ها، یبار دیگه با عدد کوچیک امتحان کنید،فکر کنم با یه while اضافه کردم حل بشه
بازم ممنون

Jean Reno
دوشنبه 10 آذر 1393, 10:52 صبح
splitContainer1.Panel2.Controls.Add(radioButton);
jean reno این خط رو تو سی شارپ ارروو میگیره ازش.

من برای افزودن کنترل های radioButton از یه کنترل splitContainer استفاده کردم و AutoScroll پنل مربوطه رو در حالت True قرار دادم تا در صورتی که تعداد کنترل های افزوده شده بیشتر از اندازه فرم بود اسکرول بخوره
شما می تونید از کنترل های دیگه ای مثل GroupBox و یا Panel استفاده کنید فقط خاطرتون باشه کهAutoScroll کنترل مربوطه رو در حالت True قرار دهید

Jean Reno
دوشنبه 10 آذر 1393, 11:13 صبح
سلام
قصد جسارت ندارم اما این کدها به نظر من یه اشکال کوچیک داره،اونم مال وقتیه که اول عدد بزرگ وارد تکست باکس کنی و بعد از ایجاد کنترل ها، یبار دیگه با عدد کوچیک امتحان کنید،فکر کنم با یه while اضافه کردم حل بشه
بازم ممنون


شاید درست متوجه منظورتون نشده باشم اما اگه منظورتون اینه که در صورتی که اول عدد بزرگ وارد بشه مثلا 9 کنترل بعد تعداد 7 کنترل مشکلی درنمایش پیش میاد
یه قسمتی از کد به این شرحه



foreach (Control control in splitContainer1.Panel2.Controls)
{
if (control is RadioButton)
splitContainer1.Panel2.Controls.Remove(control);
}



که تمام کنترل های از نوع RadioButton که در کانتینر مورد نظرمون هست رو حذف میکنه و از اول کنترل ها رو اضافه می کنه و فکر نمی کنم مشکلی پیش بیاد