winform菜单问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:46:19
private void 垂直ToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.SetLayoutMdi(MdiLayout.TileVertical);
}

private void 水平ToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.SetLayoutMdi(MdiLayout.TileHorizontal);
}

private void 层叠ToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.SetLayoutMdi(MdiLayout.Cascade);
}

private void SetLayoutMdi(MdiLayout layout)
{
//清空选择状态
垂直ToolStripMenuItem1.CheckOnClick = false;

水平ToolStripMenuItem1.CheckOnClick = false;
层叠ToolStripMenuItem1.CheckOnClick = false;
//根据选择显示选择状态
switch (layout)
{
case MdiLayout.TileVertical:
垂直ToolStripMenuItem1.CheckOnClick = true;

把private void SetLayoutMdi(MdiLayout layout)这个方法里面的参数直接换成
ToolStripMenuItem这种类型的,到时候你需要哪一个选中,直接把这条菜单传进去就行了
private void SetLayoutMdi(ToolStripMenuItem tsmi)
{
//清空选择状态
垂直ToolStripMenuItem1.CheckOnClick = false;

水平ToolStripMenuItem1.CheckOnClick = false;
层叠ToolStripMenuItem1.CheckOnClick = false;
tsmi.CheckOnClick=true; //只用这一句就行了,因为默认都是false
//设置相应的排列方式
this.LayoutMdi(layout);
}

调用的时候这样
private void 水平ToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.SetLayoutMdi(this.水平ToolStripMenuItem1);
}

就行了