C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridViewの列名の変更について


(過去ログ 76 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■45169 / inTopicNo.1)  DataGridViewの列名の変更について
  
□投稿者/ simano (23回)-(2010/01/04(Mon) 20:29:26)

分類:[C#] 

こんにちは。
以下のように、DataGridViewにIListとDataSourceを使って
行の追加を行っています。

しかし、その後でColumns[n].Nameに新しく列名を指定しても、
元の列名(Modelクラスのプロパティ名)を変えることができません。
Columns[n].Widthなどは問題なく変更できます。

AutoGenerateColumnsをfalseに設定して、カラムを手動で追加し、
その際に名前を指定すれば問題ないこともわかったのですが…。

今回は列名を変更したいだけなので、
できればこの方法でシンプルに変更したいと思っています。

ご助言お願いいたします。
----------
    public partial class MyDataGridView : Form
    {
        public MyDataGridView()
        {
            InitializeComponent();

            dataGridView1.DataSource = GetDataSource();
            dataGridView1.Columns[0].Name = "名前";
            dataGridView1.Columns[0].Width = 100;
            dataGridView1.Columns[1].Name = "コンテンツ";
            dataGridView1.Columns[1].Width = 300;
        }

        private IList<MyRowModel> GetDataSource()
        {
            List<MyRowModel> list = new List<MyRowModel>();

            list.Add(new MyRowModel("aiueo", "あいうえお"));
            list.Add(new MyRowModel("kakikukeko", "かきくけこ"));

            return list;
        }

        private class MyRowModel
        {
            string m_Name;
            string m_Contents;

            public MyRowModel(string name, string cont)
            {
                m_Name = name;
                m_Contents = cont;
            }

            public string Name
            {
                get { return m_Name; }
            }

            public string Contents
            {
                get { return m_Contents; }
            }
        }
    }

引用返信 編集キー/
■45172 / inTopicNo.2)  Re[1]: DataGridViewの列名の変更について
□投稿者/ もりお (153回)-(2010/01/04(Mon) 22:04:00)
No45169 (simano さん) に返信
> しかし、その後でColumns[n].Nameに新しく列名を指定しても、
> 元の列名(Modelクラスのプロパティ名)を変えることができません。

HeaderText が変わっていないのでそのように見えるだけではないでしょうか。
このようにして確認してみてはいかがでしょうか。
System.Diagnostics.Debug.WriteLine(dataGridView1.Columns[0].Name);

引用返信 編集キー/
■45173 / inTopicNo.3)  Re[2]: DataGridViewの列名の変更について
□投稿者/ simano (24回)-(2010/01/04(Mon) 22:11:53)
No45172 (もりお さん) に返信
> ■No45169 (simano さん) に返信
>>しかし、その後でColumns[n].Nameに新しく列名を指定しても、
>>元の列名(Modelクラスのプロパティ名)を変えることができません。
>
> HeaderText が変わっていないのでそのように見えるだけではないでしょうか。
> このようにして確認してみてはいかがでしょうか。
> System.Diagnostics.Debug.WriteLine(dataGridView1.Columns[0].Name);

ありがとうございます!

すみません、NameとHeaderTextの役割を勘違いしていたみたいです。

上記のソースコードで、Nameの箇所をHeaderTextに置き換えたところ、
無事に、列名が変更できることを確認できました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -