private void OnMembersListBoxIcgStatusChanged(object sender, EventArgs e) { if (MembersListBox.ItemContainerGenerator.Status == GeneratorStatus.ContainersGenerated) { MembersListBox.ItemContainerGenerator.StatusChanged -= OnMembersListBoxIcgStatusChanged; Dispatcher.BeginInvoke(new Action(() => { var scrollViewer = MembersListBox.ChildOfType <ScrollViewer>(); scrollViewer.ScrollToTop(); UpdateHighlightedItem(GetListItemByIndex(MembersListBox, 0)); }), DispatcherPriority.Loaded); } }
/// <summary> /// Event when user clicks somewhere in the members list box /// </summary> /// <param name="sender">Object that raised the event</param> /// <param name="e">Event info</param> private void MembersListBox_MouseDown(object sender, MouseEventArgs e) { // We only care about right clicks if (e.Button == MouseButtons.Right) { // Also do selection on right click MembersListBox.SelectedIndex = MembersListBox.IndexFromPoint(e.X, e.Y); // Only show up if we actually have something selected if (MembersListBox.SelectedIndex != -1 && MembersListBox.SelectedItem.ToString() != Globals.Client.GetUsername() && !Globals.Client.ContainsRoom(MembersListBox.SelectedItem.ToString())) { pMToolStripMenuItem.Text = $@"PM {MembersListBox.SelectedItem}"; MembersListBox.ContextMenuStrip = memberMenuStrip; } else { MembersListBox.ContextMenuStrip = null; } } }