Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView.... / 10 сообщений из 10, страница 1 из 1
23.07.2008, 15:57
    #35447521
JIaIIoTb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
Вообщем вопрос простой... Как сделать, что бы в конкретную ячейку(или в столбец, без разницы) можно было бы вводить только цифры?
Желательно по аналогии с textbox. Там было так...

private void tb1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
e.Handled = true; // input is not passed on to the control(TextBox)
}
...
Рейтинг: 0 / 0
23.07.2008, 16:08
    #35447576
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
CellValidating
...
Рейтинг: 0 / 0
23.07.2008, 16:19
    #35447622
JIaIIoTb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
2МСУ
Спасибо, а по подробнее можно? )
...
Рейтинг: 0 / 0
24.07.2008, 15:41
    #35449844
Berg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
Посмотрите компонент RangeValidator на вкладке Validation
...
Рейтинг: 0 / 0
25.07.2008, 14:26
    #35452290
JIaIIoTb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
Вообщем нашел кое-что, вроде работает...

dgvMain.EditingControlShowing += delegate(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += delegate(object pressSender, KeyPressEventArgs pressE)
{
if (dgvMain.CurrentCell.ColumnIndex == доходDataGridViewTextBoxColumn.Index || dgvMain.CurrentCell.ColumnIndex == доходDataGridViewTextBoxColumn1.Index ||
dgvMain.CurrentCell.ColumnIndex == доходDataGridViewTextBoxColumn2.Index)
{
if (!Char.IsDigit(pressE.KeyChar) && !Char.IsControl(pressE.KeyChar) && !(pressE.KeyChar == '.'))
pressE.Handled = true;
}
};
};

Можем вводить в определенные столбцы (доходDataGridViewTextBoxColumn.Index и т.д.) дата грида (dgvMain) цифры и точку...
...
Рейтинг: 0 / 0
25.07.2008, 14:28
    #35452297
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
RegularExpressionValidator
...
Рейтинг: 0 / 0
25.07.2008, 14:33
    #35452322
JIaIIoTb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
2bured
Что это? Где это? Неужели подробнее писать? (((
...
Рейтинг: 0 / 0
25.07.2008, 14:36
    #35452338
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
JIaIIoTb2bured
Что это? Где это? Неужели подробнее писать? (((

Ааа, развёл. Под win нет этих компонентов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.06.2010, 13:03
    #36715175
Fox.e155
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
я сделал следующий вариант:
Подписываете grid на событие EditingControlShowing, затем в обработчике пишите:

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress+=new KeyPressEventHandler(Cell_KeyPress);
}
private void Cell_KeyPress(object Sender, KeyPressEventArgs pressE)
{
if (!Char.IsDigit(pressE.KeyChar) && pressE.KeyChar != 8)
pressE.KeyChar = Convert.ToChar("0");
}

правда при этом во всю таблицу вводятся только цифры, но думаю если немного подумать, то можно подстроить под себя :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
20.09.2016, 23:16
    #39312322
kototish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
Если это ещё кому-то актуально, вот такое вот решение :) То же самое событие, только условие немного поменялось.

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += new KeyPressEventHandler(Cell_KeyPress);
}

private void Cell_KeyPress(object Sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8)
e.KeyChar = Convert.ToChar("\0");
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView.... / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]