首页 > 解决方案 > 无法将类型 system.windows.forms.datagridtextboxcolumn 隐式转换为 system.windows.forms.datagridviewcolumn M'alerter

问题描述

我真的被困在创建具有 2 列的动态 datagridview 的这一点上,我使用了 datgridtextboxcolumns 但我一直收到此错误

无法将类型 system.windows.forms.datagridtextboxcolumn 隐式转换为“dgviewcol1”和“dgviewcol2”的 system.windows.forms.datagridviewcolumn

当我尝试使用 AddRange 添加新列时。我也有错误说 datagridviewtextboxcolumn 中不存在 Visible 属性,这是错误的。

任何人都知道我怎样才能摆脱这个错误?非常感激!

private DataGridView dgview;
    private DataGridTextBoxColumn dgviewcol1;
    private DataGridTextBoxColumn dgviewcol2;
    void Search()
    {
        dgview = new DataGridView();
        dgviewcol1 = new DataGridTextBoxColumn();
        dgviewcol2 = new DataGridTextBoxColumn();
        this.dgview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dgview.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {this.dgviewcol1, this.dgviewcol2}); // "cannot implicitly convert type system.windows.forms.datagridtextboxcolumn to system.windows.forms.datagridviewcolumn"
        dataGridView2.Visible = false;
        this.dgviewcol1.Visible = false; // Visible property doesn't exist in datagridviewtextboxcolumn
        this.dgviewcol2.Visible = false;
        this.Controls.Add(dgview);
        this.dgview.ReadOnly = true;
        dgview.BringToFront();

    }

标签: c#asp.netwindows-forms-designer

解决方案


您正在尝试添加DataGridTextBoxColumnDataGridView不是添加DataGridViewTextBoxColumn,因此编译器会尝试将其转换为引发异常的 DataGridViewColumn。

private DataGridView dgview;
private DataGridViewTextBoxColumn dgviewcol1;
private DataGridViewTextBoxColumn dgviewcol2;
void Search()
{
    dgview = new DataGridView();
    dgviewcol1 = new DataGridViewTextBoxColumn();
    dgviewcol2 = new DataGridViewTextBoxColumn();
    this.dgview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    this.dgview.Columns.AddRange(new System.Windows.Forms.DataGridViewTextBoxColumn[] {this.dgviewcol1, this.dgviewcol2}); // "cannot implicitly convert type system.windows.forms.datagridtextboxcolumn to system.windows.forms.datagridviewcolumn"
    dataGridView2.Visible = false;
    this.dgviewcol1.Visible = false; // Visible property doesn't exist in datagridviewtextboxcolumn
    this.dgviewcol2.Visible = false;
    this.Controls.Add(dgview);
    this.dgview.ReadOnly = true;
    dgview.BringToFront();

}

希望这可以解决您的问题


推荐阅读