Kolorowanie wiersza gridView pod warunkiem, WinForms

0

model

public static IEnumerable<Silos> GetStock()
        {
            return (from item in DB.Stocks
                    select new Silos
                    {
                        numer = item.numer,
                        nazwa = item.nazwa,
                        ilosc = (double)item.ilosc
                    }
                                  ).ToArray();
        }

grid

        public void Load() 
        {
            IEnumerable<Silos> silo = Model.GetStock();

            this._grid.DataBindings.Clear();

            this._grid.DataSource = silo;
        }

chce pokazać innym kolorem wiersze, które mają ilość < x

próbowałem w ten sposób

            foreach (DataGridViewRow row in dg_grid.Rows)
            {
                if (Convert.ToInt32(row.Cells[2].Value) > 0)
                {
                    row.DefaultCellStyle.ForeColor = Color.Red;
                    //row.DefaultCellStyle.BackColor = Color.Red;
                }
            }

bez skutku

1

po pierwsze sprawdź sobie pod debuggerem czy ten warunek if (Convert.ToInt32(row.Cells[2].Value) > 0) jest kiedykolwiek spełniony. Po drugie widzę, że już sił brakło na przejrzenie reszty posta na SO - https://msdn.microsoft.com/en-us/library/z1cc356h.aspx lub http://stackoverflow.com/a/12998501

0

oczywiście, jest, kolor pozostaje bez zmiany

0

a co do reszty to co?? BTW tło to BackColor a nie ForeColor

0

fore, back - wiem, ale po prostu spróbowałem.

co do reszty, z MSDN próbowałem private void dataGridView1_CellFormatting(object sender,
System.Windows.Forms.DataGridViewCellFormattingEventArgs e)

działa ładnie. Po prostu wcześniej próbując tego sposobu nie wybrałem tej metody w Properties kontrolki gridView

0

mam jeszcze dodatkowe pytanie. Gdy grid mi się odpala 1sza komórka jest zaznaczona. Jak się tego pozbyć?

0

zobacz tak

dataGridView1.ClearSelection();
dataGridView1.CurrentCell = null;
0

próbowałem tak. Gdy podpiąłem to pod testowy przycisk działa.
Generalnie mój grid jest w kontrolce tabControl i dopiero gdy przejdę na tab z gridem i odpalę akcję spod testowego przycisku zaznaczenie znika.
Dałem ClearSelection ten w konstruktorze, w Load nie działa.

\ EDIT:

        private void dg_grid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            dg_grid.ClearSelection();
        }

dzięki za czas abrakadaber

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