Domanda

ho un MenuStrip che ho aggiunto a una forma, e in uno dei menu a discesa in esso, ho una casella di testo. Quando mi ha colpito entrare sulla casella di testo, voglio una funzione da eseguire, quindi il menu a chiudere. So come ottenere il immettere parte fatto, ma non ho idea di come chiudere il menu a discesa MenuStrip.

È stato utile?

Soluzione

Metodo

Nascondi del proprietario di chiamata il (). Ad esempio:

    private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.Enter) {
            e.SuppressKeyPress = true;
            toolStripTextBox1.Owner.Hide();
        }
    }

Altri suggerimenti

Si può provare questo (ha lavorato per me)

for(int x = 0; x < menu.Items.Count; x++)     ((System.Windows.Forms.ToolStripDropDownItem)menu.Items[x]).HideDropDown();

Questa è una vecchia questione, ma ho incontrato lo stesso problema e capito la soluzione, quindi per altri là fuori:

È necessario chiamare il metodo HideDropDown() della voce del menu principale, a prescindere da come nidificato vostra casella di testo (o un altro controllo) è.

Per esempio, diciamo che si dispone di una striscia degli strumenti con File, Edit, Help. Nel menu Edit, avete il vostro testo da qualche parte nidificato:

EditMenuItem -> FindMenuItem    -> SearchTextBoxHere

Si potrebbe chiamare il metodo HideDropDown() del menu Edit evento KeyDown del testo:

EditMenuItem.HideDropDown();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top