我有一个登录表单“frmLog()
”,其中包含用户名和密码的文本框,现在我想从用户名文本框中获取输入文本。请参阅下面的代码,不要混淆我使用的是mysql数据库,因此其他语法代码并不重要。
这是登录表单“frmLog()
”
private void button1_Click(object sender, EventArgs e)
{
ApareceCrudLib a = new ApareceCrudLib("localhost", "root", "", "cashieringdb");
string user = txtLogin.Text;
string pass = txtPassword.Text;
string query = "SELECT * FROM register WHERE username='" + user + "' AND password=MD5('" + pass + "')";
int result = a.Count(query);
if (result == 1)
{
frmMain main = new frmMain();
main.ShowDialog();
this.Dispose();
}
else
{
MessageBox.Show("Login Failed! Try Again");
txtLogin.Text = "";
txtPassword.Text = "";
}
}
这是我想要检索代码“frmMain()
”的另一种形式。请参阅public void dataLog()
,这是我尝试从frmLog
获取输入值的代码部分。
private void frmMain_Load(object sender, EventArgs e)
{
a = new ApareceCrudLib("localhost", "root", "", "cashieringdb");
loadDataGridView_Main();
dataLog();
}
public void loadDataGridView_Main()
{
dgvMain.Rows.Clear();
List<string>[] detailList = a.mysqlSelect("Select * From sales");
for (int i = 0; i < detailList.Length; i++)
{
dgvMain.Rows.Add(detailList[i][0], detailList[i][1], detailList[i][2], detailList[i][3]);
}
}
public void dataLog()
{
frmLog kk = new frmLog();
txtLog.Text= kk.txtLogin.ToString();
}
这是错误的结果
结果必须是来自frmLog()
示例“client123”的用户名。你觉得这里有什么问题?
答案 0 :(得分:2)
kk.txtLogin.ToString()
,返回表示当前对象的字符串。在这种情况下,您当前的对象是TextBox
。
而是显示TextBox
,您应该显示TextBox
的值。
将该代码更改为:
kk.txtLogin.Text;
<强>更新强>
如果要在txtLogin
中显示frmLog
中的frmMain
值,可以在frmLog
中声明存储txtLogin
值的静态变量。< / p>
frmLog
中的
:
public static String LOGIN_USER = "";
然后在button1_Click
:
if (result == 1)
{
LOGIN_USER = txtLogin.Text;
frmMain main = new frmMain();
main.ShowDialog();
this.Dispose();
}
frmMain_Load
中的:
public void dataLog()
{
txtLog.Text= frmLog.LOGIN_USER;
}
答案 1 :(得分:0)
在您的数据记录中()Methode是第一个错误。
替换:txtLog.Text= kk.txtLogin.ToString();
使用:txtLog.Text= kk.txtLogin.Text;
在:
public void dataLog()
{
frmLog kk = new frmLog();
txtLog.Text= kk.txtLogin.ToString();
}
您创建一个新的frmlog对象而不显示它,因此文本框为空。您应该在用户输入后从文本框中检索文本。
答案 2 :(得分:0)
之所以如此,是因为您正在尝试从frmLog();
在你frmMain
中,不要写这个:
frmLog kk = new frmLog();
而是在表单类
中创建公共引用 public frmLog kk;
然后,在你的frmLog中,
frmMain main = new frmMain();
main.kk=this;
main.ShowDialog();
这将以第二种形式创建对您的第一个表单的引用。