private void ImageListView_ItemClick(object sender, ItemClickEventArgs e) { if (e.Buttons == MouseButtons.Right) { ImageListViewItem item = e.Item; ImageListViewSubItem item2 = item.SubItems["alternative"]; ContextMenuStrip menu = new ContextMenuStrip(); string size = item.SubItems["filesizeFriendly"]?.Text; string size2 = item.SubItems["filesize2Friendly"]?.Text; menu.Items.Add($"Open ({size}) {item.FileName}", null, (sender, p) => OpenWithDefaultProgram(item.FileName)); menu.Items.Add("Open folder " + item.FileName, null, (sender, p) => OpenInExplorer(item.FileName)); menu.Items.Add("Properities", null, (sender, p) => new PropertiesForm(item).Show()); if (!string.IsNullOrWhiteSpace(item2.Text)) { menu.Items.Add(new ToolStripSeparator()); menu.Items.Add($"Open ({size2}) {item2.Text}", null, (sender, p) => OpenWithDefaultProgram(item2.Text)); menu.Items.Add("Open folder " + item2.Text, null, (sender, p) => OpenInExplorer(item2.Text)); menu.Items.Add("Properities", null, (sender, p) => new PropertiesForm(new FileInfo(item2.Text)).Show()); } menu.Show(sender as Control, e.Location); } }
protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e) { ImageListViewSubItem item = e.SubItem as ImageListViewSubItem; if (item == null) { e.DrawDefault = true; base.OnDrawSubItem(e); } else { using (e.Graphics) item.Drawable.Draw(e.Graphics, e.Bounds); } }