星期三, 11月 29, 2023

[C#] DataGridView - CellFormatting 事件

使用 DataGridView 時,常常在CellFormatting Event 內使用 DataGridViewCellFormattingEventArgs 來抓取相關資料,如同該篇筆記 -  [C#] 格式化 DataGridView 內資料,但這次踩到坑,原來 DataGrdiViewColumn.Visible = false 情況下,DataGridViewCellFormattingEventArgs 內就抓不到該欄位的 ColumnIndex

該範例很簡易,在 CellFormatting 內把 DataGridViewCellFormattingEventArgs.ColumnIndex 往 TextBox 內塞資料而已,當 Form 一啟動會觸發,Code 如下

namespace CellFormatingVisible
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            textBox1.Text += e.ColumnIndex.ToString() + Environment.NewLine;
        }
    }
}

實際執行,有五個欄位
把 Column3 隱藏起來,ColumnIndex 2 就沒有抓到