C#中动态生成的控件如何获取它的事件和属性

我要编写一个MDI文档,父窗体中的菜单中有新建,每次点击新建,就会弹出一个子窗体,同时会在子窗体中添加一个动态的richtextbox的控件,后期时,我想用父窗体菜单的字... 我要编写一个MDI文档,父窗体中的菜单中有新建,每次点击新建,就会弹出一个子窗体,同时会在子窗体中添加一个动态的richtextbox的控件,后期时,我想用父窗体菜单的字体选项来控制子窗体中的字体,可是如何获得子窗体中的控件的属性呢?
“新建”的代码:
Form child = new Form();

child.Text = "新建文本" + frmcount.ToString() ;//静态的变量,记录窗体的个数
child.MdiParent = this ;
RichTextBox rich = new RichTextBox();
rich.Width = child.Width;
rich.Height = child.Height;
rich.Dock = DockStyle.Fill;
child.Controls.Add(rich);
child.Show();
frmcount++;
我也试过把 Form child = new Form();放到外面,作为全局变量,可是这样新建时就会只有一个子窗体,不符合我的本意啊
我应该怎么办?
大侠救我啊
展开
 我来答
xtfnpgy
2014-10-25 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1106万
展开全部
MDI窗体创建全局类的静态变量,在你的控件值改变时,赋值给全局变量,然后你的本窗体去读取这个全局变量就可以了;
根据你的代码对应:
child.Tag和child.Text也可以
追问
这个静态变量是什么类型的呢?
追答
private void button8_Click(object sender,EventArgs e)
{
Form child=new Form();
child.MdiParent=this;
RichTextBox rich=new RichTextBox();
rich.Width=child.Width;
rich.Height=child.Height;
rich.Dock=DockStyle.Fill;
rich.TextChanged+=new System.EventHandler(this.rich_TextChanged);
rich.Tag=1;//你的MDI个数++
child.Controls.Add(rich);
child.Show();
}
public string sss=""; //不同的MDI创建不同的变量即可
private void rich_TextChanged(object sender,EventArgs e)
{
//根据TAG不同赋值不同的变量
int i= Convert.ToInt32(((RichTextBox)sender).Tag);
if(i==1)
sss=((RichTextBox)sender).Text;
}

private void button9_Click(object sender,EventArgs e)
{
MessageBox.Show(sss);
}
}
luzhan__326454
2014-10-25 · TA获得超过124个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:163万
展开全部
可以直接遍历所有子窗体
追问
能给个示例吗
追答
foreach (Form var in this.MdiChildren)
{
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式