你的form2 是在form1 中启动的吧?

解决方案 »

  1.   

    假设你启动Form2 是以Show()的形式启动的,如果是ShowDialog形式启动去改变Form1就很简单了
    步骤如下:
    1 增加一个变量,比且修改Form2 的构造函数
    private Form1 mF_Form ; public Form2 ( Form1 myForm )
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent ( ) ;
    this.mF_Form  = myForm ;
    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }
    2 在Form1中启动Foma2的按钮中添加
    m_Form = new Form2( this ) ;
    //通过主窗体来创建、初始化从窗体
    m_Form.Show ( ) ;
    //显示从窗体
    3 将toolbar1设为public
    public System.Windows.Forms.ToolBar toolBar1;
    4 在Form2中修改Form1的toolBar1的Enabled属性的按钮中添加
    this.mF_Form.toolBar1.Enabled = false;ok,看看是不是你要的效果
      

  2.   

    第2步是
    Form2 m_Form  = new Form2( this ) ;
    //通过主窗体来创建、初始化从窗体
    m_Form.Show ( ) ;
    //显示从窗体
      

  3.   

    要在外部控制的控件设定为public
      

  4.   

    Form1 fm=new Form1();
    fm.toolBar1.Enabled =false;你的fm是一个新对象,并不是已经显示出来的Form1,
    对张三的调整不会对李四产生作用。下面来解释楼上 hanbinghai(海宁)的代码:private Form1 mF_Form ;       
    //我要对mF_Form 进行调整,我必须知道有mF_Form这么个东西,这个东西的所有属性、方法和怎样对它进行调整(通过Form1类知道的),但我现在不知道它现在在哪儿;public Form2 ( Form1 myForm )       //myForm将告诉我,我要调整的东西在哪儿!
    { InitializeComponent ( ) ;
    this.mF_Form  = myForm ;   //我找到mF_Form在哪儿了
    }
    2 在Form1中启动Foma2的按钮中添加
    m_Form = new Form2( this ) ;        
    //构造m_Form的时候告知mF_Form在哪儿;(这里其实就是告知m_Form自己的位置)
    //通过主窗体来创建、初始化从窗体
    m_Form.Show ( ) ;
    //显示从窗体
    3 将toolbar1设为public
    public System.Windows.Forms.ToolBar toolBar1;    
    4 在Form2中修改Form1的toolBar1的Enabled属性的按钮中添加
    this.mF_Form.toolBar1.Enabled = false;           //我在调整。这种例子比较经典的说明了对象的独立性。