0
votes

This is how I want to display on startup enter image description here

Here is my based setup code:

        DataTable dt = new DataTable();
        DataColumn c0 = new DataColumn("c0");
        DataColumn c1 = new DataColumn("c1");
        DataColumn c2 = new DataColumn("c2");
        DataColumn c3 = new DataColumn("c3");
        dt.Columns.Add(c0);
        dt.Columns.Add(c1);
        dt.Columns.Add(c2);
        dt.Columns.Add(c3);
        dt.Rows.Add("", "", "", "");
        dt.Rows.Add("", "", "", "");
        dt.Rows.Add("", "", "", "");
        dt.Rows.Add("", "", "", "");
        datagridview1.DataSource = dt;

Setting 1:

        datagridview1[2, 3].Selected = true;
        datagridview1[2, 2].Selected = true;

Setting 2:

        datagridview1.Rows[3].Cells[2].Selected = true;
        datagridview1.Rows[2].Cells[2].Selected = true;

Both settings 1 & 2 yield this result on startup

enter image description here

Setting 3: datagridview1.CurrentCell = datagridview1[2, 3]; datagridview1.CurrentCell = datagridview1[2, 2];

and it yields

enter image description here

All 3 settings failed to deliver top image. I've tried several solutions here and from google search. How do I fix this display so I can select any cell programmatically?

1

1 Answers

0
votes

What you have should work by dropping a DataGridView on a form, don't setting any properties of the DataGridView. Try creating a new form as per above.

Code is here to inspect

using System;
using System.Data;
using System.Windows.Forms;

namespace TODO
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            Shown += Form2_Shown;
        }

        private void Form2_Shown(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();

            dt.Columns.AddRange(new []
            {
                new DataColumn("c0"), 
                new DataColumn("c1"), 
                new DataColumn("c2"), 
                new DataColumn("c3")
            });

            dt.Rows.Add("", "", "", "");
            dt.Rows.Add("", "", "", "");
            dt.Rows.Add("", "", "", "");
            dt.Rows.Add("", "", "", "");

            dataGridView1.DataSource = dt;

            dataGridView1[0, 0].Selected = false;
            dataGridView1[2, 3].Selected = true;
            dataGridView1[2, 2].Selected = true;

            dt.Rows[2].SetField("c2","Selected");
            dt.Rows[3].SetField("c2","Selected");
        }
    }
}

enter image description here