Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Как выделить нужную ячейку в DataGridView?


Автор: kostyan1 14.4.2008, 11:03
Господа, не пинайте если вопрос ламерский. Но примера в хелпе не нашел, а хотелось бы знать.
Вот построил я датагрид в форме, форма маленькая - появились скролбары. По умолчанию выделяется самая верхняя ячейка, а я хотел бы чтобы выделилась самая последняя (ну или вообще любая, какую захочу). В связи с чем возникает ряд вопросов:
Как програмно выделить любую произвольную ячейку грида?
Подскажет ли кто-нибудь ссылки на доки с примерами по DataGridView(думаю под этот класс недурно было бы целую книгу написать)??

Автор: akizelokro 14.4.2008, 11:14
Ответ на этот вопрос я знаю! smile 

Код

dataGridView1.CurrentCell = dataGridView1[RowIndex, ColumnIndex];


и забросить это в обработку события. Если ты хочешь выставить активным последний столбец, то

Код

dataGridView1.CurrentCell = dataGridView1[dataGridView1.CurrentRow.Index, dataGridView1.ColumnCount - 1];


если ты хочешь, чтобы последний столбец становился активным при переходе на новую строку, то я предпочитаю в таких случаях обрабатывать собыние RowEnter. Он, правда, вызывается, дважды и в первый раз выдаёт ту строку, с которой уходит, так что для экономии нужно отслеживать и в этом случае будет не 
CurrentRow.index, а e.Row.Index.

По поводу книг... ничего подробней msdn я так и не нашел, так что... 

Автор: kostyan1 14.4.2008, 12:48
спасибо 

Автор: dimbas 4.7.2010, 19:32
Есть таблица с двумя столбцами. Нужно при выделении ячейки во втором столбце переместить курсор в первую ячейку той же строки.
Есть код:

Код

private void dgvUsers_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
      if (e.ColumnIndex == 1)
        dgvUsers.CurrentCell = dgvUsers[e.RowIndex, 0];
    }


При выделении любой ячейки во втором столбце возникает исключение:
Недопустимая операция: приводит к повторному вызову функции SetCurrentCellAddressCore.

Не подскажете, в чем проблема?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)