C# WinForm应用程序从动态文本框获取值
这对我来说是一场真正的斗争,因为这是我现在最需要的。我为一个登录表单创建了两个动态文本框,并希望在点击登录按钮时从文本框中获取值。我在互联网上搜索过可能的价值观,但似乎没有一个对我有用。按钮和文本框是在一个不同的类,这是痛苦的一部分,我。我无法从窗体上的文本框中获取生成按钮的类中的事件处理程序的值。如果有人能帮我做这件事,我就可以继续我的项目,很快就能完成C# WinForm应用程序从动态文本框获取值,c#,winforms,oop,textbox,C#,Winforms,Oop,Textbox,这对我来说是一场真正的斗争,因为这是我现在最需要的。我为一个登录表单创建了两个动态文本框,并希望在点击登录按钮时从文本框中获取值。我在互联网上搜索过可能的价值观,但似乎没有一个对我有用。按钮和文本框是在一个不同的类,这是痛苦的一部分,我。我无法从窗体上的文本框中获取生成按钮的类中的事件处理程序的值。如果有人能帮我做这件事,我就可以继续我的项目,很快就能完成 x_loc = 0; y_loc = 80; x_size = 10
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;
}
我会留下一些代码也给你。这些部分将是按钮、文本框和主窗体的类
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;
}
主表单
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;
}
按钮类
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;
}
文本框类
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;
}
列表
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;
}
public List loginBtns()
{
List lgnBtns=新列表();
lgnBtns.Add(“登录”);
返回lgnBtns;
}
公共列表登录表单()
{
List lgnForm=新列表();
lgnForm.Add(“用户名”);
lgnForm.Add(“密码”);
返回lgnForm;
}
公共列表loginLbls()
{
List lgnLbl=新列表();
lgnLbl.添加(“代码”);
lgnLbl.添加(“Wachtwoord”);
返回lgnLbl;
}
注意:所有这些方法都位于不同的类中。您有两种方法:
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;
}
1.公开文本框上的创建:
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;
}
partial class form1{
TextBox tb = new TextBox();
...
}
然后,您可以随时获取其文本:
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;
}
string a = tb.Text;
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;
}
TextBox[] tb = parent.Controls.OfType<TextBox>().ToArray();
当然,在这种情况下,您必须在添加文本框时设置标记。您有两种方法:
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;
}
1.公开文本框上的创建:
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;
}
partial class form1{
TextBox tb = new TextBox();
...
}
然后,您可以随时获取其文本:
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;
}
string a = tb.Text;
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;
}
TextBox[] tb = parent.Controls.OfType<TextBox>().ToArray();
当然,在这种情况下,您必须在添加文本框时设置了标记。谢谢,我现在就尝试一下,看看这个解决方案是否成功。问题是,在哪里应用第二个选项?我试图在button类中使用它,但收到以下错误消息:“Queryable.OfType(IQueryable)”是一个方法,在给定上下文中无效,因为代码缺少括号。我刚刚编辑了它。请看一看OfType
应该是:OfType()
感谢您的快速回复。我将更改并查看结果。好的,代码现在正在运行,但当它进入以下字符串时,我得到一个NullRefferenceException:string a=tb.FirstOrDefault(t=>(string)t.Tag==“username”).Text;谢谢,我现在就试试这个,看看这个解决方案是否成功。问题是第二个选项在哪里应用?我试图在button类中使用它,但收到以下错误消息:“Queryable.OfType(IQueryable)”是一个方法,在给定上下文中无效,因为代码缺少括号。我刚刚编辑了它。请看一看OfType
应该是:OfType()
感谢您的快速回复。我将更改并查看结果。好的,代码现在正在运行,但当它进入以下字符串时,我得到一个NullRefferenceException:string a=tb.FirstOrDefault(t=>(string)t.Tag==“username”).Text;你真的应该避免创建一个像WinForms Library中的类一样的类。你能更深入地解释一下吗?你真的应该避免创建一个像WinForms Library中的类一样的类。你能更深入地解释一下吗?
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;
}