PropertiesComboBox.cs (2092B)
1 // 2 // Copyright 2020 Electronic Arts Inc. 3 // 4 // The Command & Conquer Map Editor and corresponding source code is free 5 // software: you can redistribute it and/or modify it under the terms of 6 // the GNU General Public License as published by the Free Software Foundation, 7 // either version 3 of the License, or (at your option) any later version. 8 9 // The Command & Conquer Map Editor and corresponding source code is distributed 10 // in the hope that it will be useful, but with permitted additional restrictions 11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 12 // distributed with this program. You should have received a copy of the 13 // GNU General Public License along with permitted additional restrictions 14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection 15 using System; 16 using System.Windows.Forms; 17 18 namespace MobiusEditor.Controls 19 { 20 public partial class PropertiesComboBox : ComboBox 21 { 22 private bool savedAutoClose; 23 24 private ToolStripDropDown DropDownHost 25 { 26 get 27 { 28 var parent = Parent; 29 while ((parent != null) && !(parent is ToolStripDropDown)) 30 { 31 parent = parent.Parent; 32 } 33 return parent as ToolStripDropDown; 34 } 35 } 36 37 public PropertiesComboBox() 38 { 39 InitializeComponent(); 40 } 41 42 protected override void OnDropDownClosed(EventArgs e) 43 { 44 var dropDownHost = DropDownHost; 45 if (dropDownHost != null) 46 { 47 dropDownHost.AutoClose = savedAutoClose; 48 } 49 50 base.OnDropDownClosed(e); 51 } 52 53 protected override void OnDropDown(EventArgs e) 54 { 55 var dropDownHost = DropDownHost; 56 if (dropDownHost != null) 57 { 58 savedAutoClose = dropDownHost.AutoClose; 59 dropDownHost.AutoClose = false; 60 } 61 62 base.OnDropDown(e); 63 } 64 } 65 }