c# - 将用户输入文本框中的值分配给另一个表单
问题描述
我是 C# 新手,我正在尝试创建一个将信息传递给程序其他形式的登录名。下面是我的 LoginForm.cs,我试图获取输入到 txtUserID.text 的用户 ID 并将其传递给另一个类。我已经尝试过创建一个全局变量,但什么也没发生。
public partial class frmLogin : Form
{
public String getUserID;
public frmLogin()
{
InitializeComponent();
}
private void btnSubmit_Click(object sender, EventArgs e)
{
Login login = new Login();
DbConn conn = new DbConn();
Employee emp = new Employee();
//assign the txtbox value to variables
String userID = txtUserID.Text;
String pass = txtPassword.Text;
//check first the authetincation of the AD
bool checkADAuthentication = login.isADauthenticated(userID, pass);
if (checkADAuthentication == true)
{
//get the name indicated on the AD
String name = emp.getADEmpName();
MessageBox.Show("Welcome " + name, "Login Successful", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
//check if the connection to the SQL Database is establish
bool connDB = conn.isConnectionEstablish();
if(connDB == true)
{
MessageBox.Show("Connection Successful", "DB Connection", MessageBoxButtons.OK);
emp.getIdDetails(userID); //assign ID to function getIDDetails
getUserID = userID; //assign the User ID input from textbox to method getUser.
MessageBox.Show(getUserID, "User signed in", MessageBoxButtons.OK);
StatusViewForm statView = new StatusViewForm();
this.Hide();
statView.Show();
}
else
{
MessageBox.Show("Connection not successful", "Connection Failed", MessageBoxButtons.OK);
}
}
else
{
MessageBox.Show("Login Failed", "Login Unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
这是我的 StatusView 表单,我试图在其中获取输入到我的 LoginForm.cs 的 txtUserID.txt
private void StatusViewForm_Load(object sender, EventArgs e)
{
frmLogin loginForm = new frmLogin();
String loggedUser = loginForm.getUserID;
MessageBox.Show(loggedUser, "Who is logged in?", MessageBoxButtons.OK);
QueryExecute taskEmp = new QueryExecute();
DbConn dbConn = new DbConn();
DataTable dt = new DataTable();
//String userID = taskEmp.getEmployeeDetails(userID: loggedUser); ;
String query = taskEmp.getTaskDetails(loggedUser);
MessageBox.Show(query, "Query", MessageBoxButtons.OK);
SqlDataAdapter da = new SqlDataAdapter(query, dbConn.getDbConnection());
dbConn.getDbConnection().Open();
da.Fill(dt);
dbConn.getDbConnection().Close();
dgvTaskView.DataSource = dt;
}
问题是每次我运行程序时都无法获得 txtUserID.txt 上的值。你可以看到我创建了一个MessageBox.show()
来检查变量是否被传递给 StatusViewForm.cs 但它仍然是空白的。有没有办法在 C# 中做到这一点?
解决方案
当然,您不会从您的公共变量中获取该公共变量,LoginForm.cs
因为您正在创建LoginForm.cs
你可以在你的StatusViewForm.cs
. 使用它的constructor
编辑:我忘记为构造函数添加 InitializeComponent
private string LoggedUser;
public StatusViewForm(string LoggedUser)
{
InitializeComponent();
this.LoggedUser = LoggedUser;
}
然后LoggedUser
从你的调用StatusViewForm_Load()
:
private void StatusViewForm_Load(object sender, EventArgs e)
{
`MessageBox.Show(LoggedUser, "Who is logged in?", MessageBoxButtons.OK);`
}
然后,如果您要调用StatusViewForm.cs
in LoginForm.cs
。你会这样做:
MessageBox.Show("Connection Successful", "DB Connection", MessageBoxButtons.OK);
emp.getIdDetails(userID); //assign ID to function getIDDetails
getUserID = userID; //assign the User ID input from textbox to method getUser.
MessageBox.Show(getUserID, "User signed in", MessageBoxButtons.OK);
StatusViewForm statView = new StatusViewForm(userID);
this.Hide();
statView.Show();
推荐阅读
- c++ - 快速检查如何获取自定义类型的输出?
- arrays - D3.js 节点从数组中设置 bgcolor 但从不相邻
- shopify - 购买与商店购物车不同的按钮购物车
- javascript - 如何使用部分视图正确添加分页
- loops - Dart - 关于在 if 语句中执行多行处理
- heroku - 使用github在heroku中部署项目
- azure - Azure Cosmos db Gremlin elementMap()
- ios - 关于重新排序 tableView 的问题(Apple Swift 和 Xcode 11)
- javascript - 如何使用 RecordRTC-over-Socketio 将麦克风流从客户端传递到服务器
- matplotlib - 网格规范和颜色条的问题