簡體   English   中英

如何在C#中將特定的datagridview列值轉換為double?

[英]How to convert a specific datagridview column values to double in c#?

我是C#的新手,正在使用Windows窗體。

有誰知道如何在C#中使用dataGridView1_CellValidating (或使用其他事件)將特定的datagridview列值轉換為兩倍? 請幫忙。 謝謝

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    // for example I want to Validate column4 values if it is not a double then convert it to double.
}

這是您可以在datagridcell中設置雙精度值的方法

double value = double.Parse(dataGridView1.Rows[2].Cells[3].Value.ToString());
dataGridView1.Rows[2].Cells[3].Value = value.ToString("N2");

ToString("N2")將使用兩個小數位格式化雙精度值

 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        //Write in the array massive numbers from сolumn numOfcolumn
        int numOfcolumn = 3; //for example
        if (numOfcolumn > this.dataGridView1.ColumnCount) numOfcolumn = this.dataGridView1.ColumnCount;
        double[] massive = new double[this.dataGridView1.RowCount];
        for (int i = 0; i < this.dataGridView1.RowCount; i++)
        massive[i] = this.dataGridView1.Rows[i].Cells[numOfcolumn].Value != null ? Convert.ToDouble(this.dataGridView1.Rows[i].Cells[numOfcolumn].Value.ToString()) : 0.0;
    }

您可以在初始化列時設置格式,並避免發生任何事件。

如果使用設計器,只需將列的Format屬性設置為N2 要進入“ Format列屬性,必須突出顯示網格。 然后打開列收集窗口,然后選擇要更改的列。

在此處輸入圖片說明

Appearance類別下,您需要單擊DefaultCellStyle屬性,然后將Format屬性設置為N2

在此處輸入圖片說明

如果要動態創建列,請在初始化列后設置此屬性:

var dgTextBoxCol = new DataGridViewTextBoxColumn();
dgTextBoxCol.Name = "yourColumnName";
dgTextBoxCol.DefaultCellStyle.Format = "N2";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM