private void listView_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { // item "survolé" ListViewItem item = listView.GetItemAt(e.X, e.Y); // pas d'item "survolé" if ( item == null ) { textBox.Text = string.Empty; return; } // détermination du subitem concerné ListViewItem.ListViewSubItem subitem = null; int subitemColumnWidth = 0; int columnbegin = 0; foreach ( ColumnHeader column in item.ListView.Columns ) { if ( columnbegin < e.X && (columnbegin + column.Width) > e.X ) { subitem = item.SubItems[column.Index]; subitemColumnWidth = column.Width; break; } columnbegin += column.Width; } if ( subitem == null ) { textBox.Text = string.Empty; return; } // détermination de la longueur de dessin de la chaine complete Graphics g = listView.CreateGraphics(); SizeF size = g.MeasureString(subitem.Text, subitem.Font); // affichage du texte dans le TextBox si la colonne n'est pas assez large if ( size.Width > subitemColumnWidth ) textBox.Text = subitem.Text; else textBox.Text = string.Empty; }
private void listView_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { // item "survolé" ListViewItem item = listView.GetItemAt(e.X, e.Y); // pas d'item "survolé" if ( item == null ) { textBox.Text = string.Empty; return; } // détermination du subitem concerné string subitemText = null; int subitemWidth = 0; int columnbegin = 0; foreach ( ColumnHeader column in item.ListView.Columns ) { if ( columnbegin < e.X && (columnbegin + column.Width) > e.X ) { subitemText = item.SubItems[column.Index].Text; subitemWidth = column.Width; break; } columnbegin += column.Width; } if ( subitemText == null ) { textBox.Text = string.Empty; return; } // détermination de la longueur de dessin de la chaine complete Graphics g = listView.CreateGraphics(); SizeF size = g.MeasureString(subitemText, item.Font); // affichage du texte dans le TextBox si la colonne n'est pas assez large if ( size.Width > subitemWidth ) textBox.Text = subitemText; else textBox.Text = string.Empty; }