簡體   English   中英

如何在C#中將未綁定的Datagridview列單元格設置為貨幣

[英]How to set unbound datagridview column cell to currency in c#

我有這個未綁定的datagridview在表單加載期間添加列;

這是代碼;

private void loadfields()
        {
            dgvbulkentries.ColumnCount = 15;
            dgvbulkentries.Columns[0].Name = "ID No";
            dgvbulkentries.Columns[0].Width = 80;
            dgvbulkentries.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvbulkentries.Columns[1].Name = "Surname";
            dgvbulkentries.Columns[1].Width = 150;
            dgvbulkentries.Columns[2].Name = "First Name";
            dgvbulkentries.Columns[2].Width = 150;
            dgvbulkentries.Columns[3].Name = "Name Extn";
            dgvbulkentries.Columns[3].Width = 40;
            dgvbulkentries.Columns[4].Name = "Middle Name";
            dgvbulkentries.Columns[4].Width = 150;
            dgvbulkentries.Columns[5].Name = "Course";
            dgvbulkentries.Columns[5].Width = 110;
            dgvbulkentries.Columns[6].Name = "Year";
            dgvbulkentries.Columns[6].Width = 40;
            dgvbulkentries.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvbulkentries.Columns[7].Name = "Street/Block";
            dgvbulkentries.Columns[7].Width = 150;
            dgvbulkentries.Columns[8].Name = "Subdivision";
            dgvbulkentries.Columns[8].Width = 150;
            dgvbulkentries.Columns[9].Name = "Barangay";
            dgvbulkentries.Columns[9].Width = 150;
            dgvbulkentries.Columns[10].Name = "Municipality/City";
            dgvbulkentries.Columns[10].Width = 150;
            dgvbulkentries.Columns[11].Name = "Province";
            dgvbulkentries.Columns[11].Width = 150;
            dgvbulkentries.Columns[12].Name = "GWA";
            dgvbulkentries.Columns[12].Width = 60;
            dgvbulkentries.Columns[12].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            dgvbulkentries.Columns[13].Name = "Units";
            dgvbulkentries.Columns[13].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvbulkentries.Columns[13].Width = 50;
            dgvbulkentries.Columns[14].Name = "Total School Fees";
            dgvbulkentries.Columns[14].Width = 100;
            dgvbulkentries.Columns[14].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            DataGridViewComboBoxColumn sexes = new DataGridViewComboBoxColumn();
            sexes.HeaderText = "Sex";
            sexes.Name = "Sex";
            sexes.MaxDropDownItems = 4;
            sexes.Items.Add("Male");
            sexes.Items.Add("Female");
            dgvbulkentries.Columns.Add(sexes);
            dgvbulkentries.Columns[15].DisplayIndex = 5;
            dgvbulkentries.Columns[15].Width = 80;
            DataGridViewComboBoxColumn ssfapremarks = new DataGridViewComboBoxColumn();
            ssfapremarks.HeaderText = "Remarks";
            ssfapremarks.Name = "Remarks";
            ssfapremarks.MaxDropDownItems = 4;
            ssfapremarks.Items.Add("Enrolled");
            ssfapremarks.Items.Add("Not Enrolled");
            dgvbulkentries.Columns.Add(ssfapremarks);
            dgvbulkentries.Columns[16].Width = 120;
        }

我已經為datagridview中的特定列設置了貨幣文本框的代碼。 但是問題是,當我在一個單元格中輸入數字時,它根本不會改變。

這是我包含的代碼;

private void dgvbulkentries_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        dgvbulkentries.Columns[14].DefaultCellStyle.Format = "n";
    }

例如 ,當我在datagridview的特定列中輸入數字時,它不會將值格式化為貨幣格式。 我已經按照您的建議做了,但是沒有用

我錯過了什么?

如此答案中所述,了解問題后,我認為使用數據網格視圖的CellLeave事件將解決您的問題

void dataGridView1_CellLeave(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
   dgvbulkentries.Columns[14].DefaultCellStyle.Format = "c2";
   dgvbulkentries.Columns[14].DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("en-GB");
   dgvbulkentries.Columns[14].ValueType = typeof(decimal);
}

暫無
暫無

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

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