日期:2014-05-18  浏览次数:20734 次

查看窗口2是否打开
我的winform程序有两个窗口,form1,form2,我在form1中的timer1里定时查看form2是否打开,如果打开,则给form2的public string S赋值。代码如下:

form1中的代码
private void timer1_Tick(object sender, EventArgs e)
{
  for (int i = 0; i < Application.OpenForms.Count; i++)
  {
  if (Application.OpenForms[i].Name.Equals("Form2"))
  {
  (Form2)Application.OpenForms[i].S = DateTime.Now.ToString(); //这句话有错误,不知道错在哪儿,大侠救我!!
  }
  }
}

错误 1 “System.Windows.Forms.Form”不包含“S”的定义,并且找不到可接受类型为“System.Windows.Forms.Form”的第一个参数的扩展方法“S”(是否缺少 using 指令或程序集引用?) F:\编程练习\C#_Exam\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 33 53 WindowsFormsApplication1

form2中,我已经定义了 public string S;


------解决方案--------------------
Application.OpenForms[i]不一定是form2,所以不一定就存在S,你应该判断一下
if (Application.OpenForms[i] is Form2)
------解决方案--------------------
先转为form2,再取S
((Form2)Application.OpenForms[i]).S 
试试