模块切换功能实现(左边模块切换并关联上边分页)及分页按钮文本颜色的互斥效果

1、首先定义颜色
/// <summary>
/// 处理左边按钮背景色和分页按钮的文本颜色
/// </summary>
private voidSetMenuBtnsColor(UMenuButton btn,UPageButton btnPage)
{
//模块按钮的背景色
Color unSelColor =Color.FromArgb(45, 50, 116);//未选中
Color SelColor = Color.FromArgb(88,116, 216);//选中
//分页按钮文本颜色
Color topSelColor =Color.FromArgb(45, 50, 116);//点击时或显示相关页面时
Color topUnSelColor = Color.White;//默认或没有显示页面时
btn.BackColor = SelColor; //定义选中时模块按钮的背景色
btnPage.ForeColor = topSelColor;//定义选中时分页按钮的背景色
//处理未选中模块按钮、未显示分页按钮
UMenuButton[] menuBtns = {btnStoreManage, btnProductManage, btnStoreTemperManage };
UPageButton[] pageBtns = {btnStorePage, btnSRegionPage, btnProductPage, btnProductInStorePage,btnStoreTemperPage };
foreach(UMenuButton b in menuBtns)//遍历模块按钮
{
if (b.Name != btn.Name)
{
b.BackColor = unSelColor;
}
}
foreach(UPageButton b in pageBtns)//遍历分页按钮
{
if (btnPage.Name != b.Name)
{
b.ForeColor =topUnSelColor;
}
}
}
2、再定义模块按钮背景色
/// <summary>
/// 设置模块按钮背景色
/// </summary>
/// <param name="code"></param>
private voidSetModuleBtnBackColor(int code)
{
switch (code)
{
case 1:
//设置仓库管理模块按钮的背景色,其他两个按钮背景---默认背景
SetMenuBtnsColor(btnStoreManage, btnStorePage);
break;
case 2:
//设置产品管理模块按钮的背景色,其他两个按钮背景---默认背景
SetMenuBtnsColor(btnProductManage, btnProductPage);
break;
case 3:
//设置仓库温控管理模块按钮的背景色,其他两个按钮背景---默认背景
SetMenuBtnsColor(btnStoreTemperManage, btnStoreTemperPage);
break;
}
}
3、
int selModuleCode = 1;//1store 2 product 3 temper

4、默认仓库管理为1

5、其余两个点击事件为2和3。

6、分页按钮文本颜色的互斥效果

上面五个按钮命名为btn…Page,那么先搞分页按钮的处理程序。
/// <summary>
/// 分页按钮单击处理程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPage_Click(object sender, EventArgse)
{
//分页按钮文本颜色
Color topSelColor =Color.FromArgb(45, 50, 116);//点击时或显示相关页面时
Color topUnSelColor = Color.White;//默认或没有显示页面时
UPageButton clickBtn = sender as UPageButton;//当前点击按钮
foreach (Control c in panelPageTop.Controls)//遍历分页按钮
{
if (c is UPageButton)
{
UPageButton btn = c as UPageButton;
if (btn.Name != clickBtn.Name)
{
btn.ForeColor =topUnSelColor;
}
}
}
}
再注册分页按钮的单击事件
/// <summary>
/// 注册分页按钮的单击事件
/// </summary>
private voidRegisterPageBtnClick()
{
foreach(Control c in panelPageTop.Controls)
{
if(c is UPageButton)
{
UPageButton btn = c as UPageButton;
btn.Click += btnPage_Click;
}
}
}
最后在主页的load事件中
