代码一        static public string GetConfValue(string filename, string path)
        {
            XmlDocument conf = new XmlDocument();
            try
            {
                conf.Load(Application.StartupPath + Path.DirectorySeparatorChar + filename);
                return conf.SelectSingleNode(path).InnerText;
            }
            catch (Exception e)
            {
                MessageBox.Show("E_CBase_100: " + e.Message + "\n不能读取数据库配置文件,请检查后再执行程序","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
                Application.Exit();
                return null;
            }
        }
代码二        private void TMain_Load(object sender, EventArgs e)
        {
            string flag = CSQL.GetConfValue("CBase.xml","/Config/TMain/DescFlag");
            if (flag != string.Empty)
            {
                this.Text += " ";
                this.Text += flag;
            }
        }
我在VS2008打开TMain设计界面的时候,系统提示我:E_CBase_100: Could not find file 'C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\CBase.xml'
不能读取数据库配置文件, 请检查后再执行程序
问题一: Application.StartupPath怎么会是'C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\CBase.xml'?
问题二: 为什么在设计界面里,它会执行TMain_Load的代码呢?因为有些对象我在运行中实例化的,在TMain代码里没有实例,所以这个问题让我很困惑.

解决方案 »

  1.   

    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemComponentModelISiteClassDesignModeTopic.htm   
      .DesignMode   属性     [Visual   Basic]请参见   
      ISite   接口   |   ISite   成员   |   System.ComponentModel   命名空间   |   ISite   成员(Visual   J#   语法)   |   C++   托管扩展编程     
      要求   
      平台:   Windows   98,   Windows   NT   4.0,   Windows   ME,   Windows   2000,   Windows   XP   Home   Edition,   Windows   XP   Professional,   Windows   Server   2003   系列,   .NET   Framework   精简版   -   Windows   CE   .NET   
      语言   
      C#   
        
      C++   
        
      JScript   
        
      Visual   Basic   
        
      全部显示   
      确定组件在由类实现时是否处于设计模式。   
        
      [Visual   Basic]   
      ReadOnly   Property   DesignMode   As   Boolean   
        
      [C#]   
      bool   DesignMode   {get;}   
        
      [C++]   
      __property   bool   get_DesignMode();   
        
      [JScript]   
      function   get   DesignMode()   :   Boolean;   
        
      属性值   
      如果组件处于设计模式,则为   true;否则为   false。   
        
      备注   
      设计模式指示器存储在   ISite   中;因此,如果   Component   没有与其关联的   ISite,则该属性始终为   false。   
      

  2.   

    你可以在Form1_Load代码里面做个判断if(!this.DisgnMode)
    {
       Init(); //运行时初始化的代码放在Init里面
    }