代码一
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代码里没有实例,所以这个问题让我很困惑.
------解决方法--------------------------------------------------------
你可以在Form1_Load代码里面做个判断
if(!this.DisgnMode)
{
Init(); //运行时初始化的代码放在Init里面
}