C# Windows编程 窗体编程 如何在一个窗体中对另一个窗体进行操作??

有2个窗体,我想在窗体2中对窗体1中的richTextBox中的内容进行选中窗体2是窗体1中有个按钮chuangti2f2=newchangti2();f2.showDi... 有2个窗体,我想在窗体2中对窗体1中的richTextBox中的内容进行选中

窗体2是窗体1中有个按钮
chuangti2 f2=new changti2();
f2.showDialog();
这样写的

窗体2弄个按钮

chuangti1 f1=new changti1();
f1.richTextBox1.Select(index, textBox1.Text.Length);//选中文本
已经设置了richTextBox1的Modifiers 为public
怎么这样怎么就不行嘞??
展开
 我来答
freeeeeewind
推荐于2017-12-16 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1346万
展开全部

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";        
        }
追问

?????

追答
f1的值为空(null),确保在你构造函数中传入了窗体1的引用并赋值给了f1
FabKiller
2013-10-07 · TA获得超过586个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:482万
展开全部
楼主采纳一楼吧,他比我快了一步。。郁闷了。。。
我和你讲讲为什么你不行吧。
因为,你窗体2的按钮里面直接写:
chuangti1 f1=new changti1();
那么,等于是定义了一个新的chuangti1类,并非你当前chuangti1的那个窗体了!
也就是,当前显示的窗体1,和你new出来的chuangti1不是同一个东西。
所以,根本就没效果了。
所以,你要把form1传进form2的构造
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
破晓崇明
2013-10-07 · TA获得超过130个赞
知道小有建树答主
回答量:191
采纳率:100%
帮助的人:155万
展开全部
chuangti1 f1=new changti1();

这句话又新实例化了一个chuangti1,和之前的那个没有关系的
可以这么处理:
重载chuangti2的构造函数,把你要修改窗体1中的控件当作参数传递进去
例如,chuangti2 f2=new changti2(...);
这样一来,在新出现的窗体2中就可以操作窗体1中的内容了
具体想怎么操作,根据需求修改构造函数即可

另外,不提倡修改控件的访问权限,违反面向对象的封装性,最好不要把private修改成public,
很不好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式