| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Работа с DataGridView |
| Автор: ldk13 17.11.2008, 16:41 |
| У меня имеется 2 колонки в DataGridView. Как сделать так, чтобы значения строк из первой колонки записались в массив X, а строки из другой колонки в массив Y? Добавлено через 3 минуты и 42 секунды при нажатии на кнопку button1 |
| Автор: diadiavova 17.11.2008, 16:54 |
| У грида есть свойство Rows, представляющее коллекцию строк. Перебери её в цикле, у каждой строки есть коллекция ячеек Cells, из этой коллекции можно получить нужную ячейку или по индексу, или по имени столбца. У ячейки свойство Value... |
| Автор: ldk13 17.11.2008, 17:18 |
| А как запретить ввод символов, которые тебе не нужны, в ячейки? Там есть обработчик keyPress но он не работает, так как это было с texBox-ами.. |
| Автор: diadiavova 17.11.2008, 17:28 |
| Я бы посмотрел в сторону события CellValidating |
| Автор: ldk13 17.11.2008, 19:08 | ||
| с Первый разобрался, спасибо. А вот со вторым - нет. Можно пример:? Нужно запретить ввод в ячейки Грида любых символов, кроме цифр, бэкспейса,запятой и минуса. Чтобы это работало примерно так же как вот тут:
|
| Автор: diadiavova 17.11.2008, 23:56 |
| Если тебе надо запретить ввод, тогда лучше использовать событие CellValueChanged, аргумент е покажет идекс колонки и строки, по ним найти ячейку, проверить значение ... ну там ясно всё. Просто сейчас неохота делать, думаю разберёшься, если нет - то день-два потерпи, набросаю примрчик. А CellValidating происходит при переходе фокуса на другую ячейку, и если надо содержимое уже введённых данных проверять именно в этот момент... |
| Автор: diadiavova 22.11.2008, 10:44 | ||
Короче, повозился я с примером. Тут такая штука: во время редактирования ячейки она заслоняется специальным контролом производным от текстбокса (если конечно речь идёт о DataGridTextBoxColumn ). Отловить этот контрол можно в событии EditingControlShowing самого грида. дальше его можно конвертировать в текстбокс и обрабатывать так же, ну что-то в этом роде
Обработчик KeyPress я у тебя списал, правда в таком виде он пропускает только цифры, ну это уже сам доведёшь до ума. |