Программное обеспечение, которое я использую: C #, VS-2005.
У меня есть заполненный список в datagridview. Я заметил, что когда для свойства datagridview RowHeaderVisible
установлено значение false
, событие управления нажатием не запускается. Но когда я устанавливаю RowHeaderVisible
на true
, событие keydown работает нормально.
Итак, я знаю, что свойство RowHeaderVisible
со значением true
будет работать. Но нет необходимости устанавливать его на true
согласно моему требованию.
Я хочу знать причину такого поведения и как его преодолеть.
Мой код:
private void Form1_Load(object sender, EventArgs e)
{
string consstr = "server=.;initial
catalog=mydatabase;uid=myuserid;pwd=mypassword";
SqlConnection conn = new SqlConnection(consstr);
conn.Open();
string sql = "select accname from AccountMast";
SqlDataAdapter dap = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
dap.Fill(ds);
DataTable dt = new DataTable();
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
dataGridView1.Columns.Add(cmb);
cmb.DataSource = ds.Tables[0];
cmb.DisplayMember = "accname";
cmb.ValueMember = "accname";
dt.Columns.Add("AMOUNT", typeof(decimal));
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].Width = 300;
dataGridView1.Columns[1].Width = 143;
dataGridView1.Columns[1].DefaultCellStyle.Format = "f2";
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt == true && e.KeyCode == Keys.C)
{
Form2 f2 = new Form2();
f2.Show();
}
}
Приведенный выше код представляет собой точку входа. Я имею в виду пользователь вводит данные на нем. Я заполнил combobox в datagridview с базой данных sql. Поле со списком имен аккаунтов. Пользователь выбирает его согласно своему требованию, затем вводит данные в столбец суммы и сохраняет его.
Вот и все. но есть проблема, вы можете увидеть это. согласно моему комментарию, лежащему ниже ответа "тергива".