сохранить значение, которое я проверил в поле в datagridview, используя vb.net - PullRequest
0 голосов
/ 17 января 2019

Всем доброго времени суток.

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

enter image description here

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

Я бы хотел, чтобы, если пользователь захочет найти другую запись, элемент не будет удален.

enter image description here

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

Моя текущая работа следующая:

 Private Sub dgvConfirm_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvConfirm.CellContentClick

    If dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 0 Then
        dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 1
        nmblst = nmblst + dgvConfirm.Item(2, dgvConfirm.CurrentRow.Index).Value + ","

    Else

        dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 0
    End If

End Sub

Это код, когда я щелкнул по представлению данных, он просто получает уникальный ключстолбец и переносит его в строку.

Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
    If nmblst <> "" Or nmblst.Length > 0 Then

        nmblst = nmblst.Trim().Remove(nmblst.Length - 1)
        scndQry = " or PPFNo  in ('%" & nmblst & "%') "
    End If

    If rdoPartNo.Checked = True Then
        bndsrc.Filter = "PartNo  Like '%" & txtSearch.Text & "%' " + scndQry
    Else
        bndsrc.Filter = "PPFNo  Like '%" & txtSearch.Text & "%' " + scndQry
    End If

    frstQry = bndsrc.Filter

End Sub

Этот код предназначен для поиска.Я пытаюсь использовать что-то вроде select this from thistable where columnname like '%something%' and columname in (etc,etc), обратите внимание, что columnname и columnname одинаковы.

Есть ли свойство datagridview для того, что мне нужно?

1 Ответ

0 голосов
/ 17 января 2019

Я думаю, что вы подходите к этой проблеме неправильно.

Предполагая, что можно проверить только один элемент, попробуйте сохранить проверенную строку в типе, причем каждый столбец хранится отдельно, например:

Private Type temp
    PartNo As Long
    PPFNo As Integer
    ProductNo As String
    DateCreated As DateTime
    And so on...
End Type

Когда что-то проверяется, вы находите строку, в которой установлен флажок, и затем помещаете каждое поле в тип temp, как-то так:

For i = 0 to DataGridView.Columns - 1
    temp(i) = DataGridView.Item(i, selectedrow).Value
Loop

Затем, в конце поиска, вы можете добавить свой темп в DataGridView, добавив в свой код следующее:

DataGridView.Rows.Add(temp(0),temp(1),temp(2),temp(3)) 'And more if you have more columns

Удачи в вашей проблеме, и я надеюсь, что мой ответ поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...