为什么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);
}
}