C#模块切换功能实现

文章描述了一种方法来实现左侧模块按钮与上方分页按钮的联动效果,当选择某个模块时,相应模块按钮改变背景色,同时关联的分页按钮文本颜色也会变化。通过定义不同状态的颜色值,遍历并更新所有按钮的状态,以及注册分页按钮的点击事件来处理颜色互斥效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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事件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值