2011-06-22 20 views
1

私は、セルの書式設定が有効になりません、これは正常に動作し、出力は1K、2しかし、ユーザ編集セル値の一例になりますユーザー編集後にDatagridセルの書式設定が保持されない?

datagrid.rows[0].cells[0].Value =1; 
datagrid.rows[0].cells[0].Style.Format ="#k"; 

をフォーマット後の細胞とのデータグリッドをしていますか?

質問どのように私はユーザーの編集後にセルの書式設定を保持できますか?

ありがとうございました

+0

あなたは[0,0で(独自のセルのスタイルを設定しようとしています])または列全体について? – manji

+0

ここでは簡潔にするためにセル[0,0]のためだけに、私はdatagrid.Columns [0] .DefaultCellStyle.Format = "";を使用して列全体のスタイル書式を設定できることを知っています。 – CliffC

答えて

2

私はあなたが基礎となるデータソースで作業していないと思います。 DataGridViewRowsを手動でDataGridViewに挿入しています。

データソースを使用していた場合、列データ型が数値の場合、スタイリングは編集モードと読み取り専用モードの両方で動作します。あなたのケースでは

、あなたがDataGridViewCellFormattingイベントを処理し、そこにあなたのセルの書式を設定する必要があります。

void dataGridView1_CellFormatting(object sender, 
            DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex == 0 && e.RowIndex == 0) 
    { 
     // if the underlying type is int 
     int value; 
     if(e.Value != null && int.TryParse(e.Value.ToString(), out value)) 
     { 
      e.Value = value.ToString("#k"); 

      /*** OR *** 

      e.Value = value; 
      e.CellStyle.Format = "#k"; 

      */ 
     } 
    } 
} 
+0

恐縮です! – CliffC

関連する問題