C格式的标签或文本框的C#计数

问题描述 投票:-1回答:1

如何动态获取Winform中的标签数量?因为在我的表单中,我大约有12个标签,如果我按下按钮,我想将每个标签更改为文本框。总而言之,我想使每个标签都可编辑,并在编辑并保存后将其更改回标签。总之,它将像可编辑标签。但是,为每个标签编写更改需要花费大量时间和代码行,因此,如果可以使其动态化,我将是完美的。谢谢。This is an example

c# visual-studio label
1个回答
0
投票

我建议使用TextBox,而不是Label包含任何可以编辑的文本。因此,我们在[[2不同模式Label Mode(无编辑)和TextBox Mode中具有TextBox。在它们之间切换(假设WinForms):

// Make TextBox to look like a label: readonly, color, border etc. private static void ToLabelMode(TextBox box) { if (null == box) return; box.HideSelection = true; box.BackColor = SystemColors.Control; box.ReadOnly = true; box.BorderStyle = BorderStyle.None; } private static void ToTextBoxMode(TextBox box) { if (null == box) return; box.HideSelection = false; box.BackColor = SystemColors.Window; box.ReadOnly = false; box.BorderStyle = BorderStyle.Fixed3D; }
然后您可以使用它们:

TextBox[] m_TextBoxes; private void MyForm_Load(object sender, EventArgs e) { m_TextBoxes = new TextBox[] { textBoxFirstName, textBoxLastName, //TODO: Put the relevant ones }; // Let all TextBox be in Label mode EnableEdit(false); } private void EnableEdit(bool enabled) { foreach (var box in m_TextBoxes) if (enabled) ToTextBoxMode(box); else ToLabelMode(box); }

© www.soinside.com 2019 - 2024. All rights reserved.