public void MenuClick(UIItemBase itemBase) { UISubMenuItem menuItem = itemBase as UISubMenuItem; if (menuItem == null) { return; } if (menuItem.SubLevel == 1) { if (menuItem != _SelectedSub1) { ClearSelect(1); ClearSelect(2); _SelectedSub1 = menuItem; _SelectedSub1.Selected(); if (_SubBtns[_SelectedSub1].Count > 0) { _SelectedSub1.OpenSubGO(); //foreach (var sub2 in _SubBtns[_SelectedSub1]) //{ // sub2.ShowMenu(); //} for (int i = 0; i < _SubBtns[_SelectedSub1].Count; ++i) { if (!_SubBtns[_SelectedSub1][i].ShowMenu()) { continue; } //if(_SelectedSub2 == null) _SelectedSub2 = _SubBtns[_SelectedSub1][i]; } if (_SelectedSub2 != null) { MenuClick(_SelectedSub2); _SelectedSub2.Selected(); _MenuClick.Invoke(_SelectedSub2.MenuObj); return; } } } else if (_SubBtns[_SelectedSub1].Count > 0) { ClearSelect(1); } } else { if (menuItem != _SelectedSub2) { ClearSelect(2); _SelectedSub2 = menuItem; _SelectedSub2.Selected(); } } _MenuClick.Invoke(menuItem.MenuObj); }