5

読み取り専用の C# Winform DataGridView に問題があります。

DataSourcefor がありDataTable、それを に割り当てDataGridView1.DataSourceます。を変更せずにセルの値でセルのテキストを表示したいDataSource

元:

cell value=1 => cell display text="one", 
cell value=2 => cell display text="two"

私が得るなら、私はそれが欲しい:

DataGridView1.Rows[rowIndex].Cells[columnIndex].Value

次に、それは「1」(または「2」、または「3」)ではなく1(または2、または)でなければなりません。3

4

3 に答える 3

9

CellFormatting イベント ハンドラを使用できます。

private void DataGridView1_CellFormatting(object sender,
    DataGridViewCellFormattingEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    if (dgv.Columns[e.ColumnIndex].Name == "TargetColumnName" &&
        e.RowIndex >= 0 &&
        dgv["TargetColumnName", e.RowIndex].Value is int)
    {
        switch ((int)dgv["TargetColumnName", e.RowIndex].Value)
        {
            case 1:
                e.Value = "one";
                e.FormattingApplied = true;
                break;
            case 2:
                e.Value = "two";
                e.FormattingApplied = true;
                break;
        }
    }
}
于 2013-01-17T05:56:36.643 に答える
3

私の解決策は、値を DataGridViewCell.Tag プロパティに入れることです。

このような :

 DataGridView1.Rows[rowIndex].Cells[columnIndex].Tag = 1;
于 2013-01-17T04:49:43.680 に答える