按钮的FlatStyle是悬停时的系统,但是单击时是标准的

时间:2012-12-28 02:35:16

标签: c# visual-studio

我已经看到很多窗体,例如Windows的设置/选项形式,当鼠标悬停在按钮上时,Button的FlatStyle是System。但是当您单击该按钮时,FlatStyle将更改为Standard。这可以在Windows的Skype选项表单的“保存”和“取消”按钮上找到。

顺便说一句,我希望代码用C#编写,因为我在项目中使用C#。

我尝试了一些事情来实现这一目标,但它从来没有奏效过。

如果您使用的是Windows但没有Skype,那么您可以在许多Windows的设置表单中找到我所说的内容,例如Windows的“播放设备”表单。

您还可以注意到,如果所选标签是按钮本身,则按钮不会发生这种情况。

为了达到这个目的,必须使用代码/示例。

2 个答案:

答案 0 :(得分:1)

您需要为按钮单击和MouseHover事件连接事件处理程序,如下面的代码。然后使用FlatStyle类更改外观:

  private void button1_MouseHover(object sender, EventArgs e)
        {
            button1.FlatStyle = FlatStyle.System;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            button1.FlatStyle = FlatStyle.Standard;
        }

希望这对你有所帮助!如果确实将其标记为答案。

答案 1 :(得分:0)

你需要的是MouseEnter而不是MouseHover,所以请使用:

 private void button1_MouseEnter(object sender, EventArgs e)
 {
    button1.FlatStyle = FlatStyle.System;
 }

 private void button1_Down(object sender, EventArgs e)
 {
    button1.FlatStyle = FlatStyle.Standard;
 }

调试:

 int i = 0;
 private void button1_MouseEnter(object sender, EventArgs e)
 {
    button1.FlatStyle = FlatStyle.System;
    i++;
    Console.WriteLine(i.ToString());
 }

 private void button1_Down(object sender, EventArgs e)
 {
    button1.FlatStyle = FlatStyle.Standard;
 }