1

グリッド内の数字をテキストに変更しようとしています。セルの値に応じて、別のテキストを取得する必要があります。表示する場合とvalue = 0表示"inkomst"する場合。value = 1"Uitgave"

正しい行を表示し、幅をフォーマットするためのこのコードが既にあります。

private void updateAll()
{
    dataGridViewInkomsten.DataSource = blFinancien.getFinancienByInkomsten();

    //kolommen niet tonen waarin enkel id's worden getoond
    dataGridViewInkomsten.Columns[0].Visible = false;
    dataGridViewInkomsten.Columns[1].Visible = false;
    dataGridViewInkomsten.Columns[2].Visible = false;
    dataGridViewInkomsten.Columns[8].Visible = false;

    dataGridViewInkomsten.Columns[6].HeaderText = "Inkomst/uitgave";

    int breedtevankolommen = dataGridViewInkomsten.Width / 5;
    dataGridViewInkomsten.Columns[3].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[4].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[5].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[6].Width = breedtevankolommen;
    dataGridViewInkomsten.Columns[7].Width = breedtevankolommen;
}

6 列目の int 値に応じて、"Inkomst"orを取得する必要があり"Uitgave"ます。プリントスクリーンも手に入れたので、私の言いたいことがわかります。

データグリッド

誰かがそれを成し遂げる方法を教えてもらえますか?

4

5 に答える 5

1

最初にセル スタイルを作成します。

 System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
 dataGridViewCellStyle1.Format = "One;\'\';Zero";
 dataGridViewCellStyle1.NullValue = null;

動的列にセル スタイルを適用するよりも:

 dataGridViewInkomsten.Columns[6].DefaultCellStyle = dataGridViewCellStyle1;

それはそれを行う必要があります。

于 2013-04-11T15:20:15.537 に答える
0

いくつかの方法があります。

  1. SQL クエリに switch case を記述し、必要なテキストを設定できます。

  2. または、グリッドに別の列を追加できます。COLUMN2 と言います。COLUMN1 などの実際の列を非表示にします。
    次に、グリッド セルの書式設定イベント (または同様のイベント) で、実際の列 (COLUMN1) の値に基づいて、この列 (COLUMN2) のテキストを設定できます。

    private sub grid_CellFormatting(sender ,e) { if(grid.Rows(e.RowIndex).Cells("COLUMN1").Text == "0") grid.Rows(e.RowIndex).Cells("COLUMN2"). text = "value1" else(grid.Rows(e.RowIndex).Cells("COLUMN1").Text == "1") grid.Rows(e.RowIndex).Cells("COLUMN2").text = "value2 " }

  3. 実際には、ドメイン モデルでこの種の UI の書式設定を行ってから、ドメイン モデルをグリッドにバインドする必要があります。それは、データベースからデータを取得した後です。

于 2013-04-11T12:58:11.303 に答える
0

グリッドをバインドするクエリを編集します。

次のように大文字と小文字を区別します。

CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END

select col1,col2,(CASE WHEN lnkomst/uitgave = 0 THEN 'lnkomst' ELSE 'uitgave' END) as lnkomst/uitgave  from tablename

このようにクエリを書きます。

アクセスのための編集:

select col1,col2,lnkomst/uitgave = Switch(
    NUMREG=0,'lnkomst',
    NUMREG=1,'uitgave');  from tablename

それが役に立てば幸い。

于 2013-04-11T12:13:12.113 に答える
0

これを試して:

SqlCeCommand cmd = new SqlCeCommand();
SqlCeConnection conn = new SqlCeConnection("connString");
cmd.Connection = conn;
cmd.CommandText = "SELECT COUNT(*) FROM yourTable";
var count = cmd.ExecuteScalar();

for (int i = 0; i <= int.Parse(count.ToString()); i++)
{
     if (dataGridViewCategories.Rows[i].Cells["cellName"].Value.ToString() == "0")
     {
        dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Inkomst";
     }
     else
     {
        dataGridViewCategories.Rows[i].Cells["coulmnName"].Value = "Uitgave";
     }
}
于 2013-04-11T14:54:10.057 に答える
0

データを DB に保存したら、datagridview.rows[].cells[].value を使用します。

于 2013-04-11T12:36:00.707 に答える