MSDN > Home page del forum > Visual C# General > How to make ToolStripItem.DismissWhenClicked FALSE
Formula una domandaFormula una domanda
 

Risposta suggeritaHow to make ToolStripItem.DismissWhenClicked FALSE

  • venerdì 30 ottobre 2009 9.08ablackdragon Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     
    I want to keep one ToolStripItem of a MenuStrip visible after I click it, how to?
    In the document, is seems ToolStripItem.DismissWhenClicked controls this, but it cannot be accessed or set.
    Thank you. 
     
    Yours, Adun.
     

Tutte le risposte

  • venerdì 30 ottobre 2009 11.58IMiron Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     Contiene codice
    Won't something like this work for you?


        class ToolStripItemEx : ToolStripItem
        {
            protected override bool DismissWhenClicked
            {
                get
                {
                    return true;
                }
            }
        }
    

    In the get statement you could specify when to be dismissed and when not.

    Ionut
  • sabato 31 ottobre 2009 4.43ablackdragon Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     

    Will this make the ToolStripItem Visible after I click it?
    I want to process the click event, and keep it visible.
    Thank you. 
     

  • sabato 31 ottobre 2009 5.19Tamer OzMVPMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     Risposta suggeritaContiene codice
    Hi,

    You can write this code to CheckedChanged event of ToolStipMenuItem that you want to keep visible after clicked.

            private void bToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
            {
                ((ToolStripMenuItem)bToolStripMenuItem.OwnerItem).ShowDropDown();
                
            }
    
    Or you can develop your custom ToolStripMenuItemClass like following.

       public class MyToolStripMenuItem : ToolStripMenuItem
        {
            protected override void OnCheckedChanged(EventArgs e)
            {
    
                base.OnCheckedChanged(e);
                ((ToolStripMenuItem)this.OwnerItem).ShowDropDown();
            }
        }
    
  • sabato 31 ottobre 2009 8.05ablackdragon Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     

    Thank you, I 'll try in your way later.
     

  • sabato 31 ottobre 2009 8.11ablackdragon Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     

    In this way, there is one problem,
    after I click a 4th level menu item, the item and its parent( a 3rd level menu item) are visible,
    while the 2nd level menu item is invisible now.
    Shall I call the ShowDropDown method recursively to the root? 
     

  • giovedì 5 novembre 2009 2.21Harry ZhuMSFT, ModeratoreMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     Risposta suggerita
    Hi,

    You might need to call the method on every ownerItem:

                ToolStripMenuItem ts = (ToolStripMenuItem)bToolStripMenuItem.OwnerItem;
                while (ts!= null)
                {
                    ts.ShowDropDown();
                    //Console.WriteLine(ts.Name);
                    ts = (ToolStripMenuItem)ts.OwnerItem;            
     
                }

    Harry
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
  • domenica 8 novembre 2009 8.38ablackdragon Medaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     
    Thank you, Harry.
    I 'm afraid this method does not work as expected. 
     
  • lunedì 9 novembre 2009 1.40Harry ZhuMSFT, ModeratoreMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utenteMedaglie utente
     
    Hi,

    Could you please be more specific ? I test it and these items does not disapear after I click one .

    Harry
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.