一些简短的背景资料: 我已经编写了VB.Net和PHP编程至少两年(自学成才),所以请原谅我,如果我的术语和编码习惯不是一流的。我会根据你的意见改进!
好的,所以我目前有一个登录表单,在Program.cs中设置为启动对象。这是我创建登录表单的新实例并通过引用将其传递给FormInstances类(在Misc.cs中)。
using System;
using System.Windows.Forms;
namespace Blah{
class Program{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.SetCompatibleTextRenderingDefault(false);
Application.EnableVisualStyles();
var LoginFRM = new Login();
LoginFRM.ShowDialog();
if(LoginFRM.LoginSuccessful == true) {
FormInstances.LoginForm = LoginFRM;
Application.Run(new MainForm());
}else{
Application.Exit();
}
}
}
}
这是我在Misc.cs中的代码:
namespace Blah{
public static class FormInstances {
public static Form LoginForm;
}
public class Misc{
FormInstances.LoginForm.txtTest.text = "test";
}
}
但是我收到了这个错误:
'Form'不包含'txtText'的定义,并且没有扩展方法'txtText'接受类型'Form'的第一个参数(你是否缺少using指令或汇编引用?)
如何修复此错误,是否有更简单的方法来实现我的目标?
答案 0 :(得分:0)
基类Form不包含名为&#39; txtText&#39;的文本框,您需要声明表单的确切类型,而不是通用基类
namespace Blah{
public static class FormInstances {
public static Login LoginForm;
}
public class Misc{
FormInstances.LoginForm.txtTest.text = "test";
}
}
作为旁注,为什么需要保存整个登录表单?如果您只需要知道您的用户是否已被记录,那么您可以只存储从属性LoginSuccessful
获得的布尔变量