3

datagridviewを使用していて、条件付き書式を表示したいのですが、セルを取得したときに表示しMたいのです。これをMarried試しましたが、成功しませんでした。

これが私のコードです:

private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
      {
          try
          {
              for (int i = 0; i <= masterDataGridView.Rows.Count - 1; i++)
              {
                  String Value = masterDataGridView.Rows[i].Cells[17].Value.ToString();
                  if (Value == "M")
                  {
                      e.Value = "Male";
                  }
              }
          }
          catch (Exception ex)
          {

          }
      }
4

2 に答える 2

2

少し作業した後、このコードは私にとって非常にうまく機能します。私はそれを投稿しています他の人がコードを使用できる可能性があります

private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{

    if (masterDataGridView.Columns[e.ColumnIndex].Name.Equals("Gender"))
                      {
                          string _val = e.Value as string;
                          if (_val == null)
                              return;


                          switch (_val)
                          {
                              case  "M" :
                                  e.Value = "Male";
                                  break;
                              case "F":
                                  e.Value = "Female";
                                  break;

                          }

                      }
}

Chearss...。

于 2013-02-27T12:29:54.343 に答える
1

適切な方法ではない.CellFormattingイベントを使用しようとしています。for loop statement

CellFormatting イベントは、各セルが描画されるたびに発生するため、このイベントを処理するときは長い処理を避ける必要があります。このイベントは、セルの FormattedValue が取得されたとき、またはその GetFormattedValue メソッドが呼び出されたときにも発生します。

したがって、セルがペイントされるたびに、for loopが実行されます。

これを試して:

private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    try
    {
        if (e.ColumnIndex >= 17 && e.ColumnIndex <= 24)
        {
            if (e.Value == "M")
                e.Value = "Married";
            else
                e.Value = "Not Married";
        }
    }
    catch (Exception ex)
    {

    }
}
于 2013-02-27T11:13:33.633 に答える