Reputation: 771
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
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
Reputation: 39013
Attach the same event handler to all click events, no need to write the same code for each button.
Upvotes: 1