我創建了幾個按鈕的窗體。現在我希望當光標指向每個按鈕時,按鈕彈出或縮放,並且當光標從該按鈕中移除時,它將以正常尺寸出現。有沒有什麼辦法可以放大c#中的按鈕?
回答
您可以通過mouse-enter-event中的代碼更改按鈕大小。並在鼠標離開事件中重置它。
不僅尺寸而且位置(如果你不想從左上方放大)。如果按鈕被錨定或佈局面板中,它可能會變得更復雜。 – Joey
我很困惑。你可以寫代碼嗎? – user1436685
是的,位置也必須改變。 – Tomtom
可能類似於此:
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」事件,並且定義每個按鈕,然後添加此事件。這是腳本,你可以做任何事情=)
這是它應該工作的方式。不過要小心。如果您選擇較大的縮放值,則可能會發生縮放控件與另一個控件疊加的情況。 – Tomtom
你將不得不處理MouseEnter/MouseLeave和GotFocus/LostFocus事件來說明鍵盤導航。
這樣的效果在WPF應用程序中更容易。也許你應該考慮創建一個WPF應用程序,如果你需要視覺效果。檢查Scale transform in xaml (in a controltemplate) on a button to perform a "zoom",其中類似的要求通過縮放按鈕來處理,方式可以附加到任何您想要的按鈕,避免編寫代碼。
最簡單的方法似乎是使用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);
};
}
plz舉個例子。 – user1436685
- 1. 有沒有什麼辦法可以從C++中的用戶數組大小?
- 2. 有沒有什麼辦法可以讓我的C#XMLManager工作?
- 3. 有沒有什麼辦法可以將我的自定義按鈕放在android中的一個XML文件中?
- 4. 有沒有什麼辦法可以用離子聆聽鍵盤後退按鈕?
- 5. 有沒有什麼辦法可以捕獲jQuery中的android'GO'按鈕或iPhone'GO'按鈕?
- 6. 有沒有什麼辦法可以讓按鈕上的圖像自動調整大小以適合屏幕?
- 7. 有沒有什麼辦法可以知道一個按鈕沒有按下確定的時間點擊?
- 8. 有什麼辦法可以獲得c函數的大小嗎?
- 9. C#有沒有辦法可以&& =?
- 10. 有沒有什麼辦法可以「預編譯」Rails中的Markdown?
- 11. 有什麼辦法可以斷點按鈕touchUpInside的所有方法嗎?
- 12. 有什麼辦法用放大器HTML
- 13. 有沒有辦法讓Visual Studio 2010中的按鈕變大?
- 14. 有沒有什麼辦法可以在eclipse中編譯GnuTLS?
- 15. 有沒有什麼辦法可以在windows phone中創建pdf
- 16. 有沒有什麼辦法可以在DataGrid中顯示CheckBox
- 17. 有沒有什麼辦法可以在jQuery中捕捉空間
- 18. 有沒有什麼辦法可以在QGridLayout中刪除QWidget?
- 19. 有沒有什麼辦法可以在函數中使用get_sidebar?
- 20. 有沒有什麼辦法可以在MATLAB中增加'realmax'?
- 21. 有沒有什麼辦法可以從Psych :: SyntaxError中恢復?
- 22. 有沒有什麼辦法可以在Python中定義枚舉?
- 23. 有沒有什麼辦法可以在cluetip中獲得最大高度
- 24. 有沒有辦法自定義C++中按鈕的樣子?
- 25. 有沒有什麼辦法可以聽MySQL的寫作?
- 26. 有沒有什麼辦法可以編寫簡潔的代碼?
- 27. 有沒有什麼辦法可以用php的
- 28. 有什麼辦法可以禁用水晶報告中的放大鏡光標
- 29. 有沒有辦法使用按鈕
- 30. 有沒有什麼辦法可以在谷歌瀏覽器中插入通知中的動作按鈕
[你有什麼試過嗎?](http://whathaveyoutrid.com) –
我認爲win表單不支持這種圖形效果。試試WPF。 – davioooh
davioooh,它可能不像WPF那樣優雅,但是您可以在Windows窗體中輕鬆完成相同操作。 – Joey