Frankie-10589807 Ответов: 1

Прохождение проверки государственной собственности столбца DataGrid, чтобы флажок флажок на форме.


Добрый день всем вам, пожалуйста, мне нужна помощь с этим:

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

"Преобразование из строкового типа "True" в целое число недопустимо."

Любая помощь в этом будет высоко оценена.

Спасибо в предвкушении.
Откровенный

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

Вот код, который я использую для этого:
chkTapeSealed.Checked = CBool(CType(LoadingGrid.Cells(13).Value.ToString, CheckState))


Я также попробовал следующий код, но получил ту же ошибку:
chkTapeSealed.CheckState = CType(LoadingGrid.Cells(13).Value.ToString, CheckState)

Ralf Meier

Какое событие из DGV вы используете ?
Разве вы не обращаетесь к ряду из DGV ?

Frankie-10589807

Я использую обработчик событий "RowHeaderMouseClick".
Вот полный код для этого события:


"Частная суб dgvLoading_RowHeaderMouseClick(как byval отправителя как объект, как byval E Как системы.Окна.Формы.DataGridViewCellMouseEventArgs) обрабатывает загрузку dgv.RowHeaderMouseClick

Дим LoadingGrid как ячейки datagridviewrow = dgvLoading.SelectedRows(0)
Попробуй
txtLoadinId.Text = LoadingGrid.Клеток(0).Значение.Метод toString
txtVReadyDate.Text = CStr(Преобразовать.Объект Todatetime(LoadingGrid.Клетки(1).Значение.Метод toString()))
dtpVReadyTime.Text = LoadingGrid.Клетки(2).Значение.Метод toString
cmbVehicleName.Text = LoadingGrid.Клетки(3).Значение.Метод toString
cmbDriver.Text = LoadingGrid.Клетки(4).Значение.Метод toString
cmbDeestinationBranch.Text = LoadingGrid.Клетки(5).Значение.Метод toString
txtStartLoadingDate.Text = CStr(Преобразовать.Объект Todatetime(LoadingGrid.Клеток(6).Значение.Метод toString()))
dtpstartLoadingTime.Text = LoadingGrid.Клетки(7).Значение.Метод toString
txtLoadingCompleteDate.Text = CStr(Преобразовать.Объект Todatetime(LoadingGrid.Клетки(8).Значение.Метод toString()))
dtpLoadingCompleteTime.Text = LoadingGrid.Клетки(9).Значение.Метод toString
chkAttachedTransferSheet.Checked = CBool(CType (LoadingGrid.Клетки(10).Значение.ToString, CheckState))
txtTransferSheetNo.Text = LoadingGrid.Клетки(11).Значение.Метод toString
chkDoorSecurelyLocked.Checked = CBool(CType (LoadingGrid.Клетки(12).Значение.ToString, CheckState))
chkTapeSealed.Checked = CBool(CType (LoadingGrid.Клеток(13).Значение.ToString, CheckState))
txtTapeSealNo.Text = LoadingGrid.Клетки(14).Значение.Метод toString
txtDepartureDate.Text = CStr(Преобразовать.Объект Todatetime(LoadingGrid.Клеток(15).Значение.Метод toString()))
dtpDepartureTime.Text = LoadingGrid.Ячейки(16).Значение.Метод toString

Поймать ex как исключение
MymsgBox.lblMsgHeader.Text = " Ошибка..."
MymsgBox.lblMessage.Текст = "рекорд ошибка к управлению..." &амп; vbCrLf &амп; экс.Сообщение
MymsgBox.Метод showdialog()
Конец Попытки

Конец Подводной Лодки
Конец Класса"

1 Ответов

Рейтинг:
10

Ralf Meier

Я попробовал вот так :

Private Sub DataGridView2_CellEnter(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellEnter
    If DataGridView2.Rows.Count > 0 Then
        CheckBox1.Checked = CBool(DataGridView2.Rows(e.RowIndex).Cells(0).Value)
    End If
 End Sub


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

Отредактированный :
Чтобы получить фактическое значение такой ячейки, вы должны назвать ее так :
chkTapeSealed.Checked = CBool(LoadingGrid.Cells(13).EditedFormattedValue)


Frankie-10589807

Большое спасибо, Ральф. Возможно, я не смогу использовать событие CellEnter, потому что это поле-не единственное поле, которое я вытаскиваю из сетки. Запись имеет до 16 полей, которые я хочу вставить в соответствующие элементы управления, поэтому я использую события RowHeaderMouseClick или cellcontentclick. Хотя я все еще пытаюсь заполучить код, который решит эту проблему.

Еще раз спасибо, Ральф.

Ralf Meier

ОК... У меня есть для вас другой подход-попробуйте вот так :
chkTapeSealed.Checked = CBool(LoadingGrid.Ячейки(13). EditedFormattedValue)

Frankie-10589807

УУУУУУУПП Ральф! Ты гений! Эта единственная строка кода спасла жизнь.
Большое вам спасибо.
Оставь великую работу на Ральфа. Я ценю.

Frankie-10589807

Вставай, Ральф! Ты гений! Большое тебе спасибо, Ральф. Эта единственная строка кода только что спасла жизнь. Пожалуйста, продолжайте великую работу.

Ralf Meier

Добро пожаловать, Фрэнки ... ;)
Так что не могли бы вы принять мой ответ и оценить его? ..

Frankie-10589807

Мне так жаль, что это заняло у меня так много времени. но я только что принял и оценил ваше решение. Спасибо, Ральф.