C# 通过属性扩展窗体的最简单方法?
我做了很多搜索,但没有什么真正帮助我。。。问题是: 我需要一个额外的财产,比如C# 通过属性扩展窗体的最简单方法?,c#,.net,forms,C#,.net,Forms,我做了很多搜索,但没有什么真正帮助我。。。问题是: 我需要一个额外的财产,比如 public int FormResult() { get{ .... 问题是我是通过 Form f1 = new Forms.Form2(); f1.Show; ..... 因此,我不能将属性放在表单中,因为只有使用 Form2 f1 = new Forms.Form2(); 我需要的是通过该属性扩展整个表单类,或者你有更好的主意。。?我首先想到了普通的类扩展,但它无法访问类内部的Resultvari
public int FormResult()
{
get{ ....
问题是我是通过
Form f1 = new Forms.Form2();
f1.Show;
.....
因此,我不能将属性放在表单中,因为只有使用
Form2 f1 = new Forms.Form2();
我需要的是通过该属性扩展整个表单类,或者你有更好的主意。。?我首先想到了普通的类扩展,但它无法访问类内部的Resultvariable。
然后我想我应该创建一个从表单继承的新类,并添加该属性…就像通常一样。然后我会在我所有的表单上使用这个类,它应该可以工作——但是这就是VS告诉我我的访问不一致的地方,也就是说clsExtForm比Form2更难访问
这看起来像这样:
class clsExtForm : Form
{
private int result;
Public int FormResult()
{
Get{ return result; }
Set{ result = value; }
}
}
那我就用
ClsExtForm f1 = new Forms.Form2();
并将表格2改为
public partial class Form2 : clsExtForm
这就产生了上面的错误
解决了-我所缺少的是在上课前公开的clsExtForm,他们有正确的可访问性级别…抱歉…在德国的一大早:
为什么这样做不合适
我期待着你的回答!
谢谢你的帮助
您好,
Lorenz你能发布整个表单子类吗?什么是clsExtForm?不太清楚你在哪里出错,也不清楚你到底在做什么。请阅读也许您想尝试使用扩展方法?没有任何理由不使用Form2。如果这能让你更快乐,就用var代替。为一个名为Form2的类型命名一个实例变量f1,这很糟糕。