【问题标题】:Windows Forms: Extra columns in DataGridViewWindows 窗体:DataGridView 中的额外列
【发布时间】:2016-08-23 11:54:04
【问题描述】:

我的 DataGridView 显示了额外的列。该应用程序是一个 Windows 窗体应用程序。我可能做错了什么?

public ConvertisForm1()
    {
        InitializeComponent();
        openFileDialog.Filter = "Files| *.chm;*.htm;*.html;*.rtf;*.xls;*.xlsx;*.xps;*.doc;*.docx";    
    dataGridView.AutoGenerateColumns = false;
    dataGridView.RowHeadersVisible = false;
    dataGridView.ColumnCount = 5;

    dataGridView.RowCount = 20;
    //delete button
    var deleteDataGridViewButtonColumn = new DataGridViewButtonColumn
    {
        HeaderText = "",
        Name = deleteDataGridViewButtonColumnName,
        Text = "X",
        Width =20
    };
    dataGridView.Columns.Insert(DeleteColumnIndex, deleteDataGridViewButtonColumn);

    dataGridView.Columns[FileNameAndPathColumnIndex].Width=250;
    dataGridView.Columns[FileNameAndPathColumnIndex].HeaderText = "File Path";

    //browse button
    var browseDataGridViewButtonColumn = new DataGridViewButtonColumn
    {
        HeaderText = "",
        Name = browseDataGridViewButtonColumnName,
        Text = "...",
        Width = 30
    };
    dataGridView.Columns.Insert(BrowseButtonColumnIndex, browseDataGridViewButtonColumn);

    //convert to dropdown
    var convertToDataGridViewComboBoxColumn = new DataGridViewComboBoxColumn
    {
        HeaderText = "Convert to",
        Name = convertToDataGridViewComboBoxColumnName,
        DataSource = new ArrayList { convertToComboBoxDefault, "pdf", "word"},
        Width = 100,
        DefaultCellStyle =
        {
            NullValue = convertToComboBoxDefault,
            DataSourceNullValue = convertToComboBoxDefault
        }
    };

    dataGridView.Columns.Insert(ConvertToFileTypeColumnIndex, convertToDataGridViewComboBoxColumn);

    var convertDataGridViewButtonColumn = new DataGridViewButtonColumn
    {
        HeaderText = "",
        Name = convertDataGridViewButtonColumnName,
        Text = "Convert",
        Width = 50
    };
    dataGridView.Columns.Insert(ConvertButtonColumnIndex, convertDataGridViewButtonColumn);
    dataGridView.AllowUserToResizeColumns = false;
    dataGridView.AllowUserToResizeRows = false;
    #endregion
}

【问题讨论】:

  • 是这个dataGridView.ColumnCount = 5; ?
  • @active92 你不必提出这个问题。 :-)

标签: c# .net winforms datagridview


【解决方案1】:

你试过DataGridView1.AutoGenerateColumns = false;吗?

或者您可以在添加新列之前清除所有列

参考链接:https://stackoverflow.com/a/7430993/5694113

【讨论】:

  • 他的 autogeneratedcolumns 已经设置为 false,但他将 columncount 设置为 5。我认为这就是他获得 5 列的原因。
  • 上帝保佑@TheQuestioner。删除 ColumnCount=5,清除列(在添加列之前)解决了问题。
  • 如果您认为某个帖子可以帮助您解决问题。请将其标记为答案。很高兴我帮助了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 2023-04-03
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
相关资源
最近更新 更多