一直在开发一个简单的C#Windows应用程序。我已经能够将一些变量从一个表单传递到下一个表单,并使用form2 y = new form2(passingVariable); y.ShowDialog();
然后在下一个表单上使用它们public form2(string myVariable)
.但是,此方法仅允许我在这些大括号内使用该变量。目前,我正在尝试将其传递给下一个表格。但是,当我尝试使用上面提供的代码行将其传递到下一个表单时,它不会让我使用该变量。它给了我错误 名称"用户名"在当前上下文中不存在 我有很多源代码,不知道我到底需要分享什么,所以这里是我的 webng.com 帐户的链接,其中包含一个非常简单的网页,如果有人需要查看我的源代码,请使用我的源代码设置它。
尝试在该当前表单上创建另一个变量来存储该用户名,然后分配传递给该变量的用户名。然后你的构造函数将是这样的:
private string username;
public talkingWithProgram(string userName, string pcName)
{
InitializeComponent();
this.Text = pcName;
programQuestion.Text = "Whatcha wanna talk about n" + userName + "?";
this.userName = userName;
}
sportsCategories y = new sportsCategories(userName);
现在,创建一个新的 sportsCategory 类会从此上下文中传递 userName,该上下文具有上一个窗体的值。目前,看起来您正在引用构造函数中的用户名,该用户名位于方法上下文中并且超出了范围之外。
我会避免在窗口窗体的构造函数中设置特定变量。 通常,更习惯地使用吸气剂和二传手,或专门为此目的指定的函数。
例如:如果可以form2 y = new form2(passingVariable);
代码,则可以使用代码
form2 y = new form2();
form2.SetMyVar(passingVariable);
或者,如果您使用的是 getter 和 setter:
form2 y = new form2();
form2.SetMyVar = passingVariable
这样,每当您需要设置或更新变量时,只要您有对表单的引用,您就可以这样做。 此外,在上述SetMyVar()
函数中(如果您选择该方法),请务必设置一个类变量。 在代码中,类变量位于函数之外,因此它们对该类实例的所有函数可见。
类 xyz 中的变量在构造函数中为它们赋值,例如
String a1,b1=String.empty
Class xyz
{
xyz(string a,string b)
{ //constructor
a1=a;
b1=b;
//Now use them in whole class
}
}
或者,如果您想在整个应用程序中使用它们,请在程序中全局初始化它们.cs然后你可以设置和获取这样的值
Program.a1="abc" //assigning value