none
dataFridView のセル幅の変え方 RRS feed

  • 質問

  • dataGridView でデフォルトではセルの幅が適当ではないので、起動時にそれぞれのセル幅を変えようとしていますが
    異常にに縮まったテーブルになってしまいします。
    Width に入れる数値の単位はバイトではないのでしょうか?
    フォームの左側に縮こまって表示されます。
    以下がコードです。
    --------------------------------------------------------------------
            private void Form1_Load(object sender, EventArgs e)
            {
                dataGridView1.ColumnCount = 7; 
                dataGridView1.Columns[0].Width = 4;  // ここには半角で最大4桁の数字が入ります
                dataGridView1.Columns[1].Width = 9; 
                dataGridView1.Columns[2].Width = 12;
                dataGridView1.Columns[3].Width = 8;
                dataGridView1.Columns[4].Width = 25;
                dataGridView1.Columns[5].Width = 10;
                dataGridView1.ColumnsDevil.Width = 10;

               

            }

            private void button1_Click(object sender, EventArgs e)
            {
                string line;
                System.IO.StreamReader reader = new System.IO.StreamReader(@"d:\work\filemon.log", Encoding.Default);
                dataGridView1.Rows.Clear();
                while (!reader.EndOfStream)
                {
                    //line = reader.ReadLine().Replace("\"", "");
                    line = reader.ReadLine();

                    dataGridView1.Rows.Add(line.Split('\t'));
                }
                reader.Close();
            }
    -------------------End of Code ------------------------------------------

    2008年9月21日 10:40

回答

すべての返信

  •  よいこ さんからの引用
    Width に入れる数値の単位はバイトではないのでしょうか?

     

    Width の単位はピクセルです。

     

    DataGridViewColumn.Width プロパティ (System.Windows.Forms)
    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridviewcolumn.width(VS.80).aspx

     

    列幅を自動で調整する機能を使うと便利です。

     

    DataGridView.AutoSizeColumnsMode プロパティ (System.Windows.Forms)
    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview.autosizecolumnsmode(VS.80).aspx

    2008年9月21日 13:00
  • Tesla さん回答ありがとうございます。

    単位がピクセルとは...そう言われてみれば各サンプルの数値が納得できました。

    自動調整は教えてもらった方法で出来ましたが、逆に自動で調節するとマニュアルで変更が出来ないことに気づきました。
    使用上これはまずいので結局、コードで幅を決めるようにしました(今度はピクセルで)

    どうもありがとうございます。
    2008年9月22日 7:03
  • こんにちは、フォーラムオペレータ 大久保です。

     

    よいこ さん、フォーラムのご利用ありがとうございます!

    無事対応できたようでなによりです。

     

    アドバイスをくださった Tesla. さんの投稿に、勝手ながら「回答済み」チェックをつけさせていただきました。

    (回答済みチェックについては こちら の説明をご参照ください)

    また何かありましたら MSDN フォーラムのことを思い出してください。

     

    それでは

    2008年9月29日 6:40
  • DataGridViewにはAutoSizeColumnsModeプロパティと
    AutoResizeColumns()メソッドがあります。

     

    AutoSizeColumnsMode=true

    はデータ更新のたびにカラム幅を調節するので

    データ量が多くなると処理がどんどん重くなりますので、

    データ更新後にAutoResizeColumns()を呼び出すのが効率的です。

    しかもこれならユーザーがマニュアルでカラム幅を調節することも可能です。

     

    参考:http://ou812.web.fc2.com/CsTips/GraphicGrid.html

     

     

     

     

     

     

    2008年10月12日 19:32