gpt4 book ai didi

c# - 从数据 GridView 的当前选定单元格正下方打开一个弹出窗口

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

我有一个包含一些数据的数据 GridView 。我添加了一个自定义按钮,当我点击一个单元格时它会显示。单击此按钮将打开一个弹出窗体。我的要求只是设置应该显示在 datagridview 的选定单元格正下方的弹出窗体的位置。下面是屏幕截图:

enter image description here

最佳答案

这不是 100% 有效,但它是一个起点,基于我的评论:

主窗体:

    public Form1()
{
InitializeComponent();
}

private Point _cellClick;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var h = dataGridView1.Rows[0].Height;

if (MousePosition.Y % h == 0)
{
_cellClick = new Point(MousePosition.X, MousePosition.Y);
}
else
{
var y = MousePosition.Y;

do
{
y++;
} while (y % h != 0);

_cellClick = new Point(MousePosition.X, y);
}
}

private void button1_Click(object sender, EventArgs e)
{
var f = new Form2(_cellClick);
f.ShowDialog(this);
}

子表单:

    private Point loc;
public Form2(Point location)
{
InitializeComponent();
loc = location;
}

private void Form2_Load(object sender, EventArgs e)
{
this.SetDesktopLocation(loc.X, loc.Y);
}

编辑 这非常接近您要查找的内容,唯一的问题是子表单没有显示为与单元格“相邻”,而是显示鼠标所在的位置他们点击了单元格。

您可能会做一些基本的算术来计算单元格的高度以偏移 MousePosition.Y,以便子窗体显示在它旁边。我认为您只需要将坐标四舍五入到最接近的 N 倍数,其中 N 是 dataGridView1.Rows[0].Height,四舍五入。

编辑 2 我刚刚编辑了代码来尝试这样的操作,现在子表单往往会显示在该行下方一点点。

关于c# - 从数据 GridView 的当前选定单元格正下方打开一个弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19843332/

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