我没接触过C/S的东西
对参数及属性的传递很陌生假设有好多个form
form1,form2,form3,form4...我想在form1 中操作其他的form中的textbox等空间的属性,怎么办?
我能在form1中这样写:
操作from2中的控件属性
(findform("form2") as form2).textbox1.text="Hi";
读取from2中的控件属性
this.textbox.text=(findform("form2") as form2).textbox1.text;
上面2种方法可以么?有类似findform的方法么?

解决方案 »

  1.   

    没必要findform,直接将要访问的窗体的指针传到你的窗体中就可以了,然后把那个才荒唐上组建设置为public的
      

  2.   

    定义public公有,而不是private私有
      

  3.   

    假如一个主窗体from
    里面new 了2个窗体form from1=new from();
    form form2=new form();
    form1.show();
    form2.show();2个新form中都有textbox1这个控件\
    我在form1中怎么操作和访问from2的textbox1?
      

  4.   

    在form1中定义
     form2 f2=null;
     form3 f3=null;
     form4 f4=null;然后在方法里即可以操作其他的form中的textbox等空间的属性(必须保证textbox的属性是public而不是private)
      

  5.   

    from1里写的代码from2 f2=new from2(textBox1);
    f2.show();
    from2里写的代码
    private TextBox textBox1 = new TextBox()public frmCgjh(TextBox textBox1)
    {
        InitializeComponent();
        this.textBox1 = textBox1 ;
    }这样就可以操作from1里的textBox1了
      

  6.   

    最好不要公开控件
    用属性就可以了
    在form1里定义属性
    public string ProductType
            {
                get
                {
                    return text1.text;
                }
                set
                {
                    text1.text = value;
                }
            }其他窗体访问此属性
    form1 f1=new form1();
    f1.ProductType
      

  7.   

    我也不是就光用text属性,所以不能光建一个属性我暂时先将整个窗体传了过去如果我想要这个new的窗体在桌面的右下角(不是任务栏),怎么写?怎么写form的x坐标和y坐标,在哪里写?
      

  8.   

    C#提供了NotifyIcon控件,用这个控件可以实现您说的在窗体桌面的又下角!  您可以试试!
      

  9.   

      在 form1  以 button1 为例 把 button1的Modifiers 属性设置为 public
      form2中  form1 f=new form1(); f.button1.text=""; 
                                               这样就可以访问了 ok
      

  10.   

    NotifyIcon是用来显示任务栏信息的....
    我用location解决了现在还有个问题,假如我不断的new form1,都是在同一个位置叠着,我怎么让先new的在前面显示?当然我的所有必须凌驾于其他软件的前面
    不要搞个,new一下 就到桌面的最后~~~~
      

  11.   

    Form1 rf = new Form1 _frm(this);
                rf.Show();
       private Form1 mf;
    另一个窗体
     public Form2()
            {
                InitializeComponent();
            }
    复制一份        public Form2(Form1  fmm)
            {
                mf = fmm;
                InitializeComponent();
            }
      

  12.   

      this.Top = fmm.Top;
                this.Left = fmm.Left;
      

  13.   

    我现在想 
    我new了很多个窗体出来,我想让最早new出来的最前面显示,后面new出来的在后面显示
      

  14.   

    是仅要text中的值吗?如果是则可以这样:
    在form1中
    public string f;
    form2中
    form1 f1=new form1();
    f1.f=this.txttest.Text;
      

  15.   

    在Form1窗口中将Form1的窗口指针传递到Form2中
    private Form2 mf;
    mf = new Form2(this);
    mf.Show();
     
    在Form2窗口中增加一个构造函数 
     public Form2()
      {
         InitializeComponent();
      }
      public Form1 f1
      public Form2(Form1 fm1)
      {
         f1 = fm1;
         InitializeComponent();
      }再把Form1中需要在其他窗口中访问的控件的访问权限改成public型,然后就可以了