C# 多窗体调用同一个函数的问题

ahljxwy 2014-04-29 12:27:02
public void setFrmName(frmBase frm)
{
frm.Text = "新名称";
}

比如在一个公共类中有上面这样的一个函数,还有两个窗体:frmA和frmB,现在这两个窗体都要调用这个setFrmName函数,我现在的做法是让frmA和frmB都继续一个frmBase窗体,然后用frmA.setFrmName(this)和frmB.setFrmName(this)的方式去调用这个函数,如果有N个窗体都要调用这个函数,难道每个窗体都要继承这个frmBase才可以?有没有其它的方式可以实现相同的功能?谢谢!!!!!
...全文
500 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AS1317253535 2015-05-22
  • 打赏
  • 举报
回复
用静态方法就可以,还有别的方法没啊?
ahljxwy 2014-04-29
  • 打赏
  • 举报
回复
忘了说明了,我这个函数只是简单的示例,其它在这个函数中对传过来的窗体做了很多操作,比如往窗体上动态加载各种控件。。。
wind_cloud2011 2014-04-29
  • 打赏
  • 举报
回复

类中用静态

  public static  string  setFrmName(string s)
        {
             s= "新名称";
             return s;
        }
xingeddx 2014-04-29
  • 打赏
  • 举报
回复
把这个方法写到一个单独的类中,每个想调用这个方法的窗体维护一个那个单独类的实例
dianjixue1 2014-04-29
  • 打赏
  • 举报
回复

public class CommonFun
    {
     public static void setFrmName(Form frm)
        {
            frm.Text = "新名称";
            .................
        }
 
}
如果调用代码写在某个窗体中 public partial class FormA : Form { private void FormA _Load(object sender, EventArgs e) { CommonFun.setFrmName(this);//传入窗体参数 } }
ahljxwy 2014-04-29
  • 打赏
  • 举报
回复
回楼上:frmBase是一个窗体
jimil 2014-04-29
  • 打赏
  • 举报
回复
frmBase是你自己的东西呀,你没定义的? 难道你是看书上某个例子自己取一段出来的?那就改成string,string frm = "hello world";
ahljxwy 2014-04-29
  • 打赏
  • 举报
回复
回复4楼:CommonFun.setFrmName(frm); 里的frm怎么定义呢?
dianjixue1 2014-04-29
  • 打赏
  • 举报
回复 1
写一个公共类,里面放一个公共的静态方法

 public class CommonFun
    {
     public static void setFrmName(frmBase frm)
        {
            frm.Text = "新名称";
            .................
        }

}
调用时 CommonFun.setFrmName(frm);

110,538

社区成员

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

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

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