我用几个按钮创建了窗体。现在我希望当光标指向每个按钮,按钮弹出或缩放时,当光标从该按钮中移除时,它将以正常大小显示。
答案 0 :(得分:4)
可能看起来与此相似:
Button.MouseEnter += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width + 50, Button.Size.Height + 50); } Button.Location = new Point(Button.Location.X - (50 / 2), Button.Location.Y - (50 / 2)});
Button.MouseLeave += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width - 50, Button.Size.Height - 50 }; Button.Location = new Point(Button.Location.X + (50 / 2), Button.Location.Y + (50 / 2)});
Button.GotFocus += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width + 50, Button.Size.Height + 50); } Button.Location = new Point(Button.Location.X - (50 / 2), Button.Location.Y - (50 / 2)});
Button.LostFocus += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width - 50, Button.Size.Height - 50 }; Button.Location = new Point(Button.Location.X + (50 / 2), Button.Location.Y + (50 / 2)});
您还可以遍历“This.controls”事件,并定义每个按钮,然后添加此事件。这是脚本,你几乎可以做任何事情=)
答案 1 :(得分:1)
您可以通过鼠标输入事件中的代码更改按钮大小。并在鼠标离开事件中重置它。
答案 2 :(得分:1)
你可以在鼠标进入和离开事件时改变按钮的大小,或者创建两个图像 是小而大,并改变这些事件的形象。
答案 3 :(得分:0)
您必须同时处理MouseEnter / MouseLeave和GotFocus / LostFocus事件以考虑键盘导航。
这样的效果在WPF应用程序中要容易得多。如果您需要视觉效果,也许您应该考虑创建一个WPF应用程序。通过缩放按钮来检查Scale transform in xaml (in a controltemplate) on a button to perform a "zoom"处理类似要求的位置,其方式可以附加到您想要的任何按钮上,避免编写代码。
答案 4 :(得分:0)
最简单的方法似乎是使用SetBounds
。 Control.Scale
效果不佳,因为它假定您缩放包含所有子控件的完整窗口,因此将始终从视口的左上角缩放(在本例中为窗口客户端框架)。
Button b;
public Form1()
{
InitializeComponent();
b = new Button();
b.Text = "Hover me";
b.Top = 100;
b.Left = 100;
b.Size = new Size(80, 30);
this.Controls.Add(b);
b.MouseEnter += delegate(object sender, EventArgs e)
{
b.SetBounds(b.Left - 5, b.Top - 2, b.Width + 10, b.Height + 4);
};
b.MouseLeave += delegate(object sender, EventArgs e)
{
b.SetBounds(b.Left + 5, b.Top + 2, b.Width - 10, b.Height - 4);
};
}