gpt4 book ai didi

c# - 获取选定的动态文本框的文本 C#

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:09 26 4
gpt4 key购买 nike

我在我的 winform 上有一个 usercontrol 并且我在每次点击按钮时创建多个用户控件(在运行时)。我的 usercontrol 有一个 textbox .另外,在 winform 上我有一个简单的文本框。我希望,当我选择一个用户控件时,动态文本框中的文本也出现在简单文本框中。在我的代码中,它说用户控件中的文本框不在当前上下文中。我的代码:

private void Gettext()
{
int i = 0;
Control[] txt = Controls.Find("txtBox" + i.ToString(), true);//here I search for the dynamical textbox
foreach (Control c in panel1.Controls)
{
if (c is UserControl1)
{
if (((UserControl)c).Selected)
txtSimple.Text= txtBox[0].Text ;
}
i++;
}

最佳答案

不知道我是否理解正确你的问题:

您的表单结构如下所示:

  • 您的表单有一个面板 panel1,它有许多在运行时创建的 UserControl1 类型的用户控件,以及一个 TextBox txtSimple。
  • 每个 UserControl 都有一个名为 ["txtBox"+ i] 的 TextBox
  • 在选择时要同步所选 UserControl 的 txtSimple 和 TextBox 的文本

然后:

int i=0;
foreach (Control c in panel1.Controls)
{
if (c is UserControl1)
{
if (((UserControl)c).Selected)
{
TextBox dynTxtBox = (TextBox)c.Controls["txtBox" + i];
txtSimple.Text= dynTxtBoxe.Text;
}
}
i++;
}

如果您无法通过这种方式找到您的 TextBox,则可能意味着它的名称设置不正确。

此外,如果您的 UserControl 上只有一个 TextBox,那么通常不需要以这种特定方式命名它(我的意思是从您的代码来看,我假设您的第一个用户控件上有 txtBox0,第二个用户控件上有 txtBox1,依此类推在)。您可以简单地将其命名为“txtBox”,然后像这样访问它:

txtSimple.Text = selectedUserControl.Controls["txtBox"].Text;

控件名称在 Control、UserControl 和 Form 的 Controls 集合中是唯一的。

关于c# - 获取选定的动态文本框的文本 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com