1)修改RichtTextBox属性,将Modifiers改为Public
2)在窗体2的后台代码中增加一个新的构造函数:
public partial class Form2 : Form
{
//保存对Form1实例的引用
Form1 form1;
//原来的构造函数
public Form2()
{
InitializeComponent();
}
//新构造函数
public Form2(Form1 form1)
: this()
{
this.form1 = form1;
}
}
3)在Form1中,点击button1显示Form2
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.Show();
}
4)在Form2中,点击button1修改Form1.RichTextBox内容
private void button1_Click(object sender, EventArgs e)
{
//至此,可以在Form2操作Form1中的RichTextBox控件了。以下是示例
form1.richTextBox1.SelectAll();
form1.richTextBox1.SelectedText = "aaaaaaaaaaaaa";
}
楼主采纳一楼吧,他比我快了一步。。郁闷了。。。
我和你讲讲为什么你不行吧。
因为,你窗体2的按钮里面直接写:
chuangti1 f1=new changti1();
那么,等于是定义了一个新的chuangti1类,并非你当前chuangti1的那个窗体了!
也就是,当前显示的窗体1,和你new出来的chuangti1不是同一个东西。
所以,根本就没效果了。
所以,你要把form1传进form2的构造
chuangti1 f1=new changti1();
这句话又新实例化了一个chuangti1,和之前的那个没有关系的
可以这么处理:
重载chuangti2的构造函数,把你要修改窗体1中的控件当作参数传递进去
例如,chuangti2 f2=new changti2(...);
这样一来,在新出现的窗体2中就可以操作窗体1中的内容了
具体想怎么操作,根据需求修改构造函数即可
另外,不提倡修改控件的访问权限,违反面向对象的封装性,最好不要把private修改成public,
很不好