常见问题

为什么Form窗体设计器打不开?

  答:通过NuGet安装GTKSystem.Windows.FormsDesigner,然后按以下流程操作:
    1、编译一下 
    2、打开Form窗体
    (如果不能打开窗体,执行下面流程) 
    3、关闭Form窗体,编译一下 
    4、重启Visual Studio 
    5、打开Form窗体设计器 

如果还打不开,检查\obj\Debug\net8.0\工程项目名.runtimeconfig.json确保配置正确,

按以上操作后,为什么使用窗体设计器添加控件时还会出错?

答:
你的工程项目是不是在已有项目切换到GTKSystem.Windows.Forms?
1、检查一下引用类库,看看有没有不支持的类库(显示黄色图标的)?删除掉不支持的引用。
2、删除工程的obj文件夹,执行编译工程,visual studio会自动重新生成obj文件。
3、重启visual studio软件,正常加载工程项目,编译工程。
4、正常使用窗体设计器。

把加载数据程序写在Form构造方法里不显示数据

        public Form1()
        {
            InitializeComponent();

            // 程序写在这里无法加载数据
            //DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();
            //column1.Name = "test1";
            //column1.HeaderText = "test1";
            //this.dataGridView1.Columns.Add(column1);
            //for (int i = 0; i < 10; i++)
            //{
            //    var cell = new DataGridViewRow();
            //    cell.Cells.Add(new DataGridViewTextBoxCell() { Value = "user" + i.ToString() });
            //    this.dataGridView1.Rows.Add(cell);
            //}

            // * 从Shown事件里加载数据
            this.Shown += Form1_Shown;
        }

        private void Form1_Shown(object? sender, EventArgs e)
        {
            // 程序写在这里可以加载数据
            DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();
            column1.Name = "test1";
            column1.HeaderText = "test1";
            this.dataGridView1.Columns.Add(column1);
            for (int i = 0; i < 10; i++)
            {
                var cell = new DataGridViewRow();
                cell.Cells.Add(new DataGridViewTextBoxCell() { Value = "user" + i.ToString() });
                this.dataGridView1.Rows.Add(cell);
            }
        }
滚动至顶部