在C# Winform中自定義導航菜單的控件可以通過繼承自Panel控件來實現。以下是一個簡單的示例:
首先,創建一個名為NavigationMenu的自定義控件類,繼承自Panel控件:
public class NavigationMenu : Panel
{
public NavigationMenu()
{
// 設置控件樣式為雙緩沖,以提高繪制效果
DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
// 繪制背景顏色
e.Graphics.FillRectangle(Brushes.LightGray, ClientRectangle);
// 繪制菜單項
int menuItemHeight = 30;
int menuItemWidth = Width;
int y = 0;
foreach (Control control in Controls)
{
control.Location = new Point(0, y);
control.Size = new Size(menuItemWidth, menuItemHeight);
y += menuItemHeight;
}
base.OnPaint(e);
}
}
然后,可以在窗體中使用該自定義控件來創建導航菜單。例如:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
NavigationMenu navigationMenu = new NavigationMenu();
navigationMenu.Dock = DockStyle.Left;
navigationMenu.Width = 200;
navigationMenu.BackColor = Color.DarkGray;
// 添加菜單項
Button homeButton = new Button();
homeButton.Text = "Home";
navigationMenu.Controls.Add(homeButton);
Button aboutButton = new Button();
aboutButton.Text = "About";
navigationMenu.Controls.Add(aboutButton);
// 添加自定義控件到窗體
Controls.Add(navigationMenu);
}
}
以上示例中,創建了一個繼承自Panel控件的NavigationMenu類,并重寫了OnPaint方法來自定義繪制。在窗體的構造函數中,創建了一個NavigationMenu實例,并添加了兩個菜單項(Button控件)。然后將該自定義控件添加到窗體中。
運行程序,就可以看到自定義的導航菜單控件在窗體的左側顯示,并且菜單項以按鈕的形式展示。