老是提示:错误 10 关键字“this”在静态属性、静态方法或静态字段初始值中无效public static void SetFrmText(string strR = "无消息")
        {
            this.Text = "窗体名称 - [" + strR + "]。" + DateTime.Now;
        }

解决方案 »

  1.   

    public virtual string Text { get; set; }此属性在Control类中,又不是静态属性,需实例化
      

  2.   

    你自己把问题想明白,你的定义的窗体需要实例化啊,还是只有一个如果需实例,去掉static,可指定默认标题
    如果只用单一实例,那你的窗体类中至少要定义一个静态的对象
    FormClass:Form
    {
       static FromClass __form = new FormClass()
       
       public static void FormClass(string txt)
       {
           __form.Text = txt;
       }
    }
      

  3.   

    传一个 Form 作为参数不就可以了吗?
      

  4.   

    另外,按照这个需求,这里用 static 绝对说不通。
      

  5.   

    静态成员没有this指针,所以它不知道this指什么,想要这么做,你需要传入个窗体指针
    public static void SetFrmText(string strR = "无消息", Form form)
    {
        form.Text = "窗体名称 - [" + strR + "]。" + DateTime.Now;
    }
      

  6.   

    或者
    private static Form This=this;public static void SetFrmText(string strR = "无消息")
    {
        This.Text = "窗体名称 - [" + strR + "]。" + DateTime.Now;
    }
      

  7.   

    public partial class MainFrm : Form
        {
            private static Form This = this;
    ......
    错误提示:关键字“this”在当前上下文中不可用
    public static void SetFrmText(string strR = "无消息", Form form)
    写法错误,而且,和实例化是一个原理.行不通啊.
      

  8.   

    假如有一个静态类test 里面有个静态字段str
    那么
    test.str="asdsad";
    form.Text = "窗体名称 - [" + test.str+ "]" + DateTime.Now;
      

  9.   


    public partial class Form1 : Form
        {
            static Form _staticForm;        public Form1() {
                InitializeComponent();
                _staticForm = this;
            }                private void button1_Click(object sender, EventArgs e) {
                SetText("abc");
            }        static void SetText(string strText) {
                _staticForm.Text = strText;
            }
        }