System.Windows.Forms.ToolStripManager.GetNextToolStrip C# (CSharp) Method

GetNextToolStrip() static private method

static private GetNextToolStrip ( ToolStrip ts, bool forward ) : ToolStrip
ts ToolStrip
forward bool
return ToolStrip
		internal static ToolStrip GetNextToolStrip (ToolStrip ts, bool forward)
		{
			lock (toolstrips) {
				List<ToolStrip> tools = new List<ToolStrip> ();
				
				foreach (WeakReference wr in toolstrips) {
					ToolStrip t = (ToolStrip)wr.Target;
					
					if (t != null)
						tools.Add (t);
				}
				
				int index = tools.IndexOf (ts);

				if (forward) {
					// Look for any toolstrip after this one in the collection
					for (int i = index + 1; i < tools.Count; i++)
						if (tools[i].TopLevelControl == ts.TopLevelControl && !(tools[i] is StatusStrip))
							return tools[i];

					// Look for any toolstrip before this one in the collection
					for (int i = 0; i < index; i++)
						if (tools[i].TopLevelControl == ts.TopLevelControl && !(tools[i] is StatusStrip))
							return tools[i];
				} else {
					// Look for any toolstrip before this one in the collection
					for (int i = index - 1; i >= 0; i--)
						if (tools[i].TopLevelControl == ts.TopLevelControl && !(tools[i] is StatusStrip))
							return tools[i];

					// Look for any toolstrip after this one in the collection
					for (int i = tools.Count - 1; i > index; i--)
						if (tools[i].TopLevelControl == ts.TopLevelControl && !(tools[i] is StatusStrip))
							return tools[i];
				}
			}
			
			return null;
		}