在C#中经常碰到不同窗体之间调用问题,在这里小节一下。
第一种方法:构造函数法
比如说:想在子窗体中调用主窗体中的axMapControl.
首先在主窗体中的通过this.axMapControl,挂接过去。其次在子窗体的构造函数中声明这一点。
主窗体中:
excelToFeature form = new excelToFeature(this.axMapControl1);
form.ShowDialog();
子窗体中:
private AxMapControl MainAxMapControl;
public excelToFeature(AxMapControl pMapControl)
{
MainAxMapControl = pMapControl;
InitializeComponent();
}
第二种方法:通过hookHelper实现
hookHelper方法比较繁琐,这里并不提倡。
//注意,第一种方法是调用过来的是AxMapControl对象,而第二种是IMap对象,两者有功能上的区别。
第三章种方法:建立全局静态变量
public static a; 这个a在任何窗体中都可以进行调用
第四种方法:直接把private改成public
//注意,具体引用需求不同有不同的方法。
最近在做excel与C#的连接问题,出现了并非系统期望格式的报错,现将修改方案列如下。
若是excel2003版本,以.xls为后缀,应该为
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;";
若是更高级的版本,以.xlsx为后缀,应该将Jet改为Ace,4.0改为12.0, 8.0改为12.0.