4

datagridiview動的にバインドされている がありdatatableます。ヘッダーの列の一部を右揃えに揃えたいと思います。

datagridviewcellstyle と headercell の両方でこの設定を試しました。セルスタイルでは正しく表示されていますが、ヘッダーではそうではありません:

ここに画像の説明を入力

私が使用したコード:

this.dataGridView1.Columns["Quantity"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

誰かが私を助けることができますか?

4

3 に答える 3

13

コードは機能します。ヘッダー テキストの右側に表示されるスペースは「通常」です。

DataGridView列によるソートをサポートしています。したがって、各列ヘッダーには、並べ替えグリフ (通常は矢印) を表示するのに十分なスペースが予約されています。

列ヘッダーのテキストを完全に右揃えにしたい場合は、並べ替えを無効にする必要があります。SortMode列のプロパティをNotSortableに設定します。これにより、並べ替えグリフ用にスペースが確保されなくなります。

オブジェクト レッスン:

public class FrmTest : Form
{

    public FrmTest()
    {
        InitializeComponent();

        this.DataGridView1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
        this.DataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
    }

    private void CheckBox1_CheckedChanged(System.Object sender, System.EventArgs e)
    {
        if (this.CheckBox1.Checked) {
            this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic;
        } else {
            this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
        }
        this.DataGridView1.Refresh();
    }
}

1/ フォームをロードした後:

ここに画像の説明を入力

2/ チェックボックスをクリックして並べ替えを許可します。

ここに画像の説明を入力

3/ 列をクリックした後:

ここに画像の説明を入力

于 2013-07-01T19:34:13.300 に答える
-1
foreach (DataGridViewColumn col in dataGridView2.Columns){
    col.SortMode = DataGridViewColumnSortMode.NotSortable; // This first set it work
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
    col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
于 2016-03-25T08:49:50.213 に答える