2014-10-07 4 views
1

Мне нужно добавить текст в ячейку DataGridView, где находится мой курсор. В TextBox я могу сделать это с помощью TextBox.Paste("test"). Могу ли я преобразовать ячейку в TextBox или есть другой метод?vb.net: Есть ли у datagridview аналогичная функция textbox.paste?

пример: , когда у меня есть ячейки с текстом: «Это (курсор находится здесь) пример» и я нажимаю кнопку Tekst должно быть: «это istest пример»

+0

Я не уверен, если я получаю ваш вопрос, но вы можете вставить в клетку таким же образом, вы бы вставить в текстовое поле. Просто убедитесь, что вы находитесь в режиме редактирования ячейки (обычно дважды щелкните). – Neolisk

+0

Ах, этот пример полностью меняет вопрос. Проблема заключается в получении позиции курсора внутри строки внутри ячейки в режиме редактирования ячейки. Как вы собираетесь вставлять текст, когда ваша мышь находится внутри ячейки? Вы не можете точно нажать кнопку ... – djv

+0

Он отлично работает с текстовым полем, используя «TextBox.Paste (« test »)». Я думал, что ячейка в editmode является текстовым полем, поэтому она будет работать и с ячейкой. – maartenvdv

ответ

0

С редактированием , ваш вопрос намного яснее. Это решение вставляет текст в последние позиции курсора в DataGridViewCell. Я делаю это нажатием кнопки. Вам нужно будет иметь DataGridView под названием dataGridView1 и TextBox под названием InsertTextBox на форме

Private lastTextBox As TextBox 
Private lastCursorPosition As Integer 
Private lastCell As DataGridViewCell 

Private Sub InsertTextButton_Click(sender As Object, e As EventArgs) Handles InsertTextButton.Click 
    If lastCell IsNot Nothing Then lastCell.Value = CType(lastCell.Value, String).Insert(lastCursorPosition, "test") 
End Sub 

Private Sub DataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing 
    lastTextBox = CType(e.Control, TextBox) 
End Sub 

Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit 
    lastCell = DataGridView1(e.ColumnIndex, e.RowIndex) 
    lastCursorPosition = lastTextBox.SelectionStart 
End Sub 
Смежные вопросы