odlan yer
odlan yer

Reputation: 771

Less coding in event handlers?

Anybody can suggest what is a better way to call a process without coding in every single menu item in c# menustrip

    private void SetupUserToolStripMenuItem_Click(object sender, EventArgs e)
    {

        UserMenu += "Setup User";
        UserRights=ValidateUser(UserMenu);

        if (UserRights == 1)
        {
            frmDataReader frmDR = new frmDataReader();
            frmDR.Show();
        }
        else
        {

            MessageBox.Show("No Permission");
        }

    private void SetupMasterToolStripMenuItem_Click(object sender, EventArgs e)
    {

        //MessageBox.Show(menuStrip1.  ToolStripMenuItem); 
        UserMenu += "Setup Master";
        UserRights=ValidateUser(UserMenu);

        if (UserRights == 1)
        {
            frmDataReader frmDR = new frmDataReader();
            frmDR.Show();
        }
        else
        {

            MessageBox.Show("No Permission");
        }

Upvotes: 1

Views: 103

Answers (2)

Ria
Ria

Reputation: 10347

{
    setupMasterToolStripMenuItem.Click += ToolStripMenuItem_Click;
    setupUserToolStripMenuItem.Click += ToolStripMenuItem_Click;
}


ToolStripMenuItem_Click(object sender, EventArgs e)
{
    ToolStripMenuItem toolStripMenuItem = ((ToolStripMenuItem) sender);
    // may be like this
    // or you can check 'setupUser/setupMasterToolStripMenuItem' 
    // is equal to 'toolStripMenuItem' or check 'Tag' of them
    UserMenu += toolStripMenuItem .Text;


    UserRights=ValidateUser(UserMenu);

    if (UserRights == 1)
    {
        frmDataReader frmDR = new frmDataReader();
        frmDR.Show();
    }
    else
    {
        MessageBox.Show("No Permission");
    }
}

Upvotes: 1

zmbq
zmbq

Reputation: 39013

Attach the same event handler to all click events, no need to write the same code for each button.

Upvotes: 1

Related Questions