System.Windows.Forms.ListView.ItemControl.PerformBoxSelection C# (CSharp) Méthode

PerformBoxSelection() private méthode

private PerformBoxSelection ( Point pt ) : bool
pt System.Drawing.Point
Résultat bool
			private bool PerformBoxSelection (Point pt)
			{
				if (box_select_mode == BoxSelect.None)
					return false;

				BoxSelectRectangle = CalculateBoxSelectRectangle (pt);
				
				ArrayList box_items = BoxSelectedItems;

				ArrayList items;

				switch (box_select_mode) {

				case BoxSelect.Normal:
					items = box_items;
					break;

				case BoxSelect.Control:
					items = new ArrayList ();
					foreach (int index in prev_selection)
						if (!box_items.Contains (owner.Items [index]))
							items.Add (owner.Items [index]);
					foreach (ListViewItem item in box_items)
						if (!prev_selection.Contains (item.Index))
							items.Add (item);
					break;

				case BoxSelect.Shift:
					items = box_items;
					foreach (ListViewItem item in box_items)
						prev_selection.Remove (item.Index);
					foreach (int index in prev_selection)
						items.Add (owner.Items [index]);
					break;

				default:
					throw new Exception ("Unexpected Selection mode: " + box_select_mode);
				}

				SuspendLayout ();
				owner.SelectItems (items);
				ResumeLayout ();

				return true;
			}