【发布时间】:2017-06-16 00:56:00
【问题描述】:
这对我来说最近真的很挣扎,因为这是我现在最需要的。我为登录表单创建了 2 个动态文本框,如果我点击登录按钮,我想从文本框中获取值。我在互联网上搜索了可能的值,但它们似乎都不适合我。按钮和文本框是在不同的类中制作的,这对我来说是痛苦的部分。我无法从表单上的文本框中将值传递给制作按钮的类中的事件处理程序。如果有人可以帮助我完成这个,那么我可以继续我的项目并很快完成它。
我也会为你留下一些代码。这些部分将是按钮和文本框以及主窗体的类。
主窗体
x_loc = 0;
y_loc = 80;
x_size = 100;
y_size = 20;
foreach(string item in lon.loginLbls())
{
clsLbl = new Labels(pnlMenu, x_loc, y_loc, x_size, y_size, item);
y_loc += 50;
}
x_loc = 0;
y_loc = 100;
x_size = 200;
y_size = 30;
foreach(string item in lon.loginForm())
{
clsTxt = new Textboxes(pnlMenu, x_loc, y_loc, x_size, y_size, item);
y_loc += 50;
}
x_loc = 0;
y_loc = 200;
x_size = 200;
y_size = 30;
foreach(string item in lon.loginBtns())
{
clsBtn = new Buttons(pnlMenu, x_loc, y_loc, x_size, y_size, item);
y_loc += 50;
}
按钮类
Button btn;
public Buttons(Panel parent, int x_loc, int y_loc, int x_size, int y_size, string name)
{
btn = new Button();
btn.Location = new Point(x_loc, y_loc);
btn.Size = new Size(x_size, y_size);
btn.Text = name;
btn.Name = name;
btn.Click += new EventHandler(btnHandler);
btn.ForeColor = Color.Black;
btn.BackColor = Color.White;
parent.Controls.Add(btn);
}
private void btnHandler(object sender, EventArgs e)
{
Button btn = sender as Button;
switch (btn.Text)
{
case "Login":
Login lgn = new Login();
break;
case "Afsluiten":
Application.Exit();
break;
}
}
文本框类
TextBox tb;
public Textboxes(Panel parent, int x_loc, int y_loc, int x_size, int y_size, string name)
{
tb = new TextBox();
tb.Location = new Point(x_loc, y_loc);
tb.Size = new Size(x_size, y_size);
tb.Name = name;
tb.ForeColor = Color.Black;
tb.BackColor = Color.White;
parent.Controls.Add(tb);
}
列表
public List<string> loginBtns()
{
List<string> lgnBtns = new List<string>();
lgnBtns.Add("Login");
return lgnBtns;
}
public List<string> loginForm()
{
List<string> lgnForm = new List<string>();
lgnForm.Add("username");
lgnForm.Add("password");
return lgnForm;
}
public List<string> loginLbls()
{
List<string> lgnLbl = new List<string>();
lgnLbl.Add("Code");
lgnLbl.Add("Wachtwoord");
return lgnLbl;
}
注意:所有这些方法都位于不同的类中。
【问题讨论】:
-
你真的应该避免创建一个像 WinForms 库中的类一样的类
-
您能再深入一点解释一下吗?