永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-02-12 16:26
  • 提问者网友:niaiwoma
  • 2021-02-12 11:20
现在需要在一个panel中动态生成几个radiobutton,
但是具体几个是动态生成的,并且不断更新
因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobutton全删了,然后再次动态生成。

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

我不知道怎么弄,希望能告诉我具体过程,相关函数,最好有代码。
最佳答案
  • 五星知识达人网友:长青诗
  • 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();
}
}
}
全部回答
  • 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(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯