powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
10 сообщений из 10, страница 1 из 1
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35447521
JIaIIoTb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем вопрос простой... Как сделать, что бы в конкретную ячейку(или в столбец, без разницы) можно было бы вводить только цифры?
Желательно по аналогии с 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
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35447576
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CellValidating
...
Рейтинг: 0 / 0
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35447622
JIaIIoTb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2МСУ
Спасибо, а по подробнее можно? )
...
Рейтинг: 0 / 0
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35449844
Berg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите компонент RangeValidator на вкладке Validation
...
Рейтинг: 0 / 0
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35452290
JIaIIoTb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем нашел кое-что, вроде работает...

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
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35452297
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegularExpressionValidator
...
Рейтинг: 0 / 0
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35452322
JIaIIoTb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2bured
Что это? Где это? Неужели подробнее писать? (((
...
Рейтинг: 0 / 0
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #35452338
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JIaIIoTb2bured
Что это? Где это? Неужели подробнее писать? (((

Ааа, развёл. Под win нет этих компонентов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #36715175
Fox.e155
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделал следующий вариант:
Подписываете 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
Период между сообщениями больше года.
Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
    #39312322
kototish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если это ещё кому-то актуально, вот такое вот решение :) То же самое событие, только условие немного поменялось.

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
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ввод только ЧИСЛОВЫХ данных в ячейку DataGridView....
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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