26

テキストの配置と DataGridView のフォント サイズを変更しようとしています。すべての列は、実行時にプログラムによって作成されます。これがコードです..

private void LoadData()
{
    dgvBreakDowns.ColumnCount = 5;
    dgvBreakDowns.Columns[0].Name = "Breakdown No";
    dgvBreakDowns.Columns[1].Name = "Breakdown Type";
    dgvBreakDowns.Columns[2].Name = "Machine Type";
    dgvBreakDowns.Columns[3].Name = "Date";
    dgvBreakDowns.Columns[4].Name = "Completed";

    dgvBreakDowns.Columns[4].Visible = false;

    foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)
    {
        header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
    }
}

このLoadData()メソッドは、フォームのコンストラクターで呼び出されます。列は作成されますが、ヘッダーの変更は適用されません。foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)?よくわからないループの欠陥が原因だと思います。に変更しようとしたところdgvBreakDowns.Columns、InvalidCastException が発生しました。これらの変更を適用するヘッダー セルを選択するにはどうすればよいですか?

別の小さな問題があります。プログラムを実行すると、このようになります。

ここに画像の説明を入力

最初のセルがデフォルトで選択されているため、青く表示されていることに注意してください。確かに何の影響もありませんが、見栄えが悪く、見栄えが悪いだけです。そのようにセルを選択するのを止めることは可能ですか?

4

4 に答える 4

47

Try this (note I'm using Columns here and not Rows):

foreach(DataGridViewColumn col in dgvBreakDowns.Columns)
{
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
    col.HeaderCell.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
}

As for deselecting the cell, try dgvBreakDowns.ClearSelection()

于 2012-10-19T05:41:49.877 に答える
6

またはこれを試してください:

dgvBreakDowns.Columns[4].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter;
于 2016-04-27T10:00:08.553 に答える