2

在 C# 对话框中,我想添加一个具有双重行为的按钮,即保存和另存为。当用户单击按钮的右上角时,应该会出现一个小的上下文菜单,指示“另存为”选项。

4

2 回答 2

2

SplitButton将是实现这一目标的最佳选择。您将在此处找到使用它的代码SplitButton和示例。

于 2013-05-30T11:16:58.663 回答
1

您可以拥有自己的按钮类,派生自Button,并带有几个可以简单地完成工作的覆盖。只需传入一个ContextMenuStripsplitMenuStrip在我下面的代码中)。

我像这样设置图像(向下箭头):

{
    this.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
    this.Image = YourResources.split_button; // Your down-arrow image

    this.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage;
}


protected override void OnClick(EventArgs e)
{
    var clickPos = this.PointToClient(new System.Drawing.Point(MousePosition.X, MousePosition.Y));

    // If click is over the right-hand portion of the button show the menu
    if (clickPos.X > (Size.Width - Image.Width))
        ShowMenuUnderControl()
    else
        base.OnClick(e);
}


// Raise the context menu
public void ShowMenuUnderControl()
{
    splitMenuStrip.Show(this, new Point(0, this.Height), ToolStripDropDownDirection.BelowRight);
}

有关带有图标和右键单击以调用菜单的更全面的答案,请查看我对这个类似/相同问题的回答。

于 2015-01-15T11:45:58.020 回答