【问题标题】:Access methods in user control not possible although public尽管是公开的,但用户控制中的访问方法是不可能的
【发布时间】:2013-06-03 12:06:41
【问题描述】:

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

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

我做了什么:像这样设置用户控件“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”。我遗漏了一些代码,其中创建了一个新选项卡并在此选项卡中显示了用户控件。这可以正常工作,因此用户控件存在并且可以正常工作,只是我似乎无法访问这些方法。

感谢您的帮助!

【问题讨论】:

  • 因为您将 lab 声明为 UserControl 并且它没有 SetText/SetName 方法。将该行更改为 var lab = new TabContent.TabContent();

标签: c# .net winforms methods user-controls


【解决方案1】:

您的变量是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");
        }

【讨论】:

  • 谢谢,这确实解决了问题,它现在按预期工作!
【解决方案2】:

方法名称是SetName,您正在尝试调用SetText。并将UserControl lab = 更改为var lab =TabContent.TabContent lab =

【讨论】:

  • 我认为也没有必要投反对票。我添加了此答案中建议的文本,并且当我的项目看起来像原始项目时,我可以演示编译器错误,这些错误已由此答案中的建议修复。
  • 感谢您的帮助,也感谢您指出拼写问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 2019-05-30
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多