C#中多窗体程序设计问题
我写的是多窗口MDI文档支持,能对文件进行文字格式的修改程序,然而用下面的代码却不能对文字格式进行修改,请大家帮忙找下问题
父窗体的相关代码:
private void menuItem9_Click(object sender, System.EventArgs e)
{
ChildForm1 Child=new ChildForm1();
Child.MdiParent=this;
Child.Changefont();
}
子窗体的相关代码:
public void Changefont()
{fontDialog1.Font=richTextBox1.SelectionFont;
if(fontDialog1.ShowDialog()==DialogResult.OK)
richTextBox1.SelectionFont=fontDialog1.Font;
}
------解决方案--------------------private delegate void changeFontHandler();
public void Changefont()
{
if(this.InvokeRequired)
{
changeFontHandler = delegate(){
fontDialog1.Font=richTextBox1.SelectionFont;
if(fontDialog1.ShowDialog()==DialogResult.OK)
richTextBox1.SelectionFont=fontDialog1.Font;
};
this.Invoke(changeFontHandler);
}
else
{
fontDialog1.Font=richTextBox1.SelectionFont;
if(fontDialog1.ShowDialog()==DialogResult.OK)
richTextBox1.SelectionFont=fontDialog1.Font;
}
}
------解决方案--------------------写少了些东东, 这样
private delegate void changeFontHandler();
public void Changefont()
{
if (this.InvokeRequired)
{
changeFontHandler aHandler = delegate()
{
fontDialog1.Font = richTextBox1.SelectionFont;
if (fontDialog1.ShowDialog() == DialogResult.OK)
richTextBox1.SelectionFont = fontDialog1.Font;
};
this.Invoke(aHandler);
}
else
{
fontDialog1.Font = richTextBox1.SelectionFont;
if (fontDialog1.ShowDialog() == DialogResult.OK)
richTextBox1.SelectionFont = fontDialog1.Font;
}
}
------解决方案--------------------把错贴出来 ...
------解决方案--------------------你想干什么?为什么这么复杂?
___________________________________________
http://www.admiralcn.com
------解决方案--------------------你...这些错误, 太什么了吧
delegate只是一个委托, 上面我给出的例子就是一个用法啊, 那个例子我试过, 没错的说
------解决方案--------------------你贴出来的那些错误都很容易自己fix的