如何在标题栏上放置一个按钮?
How can I place a button on the title bar?
我正在尝试制作一个显示 user-menu 的按钮,如 Google Chrome:
中所示
没有传统的方法可以做到这一点,所以我环顾四周,发现每一种方法要么已经过时,要么不起作用(可能是因为它已经过时了!)。
这是first link I found, but however it only works with Windows Aero off, and probably not with Windows 8, 8.1, or 10, and not very well. The answer to this Stack Overflow question也是本质相同的代码:
气动开启:
我在这里也发现了一些问题,但是提到的技术不起作用。 One of the answers points to this MSDN article which appears to offer some of the functionality I want, but the code however is c++.
这在 VB.NET 中是否可能没有任何问题,如果可以,如何实现?
这是用 VB.NET 和 Windows 形式,目标操作系统是 Windows 7 和更新的。
看看这 2 个 link:
Adding caption buttons to the Non-client area on Vista
我已经有一段时间没用 VB.Net 了,所以如果你不介意的话我会添加一个 c# 代码示例(基本上我从第一个 link并尝试了一下,它似乎工作正常)
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中的按钮好。
我正在尝试制作一个显示 user-menu 的按钮,如 Google Chrome:
中所示没有传统的方法可以做到这一点,所以我环顾四周,发现每一种方法要么已经过时,要么不起作用(可能是因为它已经过时了!)。
这是first link I found, but however it only works with Windows Aero off, and probably not with Windows 8, 8.1, or 10, and not very well. The answer to this Stack Overflow question也是本质相同的代码:
气动开启:
我在这里也发现了一些问题,但是提到的技术不起作用。 One of the answers points to this MSDN article which appears to offer some of the functionality I want, but the code however is c++.
这在 VB.NET 中是否可能没有任何问题,如果可以,如何实现?
这是用 VB.NET 和 Windows 形式,目标操作系统是 Windows 7 和更新的。
看看这 2 个 link:
Adding caption buttons to the Non-client area on Vista
我已经有一段时间没用 VB.Net 了,所以如果你不介意的话我会添加一个 c# 代码示例(基本上我从第一个 link并尝试了一下,它似乎工作正常)
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中的按钮好。