C# 如何重绘(重新生成)窗口上动态生成的控件

现在需要在一个panel中动态生成几个radiobutton,但是具体几个是动态生成的,并且不断更新因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobu... 现在需要在一个panel中动态生成几个radiobutton,
但是具体几个是动态生成的,并且不断更新
因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobutton全删了,然后再次动态生成。

我知道如何动态生成这些个单选按钮。但是不知道怎么刷新,
每次一调用 newPanel.Invalidate();
然后动态生成之后,主窗口就变成一片白板,无法响应了,
不知道还要调用什么函数不?

我不知道怎么弄,希望能告诉我具体过程,相关函数,最好有代码。
展开
 我来答
dkxpsg
2009-10-21 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1046万
展开全部
你试试下面的方法吧,测试过没有问题,怎么添加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();
}
}
}
百度网友0f3f080f4
2009-10-21 · TA获得超过777个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:813万
展开全部
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();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式