gpt4 book ai didi

c# - 如何在按钮下放置无边框表单

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:40 26 4
gpt4 key购买 nike

我已经动态创建了 4 个按钮,并使用 c# win 表单将它们水平放置。现在我想在鼠标悬停事件的 4 个按钮中的每一个下方显示一个自定义工具提示(实际上是无边框形式)。但是我如何定位我的工具提示按钮下的表格??我已经尝试了下面的代码,但它没有按预期方式工作。

tooltip.Location = new System.Drawing.Point(b.Left, b.Top);

其中“tooltip”是工具提示表单对象,“b”是动态按钮。请提供一些代码片段。

private void B_MouseHover(object sender, EventArgs e)
{
var b = sender as Button;
//MessageBox.Show(Cursor.Position.ToString());
if(b!= null)
{
if (tooltip == null)
{
tooltip = new frmSecQStatToolTipDlg();
}

tooltip.Location = new System.Drawing.Point(b.Left, b.Bottom);
tooltip.data(b.Tag.ToString());
tooltip.Show();
}
}

最佳答案

您的命名方式有点误导。据我了解,您所说的工具提示只是一个 Form。你需要考虑两件事

(1) Form.StartPosition必须设置为 FormStartPosition.Manual

(2) Form.Location 必须在屏幕 坐标中。请注意,您尝试使用的 Button.Location 位于按钮的父客户端坐标中。 Control.PointToScreen必须用于转换。

在你的情况下,它应该是这样的

tooltip.StartPosition = FormStartPosition.Manual;
var topLeft = b.PointToScreen(new Point(0, 0));
tooltip.Location = new Point(topLeft.X, topLeft.Y + b.Height);

关于c# - 如何在按钮下放置无边框表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com