首页 / C# / C#无法从父类访问Form的公共成员
C#无法从父类访问Form的公共成员
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#无法从父类访问Form的公共成员,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1805字,纯文字阅读大概需要3分钟。
内容图文
![C#无法从父类访问Form的公共成员](/upload/InfoBanner/zyjiaocheng/662/5b65c4512fde4a0a9f738275ce0a3efd.jpg)
我试图在一个类中添加一个事件处理程序,以引用在该类中实例化的窗体控件的事件.所有类都存在于同一名称空间中.
该程序基于ApplicationContext窗体应用程序.在Program.cs的静态void Main()中
CustomApplicationContext applicationContext = new CustomApplicationContext();
Application.Run(applicationContext);
在公共类CustomApplicationContext中
public class CustomApplicationContext : ApplicationContext
{
//create the application form
Form appForm;
public CustomApplicationContext()
{
InitializeContext();
//create instance of appForm
appForm = new AppForm();
//subscribe event handler to form closing event
appForm.FormClosing += form_FormClosing; //this works fine
//subscribe event handler to form control click event
appForm.someToolStripMenuItem.Click += form_Click; //doesn't compile
//can't even find appForm.someToolStripmenuItem in code completion!
}
void form_FormClosing(object sender, FormClosingEventArgs e)
{
...
}
void form_Click(object sender, EventArgs e)
{
...
}
...
}
在设计器生成的AppForm.Designer.cs中的公共局部类AppForm中,我将控件修饰符公开,并将类公开
public partial class AppForm //note that I made this public
{
...
this.someToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
...
//
// someToolStripMenuItem
//
this.someToolStripMenuItem.Name = "someToolStripMenuItem";
this.someToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
this.someToolStripMenuItem.Text = "Some Item";
...
public System.Windows.Forms.ToolStripMenuItem someToolStripMenuItem;
}
我到底在做什么错?当我键入appForm.时,代码完成框中甚至都没有出现someToolStripMenuItem,好像它在上下文中不可访问-但是appForm是可访问的,而someToolStripMenuItem是公共的.
解决方法:
由于您声明的方式,编译器认为appForm是一个Form而不是一个AppForm:
Form appForm;
尝试将声明更改为AppForm appForm;或将其投射为:
((AppForm)appForm).someToolStripMenuItem.Click += form_Click;
内容总结
以上是互联网集市为您收集整理的C#无法从父类访问Form的公共成员全部内容,希望文章能够帮你解决C#无法从父类访问Form的公共成员所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。