Borrefts 2023-07-25 13:48 采纳率: 85.7%
浏览 56
已结题

Form1 的Text属性

请问如何动态修改Form1 的Text属性,我在Form1 中无法找到Text属性。有些人说用thsi.Text就能实现。从程序来看: public partial class Form1 : Form,这里的Form1继承自Form,Form1和Form一样都属于类,而不是一个实例,所以我能理解直接使用Form1 .Text是不行的,是否thsi.Text就表示实例化了Form1呢?是否和Form Form1=new Form();等效呢?也没见程序中哪里进行了实例化,请问如果我不使用thsi.Text这样的方式,我要自行实例化Form1,应该在哪里写代码?


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Form1.Text = "窗口标题被改动";
            this.Text = "窗口标题被改动";
        }
    }
}

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-07-25 14:06
    关注

    首先和你纠正下之前那个GPT刷子灌输的几个错误的观点:
    (1)this永远都是有效的实例,为什么?因为如果this为null,那么调用都调用不起来。
    比如
    Form1 f = null;
    f.button1_Click(sender, e);
    运行这段代码,会得到一个NullOfReference异常,根本调用不起来。
    (2)
    为什么不能写 Form1.Text
    因为Form1 是类名,类名.成员名 只能是静态成员
    比如
    class Form1 : Form
    {
    public static string Text1 {get;set;}
    ...
    private void button1_Click(object sender, EventArgs e)
    {
    Form1.Text1 = xxx
    }
    }
    这是可以的。
    (3)Form1 form1 = new Form1();这里,form1,小写的,是对象实例,而Form1是类名
    (4)你的代码,new Form1 写在了哪里?
    请你打开 Program.cs 这个源代码文件
    里面有
    Application.Run(new Form1());
    在这里
    (5)请你注意,这里有很多人使用GPT AI机器人乱刷,这些人员根本不懂编程,他们刷的东西错误百出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 创建了问题 7月25日