我在主窗口中按一个按钮打开另外一个对话框界面,我在编写这个对话框类程序的时候想要操作主对话框的一些控件,但是并不知道该怎么引用啊?谢谢!

解决方案 »

  1.   

    声明主窗口实例网搜“”winform窗体调用“
      

  2.   

    搜索 “winform 跨窗体传值”
      

  3.   

    比如B中要访问A中的组件
    第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx第二,用属性控制
    上面两个最简单的方法
      

  4.   


    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        public string passText
            {
                get {
                    return textBox1.SelectedText.Text;
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Owner = this;
                f2.Show();
            }        private void Form1_Load(object sender, EventArgs e)
            {        }        private void textBox1_TextChanged(object sender, EventArgs e)
            {
                if(this.OwnedForms.Length != 0)
                (this.OwnedForms[0] as Form2).selectText = textBox1.Text;/*OwnedForms是一个数组 ,表示当前对象拥有的子窗体数组,同样要把通过下标得到的元素转换为Form2类型。*/
            }
        }
    }namespace WindowsApplication1
    {
        public partial class Form2 : Form
        {
            public string selectText
            {
                set
                {
                    textBox1.Text = value;   //设置一个属性,让form1操作
                }
            }        public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                textBox1.Text = ((Form1)this.Owner).passText;
            }
        }
    }
      

  5.   

    A-B
    B中创造A实例是不行的
    实现的话:
    1.通过B的构造函数:在B中重写构造函数,然后再A中调用B窗体时候,将要修改的控件 引用过去
    2.通过委托,可以将B中的 消息 传回给A还有很多方法,给你一个别人的总结,写的非常好:http://blog.csdn.net/zhzuo/article/details/22027#comments