Akbar Giffary Ответов: 1

VB 10 : Как проверить нулевое значение в ячейках datagridview


Привет, я хочу проверить/проверить, когда ячейки в data gridview пусты, и при нажатии на них появляется надпись типа "в ячейке есть пустые данные", спасибо раньше

If dgvdatakaryawan.Item(e.ColumnIndex, e.RowIndex).Value.ToString.Length = Nothing Then
           lblKET.Visible = True
       Else
           lblKET.Visible = False
       End If


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

Akbar Giffary

взгляните пожалуйста

Andy Lanng

Хорошо. Я вижу. Когда запускается этот сегмент? это в загрузке страницы?
Спасибо ^_^

Akbar Giffary

в щелчок мышью на элементе управления datagridview

Andy Lanng

Ах, представления datagrid могут быть сложными с этим. У меня была проблема с этим в пятницу.

Что может произойти, так это то, что событие mouseclick происходит до того, как данные datagrid будут привязаны. Это означало бы, что к тому времени, когда вы его прочтете, этикетка будет пуста.

Есть способы обойти это, но сначала, пожалуйста, убедитесь, что событие bind происходит после события mouseclick.

Akbar Giffary

ну ладно..
я объясню вам свою настоящую проблему,

когда я нажимаю в пустом столбце, появляется сообщение label..

но я хочу, чтобы сообщение отображалось только тогда, когда я выбрал строку с некоторыми пустыми данными в столбце, возможно ли это ?

вот мой код, который я пробовал

Если
dgvdatakaryawan.SelectedRows('не знает содержимого).Ценность.Метод toString.Длина = Тогда Ничего

так вы можете завершить это ?

Andy Lanng

ну ладно. Спасибо за разъяснение.
Код, который вы опубликовали, выглядит нормально. Вы знаете, почему это не работает? Если нет, то каковы значения e.columnindex и e.rowindex в настоящее время?

Akbar Giffary

я думаю, что значения e.columnindex и e.rowindex являются членами datagridview, точно так же, как A1, A3 в excel

Andy Lanng

Я имел в виду, что вы можете отладить emptycell.click и сказать мне, каковы фактические значения в этом экземпляре.

Кстати: они будут нулевыми индексированными целыми числами. то есть от 0 до макс.-1

Richard Deeming

Если .Value является Nothing, затем .Value.ToString() будет бросать а NullReferenceException.

Если .Value является нет Nothing, затем .Value.ToString().Length вернется Ань Integer. - Integer никогда не будет равен Nothing.

Akbar Giffary

хммм, спасибо за объяснение...

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

1 Ответов

Рейтинг:
6

Mike Meinz

Я думаю, что ваш If заявление должно выглядеть примерно так. Он устанавливает lblKET чтобы быть видимым, если ячейка является нулевой или содержит только пробелы или пустую строку.


If dgvdatakaryawan.Item(e.ColumnIndex, e.RowIndex).Value Is Nothing orelse _
   dgvdatakaryawan.Item(e.ColumnIndex, e.RowIndex).Value.ToString.Trim = "" Then
     lblKET.Visible = True
Else
     lblKET.Visible = False
End If


Akbar Giffary

хммм, большое спасибо,
но могу ли я установить lblKET видимым, если "выбранные строки" имеют некоторое нулевое значение или содержат только пробелы или пустую строку ?

я имею в виду, когда я выбираю строки, а не когда щелкает ячейка..

Mike Meinz

Если вы хотите выбрать на основе пустой строки, то вам нужно проверить каждую ячейку в этой строке. Чтобы сделать это, вы перебираете все столбцы в этой строке, и если все они удовлетворяют условиям в моем примере кода, то строка "пуста."