【发布时间】:2015-03-26 22:19:13
【问题描述】:
是的,所以我有 13 个带有相应标签的文本框,这些文本框是在用户从不同的表单中决定名称后分配的(由“添加字段...”按钮实例化)。当用户希望删除包含先前输入的数据的文本框时会出现此问题,因为这会导致文本框和标签最初显示为如下图所示的空白区域:
我的问题是:我如何做到这一点,以便当用户选择删除文本框时,其后的文本框标签对替换已删除的文本框并相应地移动剩余的文本框。
设计器中的文本框标签对:
在过去的几天里,我已经深入思考了这个问题,并得出结论,以我目前对 C# 的了解,我只能用大量繁琐的 if 语句来解决这个问题(这里说成百上千) .任何和所有的帮助将不胜感激!
第一个文本框标签对的 X 按钮上的当前代码:
private void xButton1_Click(object sender, EventArgs e)
{
label14.Text = "";
textBox1.Text = "";
if (label14.Text.Equals(""))
{
label14.Visible = false;
textBox1.Visible = false;
xButton.Visible = false;
label14.Text = "";
textBox1.Text = "";
}
if (!textBox2.Text.Equals(""))
{
label14.Text = label15.Text;
textBox1.Text = textBox2.Text;
}
if (!textBox2.Text.Equals("") && (textBox3.Text.Equals("")))
{
label15.Visible = false;
textBox2.Text = "";
textBox2.Visible = false;
xButton2.Visible = false;
}
}
【问题讨论】:
-
发布您的代码,for ex,用于 3 个标签/文本框以及您将如何做,以便我们改进它。在这种形式中,您只希望我们为您编写。
-
我不是要求它被写出来,我是在问我如何在概念上做到这一点。虽然我会根据要求发布我当前的无效代码。
-
这听起来像是用户控件的一个很好的用例(名称会根据您使用的 UI 框架而有所不同)。将标签和编辑合并到一个控件中,根据需要创建和删除该单个控件。
-
您实现这些附加字段的方式似乎是静态的(硬编码)。如果确实如此,那将带来很多挑战,包括您提到的那些。使用动态方法来动态创建这些控件(或优化自定义控件)并允许它们被删除怎么样?如果您选择了正确的周围容器,该位置将自动解析。
-
@QualityCatalyst,可以很好地创建新标签和文本框,但是如何使用 x 按钮删除新创建的对?并且以下对在删除时会自动向上移动吗?谢谢你的建议
标签: c# textbox tags format field