C# 如何重绘(重新生成)窗口上动态生成的控件
现在需要在一个panel中动态生成几个radiobutton,但是具体几个是动态生成的,并且不断更新因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobu...
现在需要在一个panel中动态生成几个radiobutton,
但是具体几个是动态生成的,并且不断更新
因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobutton全删了,然后再次动态生成。
我知道如何动态生成这些个单选按钮。但是不知道怎么刷新,
每次一调用 newPanel.Invalidate();
然后动态生成之后,主窗口就变成一片白板,无法响应了,
不知道还要调用什么函数不?
我不知道怎么弄,希望能告诉我具体过程,相关函数,最好有代码。 展开
但是具体几个是动态生成的,并且不断更新
因此就需要每隔几秒就重新绘制一下这个panel,把里面的radiobutton全删了,然后再次动态生成。
我知道如何动态生成这些个单选按钮。但是不知道怎么刷新,
每次一调用 newPanel.Invalidate();
然后动态生成之后,主窗口就变成一片白板,无法响应了,
不知道还要调用什么函数不?
我不知道怎么弄,希望能告诉我具体过程,相关函数,最好有代码。 展开
2个回答
展开全部
你试试下面的方法吧,测试过没有问题,怎么添加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();
}
}
}
展开全部
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();
}
{
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询