c# 如何在另一个事件中控制其他一个事件中生成的控件
我在单击button1之后运行如下程序:{LabelRenStyle=newLabel();RenStyle.Size=newSize(50,50);RenStyle.L...
我在单击button1之后运行如下程序:
{
Label RenStyle = new Label();
RenStyle.Size = new Size(50,50);
RenStyle.Location = new Point(150, 200);
RenStyle.BackColor = Color.Blue;
this.Controls.Add(RenStyle) ;
}
既是添加了一个Label控件给了form1;
然后我又想在form_KeyPress事件中控制这个Label RenStyle;
比如
{
if(e.KeyChar=='a')
RenStyle.Top+=20;
}
但是这样是不行的,会出错。
请问一下该怎么写代码?
谢谢! 展开
{
Label RenStyle = new Label();
RenStyle.Size = new Size(50,50);
RenStyle.Location = new Point(150, 200);
RenStyle.BackColor = Color.Blue;
this.Controls.Add(RenStyle) ;
}
既是添加了一个Label控件给了form1;
然后我又想在form_KeyPress事件中控制这个Label RenStyle;
比如
{
if(e.KeyChar=='a')
RenStyle.Top+=20;
}
但是这样是不行的,会出错。
请问一下该怎么写代码?
谢谢! 展开
3个回答
展开全部
private void button1_Click(object sender, EventArgs e)
{
Label RenStyle = new Label();
RenStyle.Name = "RenStyle";
RenStyle.Size = new Size(50, 50);
RenStyle.Location = new Point(150, 200);
RenStyle.BackColor = Color.Blue;
this.Controls.Add(RenStyle);
}
private void button1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'a')
for (int i = 0; i < this.Controls.Find("RenStyle", false).Length; i++)
{
this.Controls.Find("RenStyle", false)[i].Top += 20;//下移
}
}
更多追问追答
追问
没出错 但是那个Label控件动不了啊~T-T
还有那句
for (int i = 0; i < this.Controls.Find("RenStyle", false).Length; i++)
{
this.Controls.Find("RenStyle", false)[i].Top += 20;//下移
}
能不能解释下?谢谢!
追答
我用的是button1_KeyPress,你是不是用form1_KeyPress呢,有button在,form获取不到焦点的。
for (int i = 0; i < this.Controls.Find("RenStyle", false).Length; i++)
{
this.Controls.Find("RenStyle", false)[i].Top += 20;//下移
}
这段就是遍历所有Name为RenStyle的对象,然后设置Top递增20。
展开全部
给你的Label 一个 ID. 然后
((Label)this.Controls.Find("ID", false)[0]).Top+=20;
或者把 RenStyle 声明为全局的/
((Label)this.Controls.Find("ID", false)[0]).Top+=20;
或者把 RenStyle 声明为全局的/
更多追问追答
追问
T-T 怎么用代码给ID?求详细介绍;
另外 之所以不想RenStyle声明为全局是因为
我在这个程序中只想在单击按钮button1之后才生成Label RenStyle
追答
RenStyle.ID = "";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在Form1的后台代码Form1.cs中
public partial class Form1 : Form
{
//定义一个Label
Label RenStyle;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
RenStyle = new Label();
RenStyle.Size = new Size(50,50);
RenStyle.Location = new Point(150, 200);
RenStyle.BackColor = Color.Blue;
this.Controls.Add(RenStyle) ;
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar=='a')
RenStyle.Top+=20;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询