在您输入的程序中,使用从数据库带来的用户名。我需要将该用户名传递给另一个表单,但是当我这样做时,它会以第二种形式返回null,尽管它出现在第一种形式中。(" Jugador"是我带名字的类)。
public Usuario()
{
InitializeComponent();
}
private string _Message;
public string Message
{
get { return _Message; }
set { _Message = strName; }
}
public string strName;
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text!="")
{
Jugador jug = new Jugador();
jug.Traemelo(textBox1.Text);
strName = textBox1.Text;
elegirTipo us = new elegirTipo();
us.Show();
this.Hide();
}
}
在我的另一种形式中,我有这个。(Usuario是第一种形式)
private void silabas_Load(object sender, EventArgs e)
{
Usuario usu = new Usuario();
juga.Traemelo(usu.Message);
}
我必须补充一点,在这些形式的中间我经过一个,但在那里需要变量。 谢谢您的帮助!我真的不知道发生了什么,因为我其他时间已经这样做了。
答案 0 :(得分:1)
class X
{
public:
X(int x) : _x(x) {};
bool operator==(int y) { return _x == y; }
private:
int _x;
};
....
X x(0);
if (x == 0) // OK
;
if (0 == x) // error
;
答案 1 :(得分:0)
乍一看:
public string Message
{
get { return _Message; }
set { _Message = value } // instead of strName;
}
没有Message=something
(永远不会调用set)
_Message似乎与strName竞争。一个变量就足够了。
编辑:结合这个:
public Usuario()
{
InitializeComponent();
}
private string _Message;
public string Message
{
get { return _Message; }
set { _Message = value; }
}
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
Jugador jug = new Jugador();
jug.Traemelo(textBox1.Text);
Message = textBox1.Text;
elegirTipo us = new elegirTipo();
us.Show();
this.Hide();
}
}
答案 2 :(得分:0)
问题是因为你正在创建一个新实例,即Usuario usu = new Usuario();对于另一个类中的对象,该值变为null。我会使用静态变量。在您的Usuario课程中使用
public static string strName{get;set;}
现在设置值Usuario.strName = textBox1.Text;
在你的其他课堂上说,
private void silabas_Load(object sender, EventArgs e)
{
juga.Traemelo(Usuario.strName);
}
答案 3 :(得分:0)
我个人会做的是创建一个静态类并保存其中的值。这也让我不会在每次需要使用它时实例化该类。
public static class Jugador
{
//ctor if needed
public static string Username { get; set; }
}
现在,在您设置或获取用户名值的代码中:
//login process
Jugador.Username = "some username";
//in application (get)
textbox1.Text = Jugador.Username;
我相信这就是你要找的东西。