Código C # DataGridView Nuevo, código para establecer propiedades

En el código New a table object, el estilo de visualización del control a menudo no es lo que queremos; al configurar las propiedades del objeto datagridview1, podemos hacer esto:
DataGridView dgv1 = new DataGridView ();
dgv1.DataSource = dt; // DataTable U otra fuente de datos
dgv1.DataBindingComplete + = DataGridView1_DataBindingComplete;

// ¿Por qué no llamar directamente a SetDataGridView_Properties (dgv1) para establecer las propiedades?
// Porque cuando el código está vinculado a la fuente de datos, la fuente de datos aún no ha implementado la representación de la vista dgv1 y las diversas propiedades de dgv1 a menudo no están vinculadas en este momento No hay diferencia en la // fuente de datos, incluido dgv1.Columns.Count sigue siendo 0. En este momento, es imposible implementar varias configuraciones para la Vista de dgv1
//

DataGridView1_DataBindingComplete实现:

     private  void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        if (!(sender is DataGridView))
            return;
        SetDataGridView_Properties((DataGridView)sender);
    }

    public  void SetDataGridView_Properties(DataGridView dataGridView1)
    {
        if (dataGridView1 == null || dataGridView1.Columns.Count == 0)
            return;
        //自适应宽度
        int width = 0;
        for (int i = 0; i < dataGridView1.Columns.Count; i++)
        {
            //将每一列都调整为自动适应模式
            dataGridView1.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);
            //记录整个DataGridView的宽度
            width += dataGridView1.Columns[i].Width;

            dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            dataGridView1.Columns[i].ReadOnly = true;
        }
        //判断调整后的宽度与原来设定的宽度的关系,如果是调整后的宽度大于原来设定的宽度,
        //则将DataGridView的列自动调整模式设置为显示的列即可,
        //如果是小于原来设定的宽度,将模式改为填充。
        if (width > dataGridView1.Size.Width)
        {
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
        }
        else
        {
            ////冻结某列 从左开始 0,1,2
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
        }
        ////冻结某列 从左开始 0,1,2
        // ((DataGridView)dataGridView1).Columns[((DataGridView)dataGridView1).ColumnCount - 1].Frozen = true;
        ((DataGridView)dataGridView1).Columns[2].Frozen = true;

        dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
        dataGridView1.ColumnHeadersHeight = 30;
        dataGridView1.RowHeadersWidth = 30;

        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            dataGridView1.Rows[i].Height = 28;
        }
        //标题居中
        dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

        dataGridView1.ForeColor = Color.Black;
        dataGridView1.BackgroundColor = Color.White;
        dataGridView1.AllowUserToAddRows = false;

        //dataGridView1.Refresh();
    }

    其他属性:
            dgv1.ReadOnly = true;                   

Supongo que te gusta

Origin blog.51cto.com/10555486/2588467
Recomendado
Clasificación