3

刚才我遇到了这个奇怪的问题,我想知道我在 VS2012 中是否有什么东西可以解决。我正在使用 MDI Windows 窗体,为此dataGridView我从数据库中检索数据,然后使用数据库dataSource中的数据设置网格的属性。但是即使我使用一个旧项目作为这个项目的脚手架,现在我得到了我dataGridView在 VS2012 中设计的内容,在它旁边我从数据库中获取数据,就好像它是我dataGridView设计的一部分一样,除了标题列带有名称来自数据库的列。

但是我做了一点研究,发现实际上这个问题很容易通过将AutoGenerateColumns属性设置为 false 来解决。我在 VS2012 设计器中找不到这个属性。现在我正在使用这个:

        dgvClients.AutoGenerateColumns = false;
        dgvClients.DataSource = mainGridInfoList;

在这种情况load下,但我宁愿使用设计器(当然如果可能的话)并dgvClients.AutoGenerateColumns = false;从我的代码中删除这一行。问题是我看不到具有该确切名称的属性,dataGridView所以我想知道 - 名称是否已更改?这会有点奇怪,因为我仍然可以在我的代码中使用它,或者 IDE 设计器从来没有办法做到这一点,它必须明确地写在源代码中?

附言

对于这个特定问题,使用 IDE 设计器并不是一个很好的决定(至少我认为是这样),但这里有一个打印屏幕,可以向您展示如何从 VS2012 设计器设置此属性。

自动生成列

4

2 回答 2

4

我在文档中发现了一些可能对您的问题有所帮助的内容。

DataGridView.AutoGenerateColumns 属性

笔记:

在 Windows 窗体设计器中设置 DataSource 会自动将 AutoGenerateColumns 属性设置为 false 并生成代码来为数据源中的每个属性添加和绑定列。在设计时生成的代码等效于以下示例中显示的手动添加的代码。它与 AutoGenerateColumns 属性设置为 true 时在运行时自动生成列不同。

于 2013-08-10T00:07:27.893 回答
0

这是一个问题,因为如果开发人员不关注它,表格就会变得一团糟。我刚刚通过在类构造函数中设置属性来解决,以确保它是否保留了设计器

    private SeniorsOnlineForm()
    {
        InitializeComponent();
        seniorsOnlineGridView.AutoGenerateColumns = false;
    }rewrites its source.
于 2021-12-15T18:08:54.247 回答