【发布时间】:2017-01-08 16:37:15
【问题描述】:
我有一个用户定义的类:
public class UserDefined
{
public winForm svdWinForm;
.....
}
在另一个地方,在 UserDefined 类的 objUserDefined 实例中
{
...
objUserDefined.svdWinForm=anotherWinform;
...
this.Close();
}
如何在winForm实例objUserDefined中找到svdWinForm的TextBox控件?
我用了以下。但是没有成功。
foreach (Control x in objUserDefined.svdWinForm.Controls)
{
if (x is TextBox)
{
MessageBox.Show("Find a TextBox control!!");
}
}
例如对于我的问题,我想遍历文本框或其他控件并设置两个对象相等,如下所示。我的问题是如何使用 foreach 循环简化代码。
/// <summary>
/// Copy a CylinderDimension form to another form
/// </summary>
/// <param name="tgCylinderDimensionsWin">Target form</param>
/// <param name="srCylinderDimensionsWin">Source form</param>
public CopyCylinderDimensionsWin(CylinderDimensionsWin tgCylinderDimensionsWin, CylinderDimensionsWin srCylinderDimensionsWin)
{
tgCylinderDimensionsWin.rdInnerDiameter.Checked = srCylinderDimensionsWin.rdInnerDiameter.Checked;
tgCylinderDimensionsWin.rdOuterDiameter.Checked = srCylinderDimensionsWin.rdOuterDiameter.Checked;
tgCylinderDimensionsWin.txtShellDiameter.Text = srCylinderDimensionsWin.txtShellDiameter.Text;
tgCylinderDimensionsWin.txtShellLength.Text = srCylinderDimensionsWin.txtShellLength.Text;
tgCylinderDimensionsWin.txtShellThickness.Text = srCylinderDimensionsWin.txtShellThickness.Text;
tgCylinderDimensionsWin.txtNumberAdd.Text = srCylinderDimensionsWin.txtNumberAdd.Text;
tgCylinderDimensionsWin.chTrialLength.Checked = srCylinderDimensionsWin.chTrialLength.Checked;
tgCylinderDimensionsWin.txtTrialLength.Text = srCylinderDimensionsWin.txtTrialLength.Text;
tgCylinderDimensionsWin.chExempt.Checked = srCylinderDimensionsWin.chExempt.Checked;
tgCylinderDimensionsWin.txtTrialLength.Visible = srCylinderDimensionsWin.txtTrialLength.Visible;
tgCylinderDimensionsWin.lbTrialLength.Visible = srCylinderDimensionsWin.lbTrialLength.Visible;
}
【问题讨论】:
-
有什么问题?
-
SLate,问题是从 objUserDefined.svdWinForm 中找不到控件。其实svdWinForm上有4个TextBox控件,这是一个嵌入在UserDefined类中的winForm类的实例。
-
他们可能在其他面板中。
-
你可以搜索类似“所有winform控件”stackoverflow.com/questions/2735190/…
-
问题在于 winForm 嵌入在 userDefined 类中。 objUserDefined 是 userDifined 类的一个实例,而不是 winForm 的立场。找不到userDefined类中嵌入的winForm(svdWinForm)的控件。这很奇怪!