现在需要在一个panel中动态生成几个radiobutton,
但是具体几个是动态生成的,并且不断更新
因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobutton全删了,然后再次动态生成。
我知道如何动态生成这些个单选按钮。但是不知道怎么刷新,
每次一调用 newPanel.Invalidate();
然后动态生成之后,主窗口就变成一片白板,无法响应了,
不知道还要调用什么函数不?
我不知道怎么弄,希望能告诉我具体过程,相关函数,最好有代码。
C# 如何重绘(重新生成)窗口上动态生成的控件
答案:2 悬赏:20 手机版
解决时间 2021-02-12 16:26
- 提问者网友:niaiwoma
- 2021-02-12 11:20
最佳答案
- 五星知识达人网友:长青诗
- 2021-02-12 11:31
你试试下面的方法吧,测试过没有问题,怎么添加timer我就不用说了吧
private void timer1_Tick(object sender, EventArgs e)
{
if (newPanel.Controls.Count == 0)
{
for (int i = 0; i < 4; i++)
{
RadioButton radio = new RadioButton();
radio.Text = "radio" + i.ToString();
radio.Location = new Point(50, i * 30);
newPanel.Controls.Add(radio);
}
}
else
{
int count = newPanel.Controls.Count;
for (int i = 0; i < count; i++)
{
newPanel.Controls[0].Dispose();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (newPanel.Controls.Count == 0)
{
for (int i = 0; i < 4; i++)
{
RadioButton radio = new RadioButton();
radio.Text = "radio" + i.ToString();
radio.Location = new Point(50, i * 30);
newPanel.Controls.Add(radio);
}
}
else
{
int count = newPanel.Controls.Count;
for (int i = 0; i < count; i++)
{
newPanel.Controls[0].Dispose();
}
}
}
全部回答
- 1楼网友:往事埋风中
- 2021-02-12 13:04
private void button3_Click(object sender, EventArgs e)
{
System.Windows.Forms.RadioButton radio = new RadioButton();
radio.Visible = true;
this.panel1.Controls.Add(radio);
radio.Location = new Point(100, 100);
radio.Text = "radio1";
System.Windows.Forms.RadioButton radio1 = new RadioButton();
radio1.Visible = true;
this.panel1.Controls.Add(radio1);
radio1.Location = new Point(150, 150);
radio1.Text = "radio2";
}
//清除所有控件
private void button4_Click(object sender, EventArgs e)
{
this.panel1.Controls.Clear();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯