2010-03-30 3 views
0

В моем режиме сетки у меня есть столбец типа ссылки. поскольку мы не можем редактировать ячейку такого типа, я показываю текстовое поле, если пользователь выбирает ячейку для редактирования. но мое текстовое поле не может прочитать символ точки. Я проверил «нажатие клавиши» и «изменение текста», но события не запускаются для точки в качестве входа.
EDIT: можно ввести любой символ или символ, кроме точки ..; (Не удается ввести точку в текстовом поле

Я отображения текстового поля на клетки мыши случае GridView

if (DataGrid.Columns[e.ColumnIndex].GetType().Name == "DataGridViewLinkColumn") 
{ 
txt_Data.Location = DataGrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location; 

txt_Data.Size  = DataGrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Size; 

txt_Data.Visible  = true; 
txt_Data.Focus(); 
} 

и присвоить значение ячейки, как

private void txt_Data_TextChanged(object sender, EventArgs e) 
{ 
    DataGrid.CurrentCell.Value = txt_Data.Text; 
} 
+0

Не могли бы вы подробнее остановиться на этом. Вы присоединяетесь к ключевым событиям в текстовом поле или в сетке? – Andy

+0

Итак, чтобы быть ясным, событие txt_Data_TextChanged не срабатывает? Или это просто, что текущая ячейка не получает точку? – Andy

+0

no i can not enter dot в текстовом поле .. если я нажимаю точку ничего не случилось .. :( – Royson

ответ

0

У меня была эта проблема несколько дней назад, и это сводило меня с ума. Наконец-то выяснилось, что я вернулся сюда, чтобы просветить :) Проблема заключается в методе EditingControlWantsInputKey для вашего редактирования. что он возвращает true для всех символов (или, по крайней мере, символов, которые вы хотите поддержать). Готово! : D

Смежные вопросы