У меня есть проект Windows Form VS2010 .NET 4 со стандартным DataGridView, связанным с источником данных в форме.Редактирование ячеек DataGridView на WinForms
В сетке есть текстовый столбец, в котором я хочу быть точкой и редактировать символ, на который был нажат. Как обычный текстовый редактор/редакторы, когда вы нажимаете на символ, который хотите настроить. Если возможно, я также хотел бы использовать клавиши UP/DOWN для перемещения между строками, но хотелось бы, чтобы курсор переместился в одну и ту же позицию символа, очевидно, в том же столбце, не выбирая весь текст.
Я попробовал несколько вещей:
DataGridView1.ClearSelection()
DataGridView1.BeginEdit (False)
BeginEdit просто помещает курсор в конец текста, что означает другое нажмите, чтобы указать на позицию символа для редактирования.
Я знаю коммерческую сетку, такую как DevExpress по умолчанию для редактирования, в которой вы можете щелкнуть по правильной позиции символа одним щелчком мыши, но, очевидно, стоит денег.
Я попытался в случае DataGridView1_EditingControlShowing
If TypeOf e.Control Is System.Windows.Forms.DataGridViewTextBoxEditingControl Then
Dim tb As TextBox = e.Control
tb.SelectionStart = 5
tb.SelectionLength = 5
End If
Но это не делает ничего.
Я просто пытаюсь удалить два или три клика, чтобы перейти к позиции символа, которая нуждается в настройке.
Я еще не смотрел пользовательскую область данных.
Любые предложения были бы весьма полезными.
Отличный ответ делает основной бит, я искал этого в течение веков. Он не делает бит вниз, но я мог бы изменить его. Любые идеи о получении предыдущей ячейки. –
Я просто доказал это очень быстро, разместив редактирование contrl (из редактирования управления) в частной переменной уровня формы, а затем поместив значение SelectionStart в переменную типа int во время события удаления управления редактированием. Затем один раз за пределами сетки я проверил int, и у него была последняя позиция управления редактированием. Мне потребовалось всего лишь минуту, чтобы проверить, чтобы вы могли легко добавить что-то подобное в подклассы dgv этого примера. –
Спасибо Дэвиду, у меня есть позиция каретки, но когда используется стрелка вверх/вниз, она не переходит в режим редактирования в следующей строке, я не уверен, как установить редактирование, а затем переместить курсор. Я попытался настроить EditMode на EditOnEnter, но это предотвращает редактирование одним щелчком мыши. Извините, бит новичка ... –