Dev PopupMenu实现自定义右键菜单,添加二级菜单,添加菜单项分割

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
	if (e.Button == MouseButtons.Right)
	{
	   popupMenu1.ShowPopup(Control.MousePosition);
	}
  
}

PopupMenu popupMenu1 = null;

private void Form1_Load(object sender, EventArgs e)
{
	popupMenu1 = new DevExpress.XtraBars.PopupMenu(barManager1);
	BarButtonItem barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
	barButtonItem1.Caption = "复制";
	BarButtonItem barButtonItem2 = new DevExpress.XtraBars.BarButtonItem();
	barButtonItem2.Caption = "粘贴";
	popupMenu1.AddItem(barButtonItem1);
	popupMenu1.AddItem(barButtonItem2);
	//添加分割符
	barButtonItem2.Links[0].BeginGroup = true;

	//添加二级菜单
	BarSubItem subItem = new BarSubItem(barManager1, "菜单组");
	BarButtonItem barButtonItem5 = new DevExpress.XtraBars.BarButtonItem();
	barButtonItem5.Caption = "子菜单1";
	BarButtonItem barButtonItem6 = new DevExpress.XtraBars.BarButtonItem();
	barButtonItem6.Caption = "子菜单2";
	subItem.AddItem(barButtonItem5);
	subItem.AddItem(barButtonItem6);
	popupMenu1.AddItem(subItem);
}

注意:PopupMenu依赖barManager,必须现在窗体中拖一个barManager控件,其余代码实现即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以通过使用Swing或JavaFX来自定义右键菜单。以下是一种常见的方法: 1. 使用Swing: ```java import javax.swing.*; import java.awt.event.*; public class CustomPopupMenu extends JFrame { private JPopupMenu popupMenu; public CustomPopupMenu() { setTitle("Custom Popup Menu"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建右键菜单 popupMenu = new JPopupMenu(); JMenuItem menuItem1 = new JMenuItem("菜单项1"); JMenuItem menuItem2 = new JMenuItem("菜单项2"); JMenuItem menuItem3 = new JMenuItem("菜单项3"); // 添加菜单项的点击事件处理 menuItem1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "点击了菜单项1"); } }); menuItem2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "点击了菜单项2"); } }); menuItem3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "点击了菜单项3"); } }); popupMenu.add(menuItem1); popupMenu.add(menuItem2); popupMenu.add(menuItem3); // 将右键菜单添加到组件上 addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) { popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } }); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new CustomPopupMenu().setVisible(true); } }); } } ``` 2. 使用JavaFX: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.TextArea; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class CustomContextMenu extends Application { @Override public void start(Stage primaryStage) { primaryStage.setTitle("Custom Context Menu"); TextArea textArea = new TextArea(); textArea.setContextMenu(createContextMenu()); StackPane root = new StackPane(); root.getChildren().add(textArea); primaryStage.setScene(new Scene(root, 300, 200)); primaryStage.show(); } private ContextMenu createContextMenu() { ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem1 = new MenuItem("菜单项1"); MenuItem menuItem2 = new MenuItem("菜单项2"); MenuItem menuItem3 = new MenuItem("菜单项3"); menuItem1.setOnAction(e -> { System.out.println("点击了菜单项1"); }); menuItem2.setOnAction(e -> { System.out.println("点击了菜单项2"); }); menuItem3.setOnAction(e -> { System.out.println("点击了菜单项3"); }); contextMenu.getItems().addAll(menuItem1, menuItem2, menuItem3); return contextMenu; } public static void main(String[] args) { launch(args); } } ``` 这些示例代码演示了如何在Java Swing和JavaFX中创建自定义右键菜单。你可以根据自己的需求添加更多的菜单项和事件处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值