我对C#和一般编程非常陌生。我已经找到了很多这个问题的答案,但没有一个是有意义的或者有效的。
我有一个数据库的名称,它被分配给一个变量 - 当表单关闭时,第二个表单带有导航栏用户控件加载,我需要将此变量分配给导航栏中的标签用户控件。 换句话说,我需要以不同的形式将表单中的变量发送到用户控件。
到目前为止,我尝试过的最好的事情是在用户控件中创建一个公共属性,然后在表单中设置它,我知道我在正确的轨道上,但我还没有做得很对。与创建实例有关但我不了解它是如何工作的。
//User Control
public string nameOfUser {get; set;}
//Form1
if (dt.Rows.Count == 1)
{
object a = dt.Rows[0]["forename"];
string forenameString = Convert.ToString(a);
navBar.nameOfUser = forenameString;
mainForm objfrmMain = new mainForm();
this.Hide();
objfrmMain.Show();
}
else
{
MessageBox.Show("Incorrect Login.");
}
尝试设置属性时出错:
谢谢!
答案 0 :(得分:0)
在主窗体上广告私有变量,命名用户名,然后重新加载新方法
Private String userName;
Public mainform(string name){
This.userName= name;
navBar.nameOfUser= this.userName;
}
然后使用
mainForm objfrmMain = new mainForm(forenameString);
答案 1 :(得分:0)
在主类中声明一个静态变量“forenameString”。
保存该变量forenameString
forenameString =dt.Rows[0]["forename"].ToString();
如果需要,请使用此变量。
navBar.nameOfUser = forenameString;
答案 2 :(得分:0)
最后我刚刚创建了一个带有公共变量的单独类 - 可能效率不高但最终有效。谢谢您的帮助。