0

有谁知道我为什么会收到此错误:无法将“Server.Screen”类型的对象转换为“Server.Form1”类型。

这是我得到错误的地方:

foreach (Form1 F in Application.OpenForms) 
{ 
    F.AddRow(Datas[1], Datas[2] + "/" + Datas[3], Datas[4], Datas[5], Datas[6], Datas[7], Datas[8], Datas[9], Datas[10], Datas[11] +" Mb", Datas[12]); 
    F.AddBot(1); 
} 

屏幕是一个窗口形式,但奇怪的是我很少得到这个错误,所以我不知道为什么:S

4

1 回答 1

1

您的 foreach 循环基本上编译为此

for(int i = 0; i < Application.OpenForms.Length; ++i) {
    Form1 F = (Form1)Application.OpenForms[i];
    ...
}

所以你的一个开放形式是类型的Server.Screen,它不是的子类Form1。所以演员阵容失败。您可能最好将 foreach 循环更改为System.Windows.Forms.Form用作类型,但如果没有更多代码和更多想法,很难在此处提供真正的建议。

于 2013-09-05T23:02:27.837 回答