我一直在拔头发有一段时间了
我创建了一个充满图片框的表单。每个图片框将包含一个 _click、_mousedown 和 _mouseup 事件。我希望将为表单创建的这些事件移动到 class1.cs 中,然后让 form1.cs 继承这些事件。
我不想公开 picturebox1。 所以诸如 Class1 classOne = new Class1(); pictureBox1.Click += new EventHandler(cs.pictureBox1_Click);将不起作用。
我不确定如何让 form1.cs 继承 class1.cs。在我脑海中听起来很简单,但我只是精神一片空白
我厌倦了 Form1 类(class):Form,Class1
在 Form1.Designer.cs 中 this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); this.pictureBox1_Click无法访问
如果你能指出我正确的方向,那将是一个很大的帮助!干杯
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
Class1.cs
class Class1
{
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("pb1 click");
}
}
最佳答案
Class1
应该继承自 Form
,然后 Form1
会继承 Class1
:
class Class1 : Form
{
//...
}
public partial class Form1 : Class1
{
//...
}
确保所有 partial
声明都继承自 Class1
而不是 Form
。 (这可能会为任何自动生成的代码添加一个额外的步骤,这是 partial
类的典型原因。您可能需要为此编写自己的自动化程序。)
我不清楚的是您试图通过在 Form
和 Form1
之间使用中间类型来实现什么。 Class1
是否应该是多个表单将继承的通用“基本表单”?还是您正在尝试做其他事情?但是如果您希望 Form1
能够访问 Class1
的成员而不将它们暴露为 public
成员,您可以将它们设为 protected
代替。
关于C# 继承窗体中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220358/