【问题标题】:how to order multi text box [closed]如何订购多文本框[关闭]
【发布时间】:2020-12-26 17:31:38
【问题描述】:

我正在尝试在StringBuilder 中订购 5 个文本框,但结果总是随机出现。简而言之,我想要做的是安排一个 5 个文本框来生成相同的书面文本以与之比较我的数据库.. 此文本在我的数据库中

11111 22222 33333 44444 55555

每次我运行我的应用程序时,顺序都会像这样变化。

55555 44444 11111 33333 22222

22222 11111 55555 44444 33333

每次更改时..比较都会出现错误“这是一个假键”

这是我的 5 个文本框

Box1.Text
Box2.Text
Box3.Text
Box4.Text
Box5.Text

这是我的字符串生成器代码

StringBuilder sb = new StringBuilder();
foreach (Control c in this.Controls)
{
    if (c is TextBox)
    {
        sb.Append(c.Text);
    }
}
Activation.activateSoftware(sb.ToString());

我在这里错过了什么..

¤已解决¤

感谢大家的回复。但是话题已经关闭了??我不知道为什么..但是重要的问题已经解决了..我想分享解决方案。

我遇到的问题是 Windows 窗体上的 Tab 键顺序,所以我修改了 Visual Studio 中的文本框的顺序,在 查看菜单 上,Tab 键顺序

问题已经解决.. 再次感谢大家

【问题讨论】:

  • 您是说 foreach 循环中的控件顺序在每次运行时都不同吗?如果是这样的话,那是非常不寻常的。你可能只是错过了 5 个数字组之间的空格吗?
  • 所以我不会依赖this.Controls 中的列表总是以相同的顺序出现;例如,使用动态表单。由于“只有”五个文本框,我会按照 T.S. 的建议将它们连接起来而不使用循环,并且为了安全起见,我会使用 Trim() 来确保没有不需要的字符滑入。跨度>
  • 看起来您可能正在尝试为用户提供五个单独的TextBox 输入数据控件,这些控件将被组合以验证键值——例如“用户访问键”。如果这是您想要的并且您正在使用 WinForms,那么您可以查看MaskedTextBox。这里是Docs

标签: c# string methods controls stringbuilder


【解决方案1】:

这样做只是为了把它放在一起

string x = Box1.Text + Box2.Text + Box3.Text + Box4.Text + Box5.Text;

这个是用来展示的

Box1.Text = x.Substring(0, 5);
Box2.Text = x.Substring(5, 5);
Box3.Text = x.Substring(10, 5);
Box4.Text = x.Substring(15, 5);
Box5.Text = x.Substring(20);

另一种选择是

//put together
string x = string.Join('.', new string[]{Box1.Text, Box2.Text, Box3.Text, Box4.Text, Box5.Text});

// display
string[] items = x.Split(".".ToCharArray());
Box1.Text = items[0];
Box2.Text = items[1];
Box3.Text = items[2];
Box4.Text = items[3];
Box5.Text = items[4];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多