/// <summary> /// Adds Ctrl+C and Ctrl+A shortcuts to the specified ListView. /// </summary> /// <param name="lv">The ListView to modify.</param> /// <param name="retrieveVirtualItem">A virtual item handler, if any.</param> public static void AddShortcuts(this ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { lv.KeyDown += (sender, e) => { if (e.Control && e.KeyCode == Keys.A) { if (retrieveVirtualItem != null) { for (int i = 0; i < lv.VirtualListSize; i++) { if (!lv.SelectedIndices.Contains(i)) { lv.SelectedIndices.Add(i); } } } else { lv.Items.SelectAll(); } } if (e.Control && e.KeyCode == Keys.C) { GenericViewMenu.ListViewCopy(lv, -1, retrieveVirtualItem); } }; }
/// <summary> /// Adds Ctrl+C and Ctrl+A shortcuts to the specified ListView. /// </summary> /// <param name="lv">The ListView to modify.</param> /// <param name="retrieveVirtualItem">A virtual item handler, if any.</param> public static void AddShortcuts(this ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { lv.KeyDown += (sender, e) => { if (e.Control && e.KeyCode == Keys.A) { if (retrieveVirtualItem != null) { for (int i = 0; i < lv.VirtualListSize; i++) if (!lv.SelectedIndices.Contains(i)) lv.SelectedIndices.Add(i); } else { lv.Items.SelectAll(); } } if (e.Control && e.KeyCode == Keys.C) { GenericViewMenu.ListViewCopy(lv, -1, retrieveVirtualItem); } }; }
/// <summary> /// Helper, automates the saving of items of virtual list to a CSV files. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public static void SaveVirtualListItemsToCSV(ListView virtualListViewEx1, RetrieveVirtualItemEventHandler handler) { using (SaveFileDialog dialog = new SaveFileDialog()) { dialog.Title = "Select save file"; dialog.AddExtension = true; dialog.RestoreDirectory = true; dialog.DefaultExt = "csv"; dialog.Filter = "Text file (*.csv)|*.csv"; if (dialog.ShowDialog() != DialogResult.OK) { return; } StringBuilder builder = WinFormsHelper.VirtualListItemsToCSV(virtualListViewEx1, handler); using (FileWriterHelper helper = new FileWriterHelper()) { if (helper.Initialize(dialog.FileName) == false) { MessageBox.Show("Failed to save file."); return; } helper.Write(builder.ToString()); } } }
/// <summary> /// Extends BeginInvoke so that when a state object is not needed, null does not need to be passed. /// <example> /// retrievevirtualitemeventhandler.BeginInvoke(sender, e, callback); /// </example> /// </summary> public static IAsyncResult BeginInvoke(this RetrieveVirtualItemEventHandler retrievevirtualitemeventhandler, Object sender, RetrieveVirtualItemEventArgs e, AsyncCallback callback) { if (retrievevirtualitemeventhandler == null) { throw new ArgumentNullException("retrievevirtualitemeventhandler"); } return(retrievevirtualitemeventhandler.BeginInvoke(sender, e, callback, null)); }
public static void ListViewCopy(ListView lv, int subItem, RetrieveVirtualItemEventHandler retrieveVirtualItem) { List <ListViewItem> collection = new List <ListViewItem>(); StringBuilder text = new StringBuilder(); if (lv.SelectedIndices.Count == 0) { return; } if (retrieveVirtualItem != null) { foreach (int index in lv.SelectedIndices) { RetrieveVirtualItemEventArgs args = new RetrieveVirtualItemEventArgs(index); retrieveVirtualItem(lv, args); collection.Add(args.Item); } } else { foreach (ListViewItem item in lv.SelectedItems) { collection.Add(item); } } for (int i = 0; i < collection.Count; i++) { if (subItem == -1) { for (int j = 0; j < lv.Columns.Count; j++) { text.Append(collection[i].SubItems[j].Text); if (j != lv.Columns.Count - 1) { text.Append(", "); } } } else { text.Append(collection[i].SubItems[subItem].Text); } if (i != collection.Count - 1) { text.AppendLine(); } } Clipboard.SetText(text.ToString()); }
public static ContextMenu GetMenu(ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { ContextMenu menu = new ContextMenu(); menu.Tag = lv; menu.Popup += new EventHandler(ListViewMenu_Popup); AddMenuItems(menu.MenuItems, lv, retrieveVirtualItem); return(menu); }
public static ContextMenu GetMenu(ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { ContextMenu menu = new ContextMenu(); menu.Tag = lv; menu.Popup += new EventHandler(ListViewMenu_Popup); AddMenuItems(menu.MenuItems, lv, retrieveVirtualItem); return menu; }
/// <summary> /// Create a VirtualObjectListView /// </summary> public VirtualObjectListView() : base() { VirtualMode = true; // Virtual lists have to be virtual -- no prizes for guessing that :) CacheVirtualItems += new CacheVirtualItemsEventHandler(HandleCacheVirtualItems); RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(HandleRetrieveVirtualItem); SearchForVirtualItem += new SearchForVirtualItemEventHandler(HandleSearchForVirtualItem); // At the moment, we don't need to handle this event. But we'll keep this comment to remind us about it. //this.VirtualItemsSelectionRangeChanged += new ListViewVirtualItemsSelectionRangeChangedEventHandler(VirtualObjectListView_VirtualItemsSelectionRangeChanged); VirtualListDataSource = new VirtualListVersion1DataSource(this); }
/// <summary> /// Helper, saving virtual list items to string builder. /// </summary> /// <param name="listView"></param> /// <param name="handler"></param> /// <returns></returns> public static StringBuilder VirtualListItemsToCSV(ListView listView, RetrieveVirtualItemEventHandler handler) { StringBuilder result = new StringBuilder(); for (int i = 0; i < listView.VirtualListSize; i++) { RetrieveVirtualItemEventArgs args = new RetrieveVirtualItemEventArgs(i); handler(listView, args); if (args.Item != null) { RenderListViewItem(args.Item, result); } } return(result); }
public static void AddMenuItems(MenuItem.MenuItemCollection items, ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { MenuItem copyItem = new MenuItem("Copy"); copyItem.Tag = new object[] { -1, lv, retrieveVirtualItem }; copyItem.Click += new EventHandler(ListViewMenuItem_Click); items.Add(copyItem); foreach (ColumnHeader ch in lv.Columns) { MenuItem item = new MenuItem("Copy \"" + ch.Text + "\""); item.Tag = new object[] { ch.Index, lv, retrieveVirtualItem }; item.Click += new EventHandler(ListViewMenuItem_Click); items.Add(item); } }
public SessionInfoListView(SessionInfo sessionInfo) { Session = sessionInfo; Columns.Add(LogControl.CreateColumnHeader("", 70)); Columns.Add(LogControl.CreateColumnHeader("", 90)); Columns[0].TextAlign = HorizontalAlignment.Left; View = View.Details; Dock = DockStyle.Fill; ShowItemToolTips = true; VirtualMode = true; VirtualListSize = Session.Items.GetUpperBound(0) + 1; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(SessionInfoListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(SessionInfoListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); LviCache = new List <ListViewItem>(VirtualListSize); UpdateLviCache(); }
public BucketListView(BucketSet bucketSet) { InitializeComponent(); View = View.Details; Dock = DockStyle.Fill; GridLines = true; FullRowSelect = true; VirtualMode = true; VirtualListSize = bucketSet.m_buckets.Count; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(bucketsListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(bucketsListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); int numColHeaders = CountHeaders(bucketSet); int colHeaderWidth = Math.Max(50, (Width) / numColHeaders); Columns.Add(LogControl.CreateColumnHeader("Bucket", colHeaderWidth)); CreateHeaders(bucketSet, colHeaderWidth); m_bucketSet = bucketSet; m_lviCache = new List <ListViewItem>(bucketSet.m_buckets.Count); UpdateLviCache(); }
public StatsListView(List <LogView> logViews, string path) { Columns.Add(LogControl.CreateColumnHeader("", 92)); Columns.Add(LogControl.CreateColumnHeader("#Frames", 55)); Columns.Add(LogControl.CreateColumnHeader("Min", 55)); Columns.Add(LogControl.CreateColumnHeader("Max", 55)); Columns.Add(LogControl.CreateColumnHeader("Avg", 55)); Columns[0].TextAlign = HorizontalAlignment.Left; View = View.Details; Dock = DockStyle.Fill; ShowItemToolTips = true; VirtualMode = true; VirtualListSize = logViews.Count; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(statsListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(statsListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); m_logViews = logViews; m_path = path; m_lviCache = new List <ListViewItem>(logViews.Count); UpdateLviCache(); }
public static ContextMenu GetCopyMenu(this ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { return(GetMenu(lv, retrieveVirtualItem)); }
public static void ListViewCopy(ListView lv, int subItem, RetrieveVirtualItemEventHandler retrieveVirtualItem) { List<ListViewItem> collection = new List<ListViewItem>(); StringBuilder text = new StringBuilder(); if (lv.SelectedIndices.Count == 0) return; if (retrieveVirtualItem != null) { foreach (int index in lv.SelectedIndices) { RetrieveVirtualItemEventArgs args = new RetrieveVirtualItemEventArgs(index); retrieveVirtualItem(lv, args); collection.Add(args.Item); } } else { foreach (ListViewItem item in lv.SelectedItems) collection.Add(item); } for (int i = 0; i < collection.Count; i++) { if (subItem == -1) { for (int j = 0; j < lv.Columns.Count; j++) { text.Append(collection[i].SubItems[j].Text); if (j != lv.Columns.Count - 1) text.Append(", "); } } else { text.Append(collection[i].SubItems[subItem].Text); } if (i != collection.Count - 1) text.AppendLine(); } Clipboard.SetText(text.ToString()); }
/// <summary> /// Helper, saving virtual list items to string builder. /// </summary> /// <param name="listView"></param> /// <param name="handler"></param> /// <returns></returns> public static StringBuilder VirtualListItemsToCSV(ListView listView, RetrieveVirtualItemEventHandler handler) { StringBuilder result = new StringBuilder(); for (int i = 0; i < listView.VirtualListSize; i++) { RetrieveVirtualItemEventArgs args = new RetrieveVirtualItemEventArgs(i); handler(listView, args); if (args.Item != null) { RenderListViewItem(args.Item, result); } } return result; }
public static ContextMenu GetCopyMenu(this ListView lv, RetrieveVirtualItemEventHandler retrieveVirtualItem) { return GetMenu(lv, retrieveVirtualItem); }