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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.28705 の関連記事表示

<< 0 >>
■28705  Re[1]: セル単位でのcellstyleの変更について
□投稿者/ 魔界の仮面弁士 -(2008/11/29(Sat) 10:33:01)
    2008/11/29(Sat) 10:49:47 編集(投稿者)

    No28699 (見習いPG さん) に返信
    > "MS Pゴシック"等の文字列が入っています
    "MS Pゴシック" ではなく、
    "MS Pゴシック" にしておいた方が良いかと。


    > dataGridView1[0, 0].Style.Font.Nameで、null例外が発生します。
    フォントが割り当てられていなければ、.Style.Font は null を返しますからね。

    現在の設定値を確認する目的であれば、いきなり .Style.Font を参照するのは NG です。
    # 説明するとややこしいので、具体的な方法は、後述のコードから読み取ってください。(^^;


    > dataGridView1.DefaultCellStyle.Font = new Font("MS Pゴシック", 9, FontStyle.Regular);
    > dataGridView1.Font = new Font("MS Pゴシック", 9, FontStyle.Regular);

    スタイル設定は、「グリッド全体」「行単位」「奇数行」「列単位」「セル単位」などなど
    複数の設定箇所がありますよね。これらの優先順位などを、よく確認してみてください。
    http://msdn2.microsoft.com/ja-jp/library/1yef90x0%28VS.80%29.aspx


    たとえばこんなコードを書いて、スタイルの関係を確認してみては如何でしょう。

    private void Form1_Load(object sender, EventArgs e)
    {
      dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
      dataGridView1.AllowUserToAddRows = false;
      dataGridView1.RowCount = 2;
      dataGridView1.ColumnCount = 4;

      DataGridViewCellStyle cs;
      // 1行目の書式を設定
      cs = dataGridView1.Rows[1].DefaultCellStyle;
      cs.BackColor = Color.Red;
      cs.Font = new Font("MS Pゴシック", 12);

      // 0列目の書式を設定
      cs = dataGridView1.Columns[0].DefaultCellStyle;
      cs.BackColor = Color.Yellow;
      cs.Font = new Font("Wingdings", 15);

      // 1行目の1列目の書式を設定
      cs = dataGridView1[1, 1].Style;
      cs.BackColor = Color.Green;
      cs.Font = null;

      // 1行目の2列目の書式を設定
      cs = dataGridView1[2, 1].Style;
      cs.BackColor = Color.Empty;
      cs.Font = new Font("MS 明朝", 9);

      // 1行目の3列目は書式を設定しない
      dataGridView1[3, 1].Style = null;
    }

    ColorConverter c = new ColorConverter();
    FontConverter f = new FontConverter();

    // 書式情報を表示
    private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
      listBox1.Items.Clear();

      DataGridViewCell cell = ((DataGridView)sender)[e.ColumnIndex, e.RowIndex];
      listBox1.Items.Add("=== セルの書式 ===");
      if (!cell.HasStyle)
      {
        listBox1.Items.Add("(セルの書式は");
        listBox1.Items.Add(" 設定されていない)");
      }
      else
      {
        listBox1.Items.Add("Style-Color:" + c.ConvertToString(cell.Style.BackColor));
        listBox1.Items.Add("Style-Font:" + f.ConvertToString(cell.Style.Font));
      }
      listBox1.Items.Add("Inherit-Color:" + c.ConvertToString(cell.InheritedStyle.BackColor));
      listBox1.Items.Add("Inherit-Font:" + f.ConvertToString(cell.InheritedStyle.Font));

      DataGridViewRow row = ((DataGridView)sender).Rows[e.RowIndex];
      listBox1.Items.Add("=== 行の書式 ===");
      if (!row.HasDefaultCellStyle)
      {
        listBox1.Items.Add("(行の書式は");
        listBox1.Items.Add(" 設定されていない)");
      }
      else
      {
        listBox1.Items.Add("Style-Color:" + c.ConvertToString(row.DefaultCellStyle.BackColor));
        listBox1.Items.Add("Style-Font:" + f.ConvertToString(row.DefaultCellStyle.Font));
      }
      listBox1.Items.Add("Inherit-Color:" + c.ConvertToString(row.InheritedStyle.BackColor));
      listBox1.Items.Add("Inherit-Font:" + f.ConvertToString(row.InheritedStyle.Font));

      DataGridViewColumn col = ((DataGridView)sender).Columns[e.ColumnIndex];
      listBox1.Items.Add("=== 列の書式 ===");
      if (!col.HasDefaultCellStyle)
      {
        listBox1.Items.Add("(列の書式は");
        listBox1.Items.Add(" 設定されていない)");
      }
      else
      {
        listBox1.Items.Add("Style-Color:" + c.ConvertToString(col.DefaultCellStyle.BackColor));
        listBox1.Items.Add("Style-Font:" + f.ConvertToString(col.DefaultCellStyle.Font));
      }
      listBox1.Items.Add("Inherit-Color:" + c.ConvertToString(col.InheritedStyle.BackColor));
      listBox1.Items.Add("Inherit-Font:" + f.ConvertToString(col.InheritedStyle.Font));
    }
記事No.28699 のレス /過去ログ52より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -