Member 14588284 Ответов: 1

Выберите правую сторону currentcell при изменении комбинации


Как я могу выбрать правую сторону currentcell и заполнить combobox при изменении первого значения combobox

Что я уже пробовал:

Private Sub ODEME_BILGILER_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ODEME_BILGILER.CellValueChanged
        If ODEME_BILGILER.Rows.Count <= 1 Then Exit Sub
        If e.ColumnIndex = 0 Then
            Dim Row As DataGridViewRow = ODEME_BILGILER.Rows(e.RowIndex)
           
            ODEME_BILGILER.CurrentCell = ODEME_BILGILER.Rows(e.RowIndex).Cells(2)
            Row.Cells(e.RowIndex).Selected = True
            Row.Cells(1).Value = Row.Cells(0).Value
      
        End If
    End Sub

Ralf Meier

Извиняюсь... с этим меньшим количеством информации для меня невозможно представить, чего вы пытаетесь достичь ...
Вы должны улучшить свой вопрос "немного" ...

Member 14588284

кратко
я хочу выбрать правильный мобильный, когда поле со списком изменено в datagirdview

Maciej Los

Используйте виджет "ответить" для отправки ответа (справа от Ника/логина).

Maciej Los

Можете ли вы объяснить, что означает "правильная клетка"?

Member 14588284

Неужели ты этого не понимаешь?
это довольно простой вопрос!
в datagridview я хочу выбрать правую ячейку currentcell

Обычно когда я изменяю значение currentcell то курсор выбирает под currentcell


Maciej Los

Пожалуйста, смотрите мой ответ.

1 Ответов

Рейтинг:
5

Maciej Los

Если вы хотите выбрать "правильную ячейку" (мое лучшее предположение: на правой стороне текущей ячейки), вам нужно установить Практическое руководство.Свойство CurrentCell (Системы.Окна.Формы) | Microsoft Docs[^]
Получение и установка текущей ячейки в элементе управления DataGridView - Windows Forms | Microsoft Docs[^]

[РЕДАКТИРОВАТЬ]
Хорошо, кажется, вы хотите изменить поведение клавиши Enter... Я бы посоветовал использовать KeyUp событие.

Private Sub DataGridView1_KeyUp(sender As Object, e As KeyEventArgs) Handles DataGridView1.KeyUp
    If Label1.Text = "0" Then Exit Sub

    If e.KeyCode <> Keys.Enter Then Exit Sub
    Dim dgc As DataGridViewCell = DataGridView1.CurrentCell
    If dgc Is Nothing Then Exit Sub


    Dim c As Integer = dgc.ColumnIndex + 1
    Dim r As Integer = dgc.RowIndex - 1
    If c > DataGridView1.Columns.Count - 1 Then c = 0 : r += 1
    If r < 0 Then r = 0

    dgc = DataGridView1(c, r)
    If dgc Is Nothing Then Exit Sub

    Me.DataGridView1.CurrentCell = dgc
    Me.DataGridView1.CurrentCell.Selected = True
End Sub


Вы можете создать пользовательский элемент управления DataGridView на основе existsing one, а затем изменить поведение клавиши Enter в OnKeyUp событие. Видеть: Введите ключ в DataGridView : C# 411[^]


Ralf Meier

Хы Мачей,
Я очень впечатлен вашей способностью воображения понимать, что "может быть" подразумевается под этим вопросом - или у вас есть лучшая стеклянная чаша,чем у меня? .. ;-)
+5 к этой догадке ...

Чтобы завершить ваш ответ, я бы сначала проверил, есть ли ячейка справа от текущей ячейки, прежде чем пытаться выбрать ее.

Maciej Los

Спасибо, Ральф.
Я не уверен, что хорошо понимаю ОП, но попробовать ответить стоило...

Что касается выбора ячейки - хороший момент!

Member 14588284

https://yadi.sk/d/0_1eEcx26yNzZw

я пробовал коды, но теперь currentcell находится справа (сбоку)+вниз (сбоку) currentcell

я добавил простой файл, можете ли вы помочь в этом?

Спасибо за все

Ralf Meier

Вам следует лучше улучшить свой вопрос с помощью (нового) фрагмента кода.
Какое событие вы выбрали для своей акции ...?

Member 14588284

я добавляю файл в яндиск
https://yadi.sk/d/0_1eEcx26yNzZw

Вы смотрели досье?

Ralf Meier

Нет... потому что это немного проблематично в офисе (где я нахожусь) ...
Поэтому я предложил сделать все наоборот ... и я думаю, что это тоже будет правильным путем ...

Maciej Los

Взгляните на обновленный ответ.
В следующий раз, пожалуйста, будьте более конкретны и предоставьте более подробную информацию... В этом случае будет достаточно предоставить полный код события, которое вы использовали в своей форме.

Member 14588284

Огромное спасибо!.

это будет полезно для меня

Maciej Los

Всегда пожалуйста.