c# - TabControl 上下文菜单

标签 c# winforms tabcontrol contextmenu

在 Windows 窗体应用程序中,我在 TabControl 上设置了 ContextMenuStrip 属性。

  1. 如何告诉用户点击了当前所选标签以外的标签?
  2. 如何限制上下文菜单仅在单击带有标签的顶部选项卡部分时显示,而不是在选项卡的其他位置显示?

最佳答案

不必在 TabControl 上设置 contextMenuStrip 属性。而是这样做。连接到 tabControl 的 MouseClick 事件,然后手动显示上下文菜单。这只会在顶部的选项卡本身被点击时触发,而不是实际页面。如果您单击该页面,则 tabControl 不会收到单击事件,而 TabPage 会收到。一些代码:

public Form1()
{
    InitializeComponent();
    this.tabControl1.MouseClick += new MouseEventHandler(tabControl1_MouseClick);
}

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        this.contextMenuStrip1.Show(this.tabControl1, e.Location);
    }


}

关于c# - TabControl 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457677/

相关文章:

c# - 在图像下方但在 C# 的打印区域内添加水印

c# - 来自 ViewModel 的焦点控制

C# 基础设施 UltraDockManager

c# - 从另一个 IList 的一部分快速创建列表

c# - 以编程方式在 VS2010 项目中添加现有项目?

c# - 包含异常作为 DataContractSerializer WCF C# 的 DataMember

c# - tabControl 中选项卡的初始化

c# - 如何从 ViewStart 中访问(自定义)Web 助手?

c# - 如何允许在 Windows 应用程序中仅编辑 datagridview 中的特定列?

c# - 在没有管理员权限的情况下运行 WinForms 应用程序?