Как отключить RowHeader в DataGridView

Как я могу предотвратить нажатие или выбор RowHeaders?
Я хочу, чтобы когда новый пользователь нажимал на row или cell, вся информация перемещалась в обновление Form, и все работало нормально.

Но если пользователь нажимает на RowHeader, он должен выбрать все строки и выдать ошибку.

Я знаю, что могу скрыть RowHeader, но я хочу показать RowHeader и запретить пользователям нажимать на них.

Я использовал свойство SelectionMode для DataGridview и установил для него значение CellSelect/FullRowSelect и т. д., но это не помогло.

Можно ли отключить RowHeaders и не позволять людям выбирать RowHeaders?

Вот мой код:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{ 
    decimal accNo = Convert.ToDecimal(dataGridView1.Rows[e.RowIndex].Cells[0].Value);
    var item = db.UserAccount.Where(a => a.AccountNo == accNo).FirstOrDefault(); 

    txtAccountNo.Text = item.AccountNo.ToString();

    txtFirstName.Text = item.FirstName;
    txtLastName.Text = item.LastName;
    txtAddressUpNew.Text = item.Address.ToString();
 }

person Helen Tekie    schedule 09.11.2018    source источник
comment
Не называйте DataGridViewa GridView или DataGrid и наоборот!! Это неправильно и сбивает с толку, поскольку это разные элементы управления. Всегда называйте вещи своими правильными именами!   -  person TaW    schedule 10.11.2018
comment
@TaW спасибо, ты прав. Теперь я отредактировал свой вопрос.   -  person Helen Tekie    schedule 10.11.2018
comment
Вы можете заглянуть в SelectionMode. Измените значение по умолчанию (RowHeader) на что-то другое.   -  person TaW    schedule 10.11.2018
comment
@TaW еще раз спасибо, но, как я уже упоминал в своем вопросе, я уже пытался решить, как изменить SelecttionMode, но это не сработало для mig.   -  person Helen Tekie    schedule 10.11.2018
comment
CellSelect должен работать. FullRowSelect или нет.   -  person TaW    schedule 10.11.2018
comment
Если вы хотите, чтобы щелчок по заголовку строки выбирал все строки и ячейки, закодируйте событие rowheadermouseclick для этого и, что, создаст ошибку? довольно неясная спецификация, imo.   -  person TaW    schedule 10.11.2018
comment
@ТаВ. Я сделал. Затем, если я щелкну где-нибудь в заголовке строки, я получу сообщение об ошибке, как будто индекс вышел за пределы допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции, которую я хочу предотвратить, нажав на заголовок.   -  person Helen Tekie    schedule 10.11.2018
comment
Вы должны проверить columnIndex перед его использованием. Для заголовков строк это будет -1. То же самое для RowIndex при нажатии на заголовок столбца. Не путайте их ;-)   -  person TaW    schedule 10.11.2018
comment
@TaW, спасибо. Я новичок в С#. Не подскажете как проверить и где разместить может быть в Load_Form? Но как я могу проверить?   -  person Helen Tekie    schedule 10.11.2018
comment
Если код, который вы показываете, вызывает ошибку в dataGridView1_CellClick, как вы описываете, именно здесь вы должны проверить неотрицательный индекс. Вы не можете на самом деле/легко запретить пользователю щелкать там, где он хочет, но вы можете написать свой код, чтобы он не всегда реагировал или делал разные вещи при нажатии на ячейки или заголовки.   -  person TaW    schedule 10.11.2018
comment
@TaW Ага ... если (e.RowIndex › -1) .... Хорошо, спасибо. Теперь это работает   -  person Helen Tekie    schedule 10.11.2018
comment
попробуйте использовать событие RowHeaderMouseClick   -  person Muj    schedule 13.11.2018