无法将类型为“服务器屏幕”的对象转换为类型“服务器.Form1”

本文关键字:服务器 类型 对象 转换 Form1 屏幕 服务器屏幕 | 更新日期: 2023-09-27 18:30:17

>有人知道为什么我会收到此错误:无法将类型为"服务器屏幕"的对象转换为类型"服务器.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

无法将类型为“服务器屏幕”的对象转换为类型“服务器.Form1”

你的 foreach 循环本质上编译为此

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

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

相关文章: