110,534
社区成员
发帖
与我相关
我的任务
分享
public partial class SubMenuBt : Button
{
public SubMenuBt()
{
this.FlatStyle = FlatStyle.Flat;
this.FlatAppearance.BorderSize = 0;
this.Font = new Font("方正书宋简体", 10F);
this.Image = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单图标2.png");
this.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.BackgroundImageLayout = ImageLayout.Stretch;
this.BackgroundImage = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单背景Normal.png");
this.Size = new Size(150, 25);
this.Margin = new Padding(0, 1, 0, 0);
this.Checked = false;
this.MouseEnter += new EventHandler(SubMenuBt_MouseEnter);
this.MouseLeave += new EventHandler(SubMenuBt_MouseLeave);
this.Click += new EventHandler(SubMenuBt_Click);
}
public bool Checked { get; set; }
private void SubMenuBt_Click(object sender, EventArgs e)
{
SubMenuBt sbt = sender as SubMenuBt;
sbt.BackgroundImage = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单背景Down.png");
sbt.Checked = true;
//显示对应的标签页
Form1 fm = new Form1();
for (int i = 0; i < fm.TabCtlSystemSet.TabPages.Count; i++)
{
if (fm.TabCtlSystemSet.TabPages[i].Text == sbt.Text)
{
fm.TabCtlSystemSet.SelectedIndex = i;//此句压根没效果
break;
}
}
foreach (Control c in sbt.Parent.Controls) //恢复上一个点击按钮的状态
{
if (c is SubMenuBt)
{
SubMenuBt bt = c as SubMenuBt;
if (bt.Checked == true && bt != sbt)
{
bt.Checked = false;
bt.BackgroundImage = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单背景Normal.png");
break;
}
}
}
}
private void SubMenuBt_MouseEnter(object sender, EventArgs e)
{
SubMenuBt sbt = sender as SubMenuBt;
if (sbt.Checked == false)
{
sbt.BackgroundImage = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单背景In.png");
}
}
private void SubMenuBt_MouseLeave(object sender, EventArgs e)
{
SubMenuBt sbt = sender as SubMenuBt;
if (sbt.Checked == false)
{
sbt.BackgroundImage = Image.FromFile(@"E:\C#开发资料\C#项目文件\控件测试图片\动态菜单图片\二级菜单背景Normal.png");
}
}
}