我有10个文本框,我需要从每个文本框中选择文本。 问题是我无法从多个文本框中选择文本。 我的代码是否有解决此问题的方法。
private void Form1_Load(object sender, EventArgs e)
{
createTextBoxes(10);
((TextBox)textBoxes[0]).Select(1, 4);
((TextBox)textBoxes[1]).Select(1, 4); // <- it will not select text
((TextBox)textBoxes[2]).Select(1, 4); // same here
}
Control[] textBoxes;
private void createTextBoxes(int cnt)
{
textBoxes = new Control[cnt];
for (int i = 0; i < cnt; i++)
{
TextBox tb = new TextBox();
tb.Name = i.ToString();
tb.Location = new Point(5, 5 + 14 * i);
tb.Size = new Size(600, 20);
tb.BorderStyle = BorderStyle.None;
tb.Text = "sample text" + i.ToString();
textBoxes[i] = tb;
this.Controls.Add(tb);
}
}
答案 0 :(得分:4)
将texboxes的HideSelection属性设置为false。失去焦点后,他们会保持选择。
答案 1 :(得分:1)
一次只有一个控件可以有一个“焦点”......你不能选择(即:突出显示)多个控件的文本。
我刚刚通过在表单中添加一个按钮进行了测试,并在那里发布了3个“精选”片段......没有显示突出显示的内容。但是,当我通过每个控件执行TAB时,前3个尊重显示突出显示的部分。当我通过其余部分进行选项卡时,其余文本框的整个字段都已完全选中。
或者你真的想要完成别的事情......
答案 2 :(得分:1)
选择文本时,您无法看到它的焦点。 我运行了你的代码,然后选中了控件。前3个按指定选择。
答案 3 :(得分:0)
这可能无法正常工作,因为即使您已将TextBox实例添加到表单中,它们仍未显示。在它们显示并最初渲染之前,可能无法对它们进行选择。
答案 4 :(得分:0)
实际上确实如此,问题是你的另外两个文本框([1]和[2])没有焦点。一次只能有一个控件具有焦点。如果按Tab键将焦点放在下一个TextBox上,您将看到所选文本。