如何在标题栏上放置按钮?

时间:2015-03-24 15:19:06

标签: vb.net winforms titlebar

我正在尝试创建一个显示用户菜单的按钮,如Google Chrome中所示:

enter image description here

没有传统方法可以做到这一点,所以我一直环顾四周,我发现每一种做法都是过时的或不起作用的(可能是因为它的原因)过时!)。

这是first link I found,但是只有 才能使用Windows Aero,而且可能不适用于Windows 8,8.1或10,而且效果不佳。 answer to this Stack Overflow question也基本上是相同的代码:

enter image description here

Aero on:

enter image description here

我在这里也发现了一些问题,但提到的技术不起作用。 One of the answers指向this MSDN article,它似乎提供了我想要的一些功能,但代码却是

这是否可以在VB.NET中没有任何问题,如果是这样,怎么样?

这是使用VB.NET和Windows Forms,目标操作系统是Windows 7和更新版本。

1 个答案:

答案 0 :(得分:2)

看看这两个链接:

Adding caption buttons to the Non-client area on Vista

.Net ActiveButtons Library

自从我使用VB.Net已经有一段时间了,所以如果你不介意我只会添加ac#代码示例(基本上我从第一个链接中取了示例并尝试了它,它似乎是工作正常)

private void Form1_Load(object sender, EventArgs e)
{
    IActiveMenu menu = ActiveMenu.GetInstance(this);
    ActiveButton button = new ActiveButton();
    button.BackColor = Color.LightBlue;
    button.Text = "One";
    button.Click += button_Click;
    menu.Items.Add(button);
}

private void button_Click(object sender, EventArgs e)
{
    MessageBox.Show("Button clicked");
}

注意:此按钮似乎不支持透明背景,因此它看起来不像chrome中的按钮那么好。