C# - DataGridView - checkox

Odpowiedz Nowy wątek
2011-10-03 15:53
0

Proszę o pomoc związaną z komponentem DataGridVeiw.
Otóż wyświetlam za pomocą DataSeta dane w DGV.
Wśród kolumn mam zdefiniowaną kolumnę typu checkbox. Domyślnie nie jest ona zapełniana.
Ma ona służyć tylko do zaznaczania poszczególnych rekordów w celu ich pobrania do kolejnych działań.
Niestety poniższe zapytanie nie przynosi efektów:

            foreach (DataGridViewRow row in fw.dataGridView.Rows)
            {
                if (row.Cells[0].Value != null && (int)row.Cells[1].Value == 1)
                {
                    //operacje pobrania rekordu
                }
            }

Cells[1] -> to kolumna z checkoxem.
Próbowałem również (ibool)row.Cells[1].Value == true, lecz też bez efektów...

Pozostało 580 znaków

2011-10-03 17:16
0

A sprawdź co daje ci Checked.

Pozostało 580 znaków

2011-10-03 17:17
0

Znaczy chcesz sprawdzić czy coś jest typu bool i ma wartość true, a rzutujesz ją na int i sprawdzasz czy wynosi 1?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2011-10-03 19:03
0

Ale czy to nie bez sensu sprawdzać, czy pole jest jednocześnie niepuste i równe 1? Jeżeli jest równe 1, to znaczy, że nie jest puste. Ty masz tylko sprawdzić czy dany CheckBox jest zaznaczony.


Idiots, idiots everywhere.

Pozostało 580 znaków

2011-10-03 20:59
0

No tak. Moje wysiłki skupiają się na tym tylko, aby stwierdzić czy w danym wierszu jest zaznaczony checkbox.
Nie ma niestety czegoś takiego jak row.Cells[1].Checked , które by rozwiązało sprawę, stad próbowałem rzutować do int poprzez (int)row.Cells[1].Value == 1 lub do bool (bool)row.Cells[1].Value == true.

P.S. Czy w ogóle po zakliknięciu checkboxa w DGV potrzebne jest jeszcze oprogramowanie zdarzenia związanego z zapisem przeprowadzonej zmiany na wierszu?

Pozostało 580 znaków

2011-10-03 21:03
0

Ale tylko sprawdzasz czy wartość jest różna od null, ponieważ jeśli wartość będzie równa null to checkbox nie jest zaznaczony. Wystarczy sprawdzić tylko ten warunek. Nie wiem po co Ty chcesz tu coś rzutować.


Idiots, idiots everywhere.
edytowany 1x, ostatnio: allocer, 2011-10-03 21:05

Pozostało 580 znaków

2011-10-03 21:35
0

JAKIM PRAWEM BOOL MIAŁBY SIĘ RZUTOWAĆ NA INT W C#? To nie jest C.

Natomiast rzutowanie na bool działać powinno. Jeśli nie działa, to znaczy, że coś innego masz źle.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2011-10-03 21:37
0

Dziękuję za pomoc. Dodam, że zamieszanie jeszcze wprowadzało nie uwzględnianie wszystkich checków. Pomogło zastosowanie dataGridView.EndEdit();
Pozdrawiam

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0