C# 用户控件中的访问方法不可能,尽管是公共的
这似乎是一个简单的问题,我可以在这里找到一些与之相关的帖子,不幸的是,这些帖子最终对我没有帮助 我试图做的是访问用户控件中的方法 我所做的:设置用户控件“TabContent”,如下所示:C# 用户控件中的访问方法不可能,尽管是公共的,c#,.net,winforms,methods,user-controls,C#,.net,Winforms,Methods,User Controls,这似乎是一个简单的问题,我可以在这里找到一些与之相关的帖子,不幸的是,这些帖子最终对我没有帮助 我试图做的是访问用户控件中的方法 我所做的:设置用户控件“TabContent”,如下所示: namespace TabContent { public partial class TabContent : UserControl { public TabContent() { InitializeComponent();
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()是未知的,尽管它被定义为public,并且我还添加了“使用TabContent”。我遗漏了一些代码,其中创建了一个新选项卡,并且用户控件显示在此选项卡中。这很好,所以用户控件存在并工作,只是我似乎没有访问这些方法的权限
谢谢你的帮助 方法名是您试图调用的
setxt
。并将usercontrollab=
更改为var lab=
或TabContent.TabContent lab=
方法名为SetName
您试图调用的SetText
。并将UserControl lab=
更改为var lab=
或TabContent.TabContent lab=
您的变量类型为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");
}
或
变量的类型为
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");
}
或
因为您将实验室声明为UserControl,而它没有SetText/SetName方法。将该行更改为var lab=new TabContent.TabContent();因为您将实验室声明为UserControl,而它没有SetText/SetName方法。将该行更改为var lab=new TabContent.TabContent();我认为否决票也没有必要。我在这个答案中添加了建议的文本,当我的项目看起来像原始项目时,我可以演示编译器错误,这是由这个答案中的建议修复的。谢谢你的帮助,也谢谢你指出拼写问题。我认为否决票也没有必要。我在这个答案中添加了建议的文本,当我的项目看起来像原始项目时,我可以演示编译器错误,这是由这个答案中的建议修复的。谢谢你的帮助,也谢谢你指出拼写问题。谢谢,这确实解决了问题,现在它正在按预期工作!谢谢,这确实解决了问题,现在它正在按预期工作!