public class ListBoxItem { public ListBoxItem(string directory, bool isSynchro) { m_directory = directory; m_isSynchro = isSynchro; } private string m_directory; private bool m_isSynchro; public string Directory { get { return m_directory; } } public bool IsSynchro { get { return m_isSynchro; } } }
listBoxReps.BeginUpdate(); listBoxReps.Items.Clear(); foreach ( string rep in Directory.GetDirectories("C:\") ) { // repertoire string directory = rep; // si le rep a été modifié aujourd'hui => synchro bool isSynchro; if ( Directory.GetLastWriteTime(rep).Date == DateTime.Now.Date ) isSynchro = true; else isSynchro = false; ListBoxItem item = new ListBoxItem(directory, isSynchro); listBoxReps.Items.Add(item); } listBoxReps.EndUpdate();
private void listBoxReps_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e) { ListBox listBox = (ListBox)sender; ListBoxItem item = (ListBoxItem)listBox.Items[e.Index]; Size size = e.Graphics.MeasureString(item.Directory, listBox.Font).ToSize(); e.ItemWidth = size.Width; e.ItemHeight = size.Height; // réglage du scroll horizontal si nécessaire if ( listBox.HorizontalScrollbar // si l'affichage du scroll est demandé && listBox.Width < e.ItemWidth // si la largeur de l'item est supérieure à celle du controle && e.ItemWidth > listBox.HorizontalExtent // si un réglage supérieur (item plus large deja mesuré) n'est pas déjà présent ) { listBox.HorizontalExtent = e.ItemWidth; } }
private void listBoxReps_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { ListBox listBox = (ListBox)sender; // si l'item est sélectionné, fond bleu if ( (e.State & DrawItemState.Selected) == DrawItemState.Selected ) { e.Graphics.FillRectangle(Brushes.Blue, e.Bounds); } // sinon fond blanc else { e.Graphics.FillRectangle(Brushes.White, e.Bounds); } // dessin de l'item ListBoxItem item = (ListBoxItem)listBox.Items[e.Index]; if ( item.IsSynchro ) e.Graphics.DrawString(item.Directory, listBox.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y); else e.Graphics.DrawString(item.Directory, listBox.Font, Brushes.Red, e.Bounds.X, e.Bounds.Y); }
private void listBoxDates_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e) { ListBox listBox = (ListBox)sender; Size size = e.Graphics.MeasureString(listBox.Items[e.Index].ToString(), listBox.Font).ToSize(); e.ItemWidth = size.Width; e.ItemHeight = size.Height; // réglage du scroll horizontal si nécessaire if ( listBox.HorizontalScrollbar // si l'affichage du scroll est demandé && listBox.Width < e.ItemWidth // si la largeur de l'item est supérieure à celle du controle && e.ItemWidth > listBox.HorizontalExtent // si un réglage supérieur (item plus large deja mesuré) n'est pas déjà présent ) { listBox.HorizontalExtent = e.ItemWidth; } }
private void listBoxDates_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { ListBox listBox = (ListBox)sender; // si l'item est sélectionné, fond bleu if ( (e.State & DrawItemState.Selected) == DrawItemState.Selected ) { e.Graphics.FillRectangle(Brushes.Blue, e.Bounds); } // sinon fond blanc else { e.Graphics.FillRectangle(Brushes.White, e.Bounds); } // si la date est celle d'aujourd'hui, texte en rouge string date = listBox.Items[e.Index].ToString(); if ( date == DateTime.Now.ToString("dd'/'MM'/'yyyy") ) { e.Graphics.DrawString(date, listBox.Font, Brushes.Red, e.Bounds.X, e.Bounds.Y); } // sinon texte en noir else { e.Graphics.DrawString(date, listBox.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y); } }
DateTime.Now.ToString("dd'/'MM'/'yyyy")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question