要求:从form1
中捕获用户ID,并将其用于其他表单。
结构:
Form1代码:
namespace xxxxx
{
public partial class Form1 : Form
{
//Establish Conection
public Form1()
{
InitializeComponent();
MaximizeBox = false;
}
private void btn_Login_Click(object sender, EventArgs e)
{
//Opening Connection - checking User input match with DB
// Once matched open Form2
string userName = txt_Username.Text;
Form2 f2 = new Form2();
f2.ShowMe = userName;
f2.Show();
this.Hide();
//closing Connection
}
Form2代码:
namespace xxxxx
{
public partial class Form2 : Form
{
public string ShowMe { get; set; }
public Form2()
{
InitializeComponent();
MaximizeBox = false;
}
private void Form2_Load(object sender, EventArgs e)
{
passName.Text = ShowMe;
}
它可以正常工作,因为它获取用户ID并显示在form2
标签中。但是,当我为Form3做同样的事情时,它不起作用。
FORM2代码继续:
private void button1_Click(object sender, EventArgs e)
{
string myVal = passName.Text;
Form3 f3 = new Form3();
f3.ShowMe = myVal;
f3.Show();
this.Hide();
}
FORM3代码:
namespace xxxxxxx
{
public partial class Form3 : Form
{
public string ShowMe { get; set; }
public Form3()
{
InitializeComponent();
MaximizeBox = false;
}
private void Form3_Load(object sender, EventArgs e)
{
UName.Text = ShowMe;
}
我不确定为什么它没有在表单3标签上显示用户ID,因为我对FORM 2使用了相同的方法。
任何帮助都将非常感激。 -Viku
答案 0 :(得分:4)
最简单的解决方案是在Dictionary
类中定义public static
对象。它可以从各种形式访问。
答案 1 :(得分:0)
在表单1调用表单2上,您正在设置" ShowMe"价值
string userName = txt_Username.Text;
在表单1上调用表单3,您正在设置" ShowMe"价值
string myVal = passName.Text;
那是打算?或者你的意思是还有表格3使用" txt_Username.Text"值。
此外,通过在表单中使用公共字符串,您可以在可能发生意外的情况下从任何位置设置该值。您可以考虑向其他表单添加一个参数与公共,并传递您想要显示的字符串。有点像...
public Form2(string showMeFromFirstForm )
{
InitializeComponent();
MaximizeBox = false;
passName.Text = showMeFromFirstForm;
}
并在您的第一个表单按钮中,您可以简化为
private void btn_Login_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2( txt_Username.Text );
f2.Show();
this.Hide();
}
答案 2 :(得分:0)
试试这个。您可以使用static
关键字声明变量,这意味着只有一个静态成员的副本。
您可以在 Form1 类或其他单独的类中进行delcare。
例如,您在另一个名为ConstValue
的单独的类中将其作为
公共静态字符串ShowMe {get; set;}
因此,直接设置username
(在您的上下文中)的值,而不是从 Form1
ConstValue.ShowMe = txt_Username.Text;
为了获得价值;我们假设您在 Form4 中有label1
控件。因此,在 Form4 编码中执行以下操作:
label.Text = ConstValue.ShowMe;
希望你明白并且它很容易帮助。