C# 開発

【C#】DataGridView

2025.03.03 DataGridView:オートコンプリートを使用する

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.ColumnCount = 5;
    dataGridView1.RowCount = 5;
}

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    // データグリッドビューのセルにファイルシステムのパスを入力していくと、オートコンプリートで補完されます。
    // 例)C:\Windows

    if (e.Control.GetType().Equals(typeof(DataGridViewTextBoxEditingControl)))
    {
      ((TextBox)e.Control).AutoCompleteMode = AutoCompleteMode.SuggestAppend;
      ((TextBox)e.Control).AutoCompleteSource = AutoCompleteSource.FileSystem;
    }
}

2025.03.03 DataGridView:クリックされたマウスの座標からクリックされたセル位置を取得する

private void Form1_Load(object sender, EventArgs e)
{
    foreach (var idx in Enumerable.Range(0, 5))
    {
        dataGridView1.Columns.Add("", Convert.ToString((char)('A' + idx)));
    }

    foreach (var idx in Enumerable.Range(0, 10))
    {
        dataGridView1.Rows.Add();
    }
}

private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
    var hti = ((DataGridView)sender).HitTest(e.X, e.Y);
    listBox1.Items.Add(hti.ColumnIndex.ToString() + " " + hti.RowIndex.ToString());
}

2025.03.03 DataGridView:列を名前で扱う

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.Columns.Add("COL1", "TEST1");
    dataGridView1.Columns.Add("COL2", "TEST2");
    dataGridView1.Columns.Add("COL3", "TEST3");
    dataGridView1.Columns.Add("COL4", "TEST4");
    dataGridView1.Columns.Add("COL5", "TEST5");
    dataGridView1.RowCount = 5;

    foreach (var idx1 in Enumerable.Range(0, dataGridView1.ColumnCount))
    {
        foreach (var idx2 in Enumerable.Range(0, dataGridView1.ColumnCount))
        {
            dataGridView1[idx1, idx2].Value = (idx1 * idx2).ToString();
        }
    }
}

private void button1_Click(object sender, EventArgs e)
{
    listBox1.Items.Add(dataGridView1.Columns["COL1"].HeaderText);
    listBox1.Items.Add(dataGridView1["COL3", 2].Value);
}

-C# 開発