无法在设计模式下获取UserControl名称

时间:2014-11-03 13:38:38

标签: c# .net vb.net winforms

我的代码需要在用户控件中获取控件名称Load事件,问题是我在程序集中获取控件名称,而不是我在表单中指定的名称,但如果我运行项目,我会正确获取控件名称。 / p>

要进行测试,只需将以下代码添加到任何用户控件

即可
Private Sub GridX_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MsgBox(Me.Name)
End Sub

在运行时,这会给出ControlName1

在设计时,这会给出ControlName

如何在运行时获取ControlNameX


为了更清楚,在表单中添加两个控件,您将看到设计模式下控件的名称是相同的..与运行时模式不同..

1 个答案:

答案 0 :(得分:1)

如果您向用户控件添加属性,请执行以下操作:

// Note: code in C#
public string ControlName
{
    get
    {
        return Name;
    }
    set
    {
        Name = value;
        MessageBox.Show(value);
    }
}

您编译它并将其添加到表单中,您的设计器中有ControlName属性。如果更改设计器中的名称,则会显示新名称。而不是您想要调用事件处理程序的MessageBox.Show(),所以您可以使用新名称执行某些操作。