- PR -

C# DataGridViewのヘッダーの表示を修正したい

1
投稿者投稿内容
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2007-02-03 22:25
Q1.ヘッダー表示をNameで無くCaptionに修正する方法はありますか?
Q2.ヘッダーの表示を任意の文字列で明示的に修正する方法はありますか?

DataGridViewのDataSourceにDataTableをBindすると、
ヘッダーにはDataRowのCaptionでは無くNameが表示されてしまいます。
これでは、内部構造がそのままヘッダーに表示され不便です。
DataGridViewのプロパティウィンドウでそれらしい設定箇所が無いか探しましたが、
分かりませんでした。

※注意 DataGridでは無く、DataGridViewについての質問です
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2007-02-03 22:30
すみません。記述ミスを見つけました。
DataRow(行)では無く、DataColumn(列)ですね。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2007-02-04 00:53
こんばんは。

DataBindingCompleteイベントで、書き換えるってのはどうでしょう?

コード:

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
        column.HeaderText = ((DataTable)dataGridView1.DataSource).Columns[column.Index].Caption;
    }
}

KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-02-04 01:04
引用:

Q1.ヘッダー表示をNameで無くCaptionに修正する方法はありますか?



特にそういった設定は用意されていないと思います。

引用:

Q2.ヘッダーの表示を任意の文字列で明示的に修正する方法はありますか?



ぼのぼのさんのコードにもありますが、HeaderTextプロパティで設定が可能です。

書式等の設定もありますので、バインド時に列を生成するのではなく
デザイナで列を作成する方法を、私はよく使います。
これなら手でコードを書かずとも、デザイナ上でヘッダー文字列を設定できますし。
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2007-02-06 11:31
ご回答ありがとうございます。
Captionの参照は未確認ですが、
デザイナーでHeaderTextを修正する方法は確認できました。
1

スキルアップ/キャリアアップ(JOB@IT)