0

这似乎是一个简单的问题,我可以在这里找到一些与之相关的帖子 - 不幸的是 - 最后并没有帮助我。

我想要做的是访问用户控件中的方法。

我做了什么:像这样设置用户控件“TabContent”:

namespace TabContent
{
    public partial class TabContent : UserControl
    {
        public TabContent()
        {
            InitializeComponent();
        }

        public void SetName(string tabname)
        {
            show_name.Text = tabname; //show_name is a label
        }

    }
}

现在我正在尝试从我的主应用程序访问它:

using TabContent;

namespace Tab_Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonItem1_Click(object sender, EventArgs e)
        {
            UserControl lab = new TabContent.TabContent();            
            lab.Dock = DockStyle.Fill;
            lab.SetText("hallo");
        }
    }
}

问题是方法 SetText() 是未知的,尽管它被定义为公共,我还添加了“使用 TabContent”。我遗漏了一些代码,其中创建了一个新选项卡并在此选项卡中显示了用户控件。这很好用,所以用户控件存在并且可以工作,只是我似乎无法访问这些方法。

谢谢你的帮助!

4

2 回答 2

2

你的变量是 type UserControl,它没有SetName方法。使用该var功能或​​使您的变量成为显式类型TabContent.TabContent

private void buttonItem1_Click(object sender, EventArgs e)
        {
            var lab = new TabContent.TabContent();            
            lab.Dock = DockStyle.Fill;
            lab.SetName("hallo");
        }

或者

private void buttonItem1_Click(object sender, EventArgs e)
        {
            TabContent.TabContent lab = new TabContent.TabContent();            
            lab.Dock = DockStyle.Fill;
            lab.SetName("hallo");
        }
于 2013-06-03T12:10:35.700 回答
1

方法名称是SetName您尝试调用的SetText。并更改UserControl lab =var lab =TabContent.TabContent lab =

于 2013-06-03T12:09:10.830 回答