我有Right-click
个菜单项,sub menu items
。我想要做的是,如果单击3个子菜单项之一,它将打开相同的表单,但传递不同的变量。
子菜单项;
1-经理
2-工作人员
3-客户
无论选择哪一个,都应将名称,即经理,员工或客户传递给一个表格。
由于
编辑1: 主要表格
if (e.Button == MouseButtons.Right)
{
ContextMenu m = new ContextMenu();
MenuItem Message = new MenuItem("Message", Message_Click);
Message.MenuItems.Add(new MenuItem("Manager", Manager_Click));
Message.MenuItems.Add(new MenuItem("-"));
Message.MenuItems.Add(new MenuItem("Staff", Staff_Click));
Message.MenuItems.Add(new MenuItem("Customer", Customer_Click));
}
private void Manager_Click(object sender, EventArgs e)
{
FrmMessage frmMessage = new FrmMesage();
frmMessage.ShowDialog();
frmMessage.Dispose();
}
private void Staff_Click(object sender, EventArgs e)
{
FrmMessage frmMessage = new FrmMesage();
frmMessage.ShowDialog();
frmMessage.Dispose();
}
private void Customer_Click(object sender, EventArgs e)
{
FrmMessage frmMessage = new FrmMesage();
frmMessage.ShowDialog();
frmMessage.Dispose();
}
讯息表格;
private void PopulateFields()
{
txtMessage.Text = Company.ManagerName.ToString();
OR
txtMessage.Text = Company.StaffName.ToString();
OR
txtMessage.Text = Company.CustomerName.ToString();
}
编辑2:
我有2 forms
,第一个表单有datagrid
,在此数据网格上有上面的MenuItems
。在第二个form
上,他们是3 TextBoxes
- To
,From
,Message
,以MenuItem
- Manager
为准,{{1}选择Staff
,它将使用经理或员工或客户的名称填充Customer
To
,但不会这样做。这是我的问题更明确吗?
由于
答案 0 :(得分:2)
你有几个选择。
您可以将FrmMesage
继承为三个专门针对每种类型的特定子类。
public class FrmMesageManager : FrmMesage { /* with appropriate overrides */ }
public class FrmMesageCustomer : FrmMesage { /* with appropriate overrides */ }
public class FrmMesageStaff : FrmMesage { /* with appropriate overrides */ }
然后你做:
private void Manager_Click(object sender, EventArgs e)
{
FrmMessageManager frmMessage = new FrmMessageManager();
frmMessage.ShowDialog();
frmMessage.Dispose();
}
...等
或者您可以向FrmMesage
public partial class FrmMesage
{
private string _user;
public FrmMesage(string user)
{
_user = user;
}
}
然后你做:
private void Manager_Click(object sender, EventArgs e)
{
FrmMessage frmMessage = new FrmMessage("Manager");
frmMessage.ShowDialog();
frmMessage.Dispose();
}
或者您可以将公共属性添加到FrmMesage
public partial class FrmMesage
{
private string User { get; set; }
}
然后你做:
private void Manager_Click(object sender, EventArgs e)
{
FrmMessage frmMessage = new FrmMessage();
frmMessage.User = "Manager";
frmMessage.ShowDialog();
frmMessage.Dispose();
}