c#如何继承一个普通的FORM

尔东主机 2010-07-26 04:41:49
baseform是一个只有一个Lable控件和两个TEXTBOX控件的FORM,
FORM1、FORM2、FORM3、...继承自baseform的FORM,
心想这样FORM1、FORM2、FORM3、...就可以拥有baseform的控件和后台代码了,
大大减少了重复的代码。
没想到运行时老是出现错误:“baseform”不包含“txtKehu_TextChanged”的定义,并且找不到可接受类型为“Qerp.baseform”的第一个参数的扩展方法“txtKehu_TextChanged”(是否缺少 using 指令或程序集引用?)
可是baseform确实包含如下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Erp
{
public partial class baseform : Form
{
public baseform()
{
InitializeComponent();
}

protected void txtKehu_click(object sender, EventArgs e)
{
...
}
}
}
这是为何?

而且每个继承baseform的FORM都无法显示设计界面,均提示:
文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FORM1 --- 无法加载基类“Erp.baseform”。请确保已引用该程序集并已生成所有项目。
这又是为何?

请大家指点!
...全文
707 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
请叫我卷福 2010-07-26
  • 打赏
  • 举报
回复
少继承 多组合(逍遥哥说的自定义控件) 啊啊啊....
wxm3630478 2010-07-26
  • 打赏
  • 举报
回复
到baseForm.Designer.cs 文件里找 下 搜索: txtKehu_TextChanged
wxm3630478 2010-07-26
  • 打赏
  • 举报
回复
baseform”不包含“txtKehu_TextChanged”的定义,

到baseForm.Designer.cs 文件里找 下

你自己设置过txtKehu的TextChanged事件过,但是你只删除cs文件里的这段代码

private void txtKehu_TextChanged(object sender,EventArgs e)
{

}
mythad 2010-07-26
  • 打赏
  • 举报
回复
别用窗体的继承。不仅如此,继承的东西最好少用,避免脆弱基类的问题,多用合成。txtKehu_TextChanged这个在你代码中确实没有啊。
malun666 2010-07-26
  • 打赏
  • 举报
回复
txtKehu_TextChanged这个控件是不是不存在啊。你好好看看,代码中是否还有这个玩意,整个项目中搜索一下,看看它有什么问题。从这下手
兔子-顾问 2010-07-26
  • 打赏
  • 举报
回复
尽量别这么想。如果界面类似。可以吧类似的部分抽出来做自定义控件,窗体继承麻烦很多,子类无法删除父类中的控件。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧