如何动态地定位一个列表框相对于文本框在winforms

本文关键字:相对于 列表 文本 winforms 一个 何动态 动态 定位 | 更新日期: 2023-09-27 18:11:59

我目前正在用winforms编程一个网格。我有多个文本框,每个组成单元格。当我单击单元格时,我想显示一个列表框(它是我之前通过设计器添加的单个预定义列表框,因此每个单元格都是相同的列表框)。

现在我的问题是我如何定位列表框下的文本框?

我需要使用的事件我已经知道(因为我在那里使用一个框架,我需要使用那里的事件,并且已经知道适当的一个,我可以使列表框可见和不可见)。我在事件中有当前TextBox的处理程序。我的问题是我不确定如何使用这些信息来定位列表框本身。

那么我需要使用哪些命令来定位列表框?

如何动态地定位一个列表框相对于文本框在winforms

将所有文本框添加到进入和离开事件
使用发送器使其适用于所有文本框。

TextBox TextB = (TextBox)sender;"

然后使用文本框位置X和Y设置列表框。
你需要添加文本框的高度和你想要它在你的文本框下面的空间。

" listBox1。Location = new Point(TextB.Location.)X, TextB. location . y + TextB。高度+ 5);"

使用下面的代码就可以了

    private void textBox1_Enter(object sender, EventArgs e)
    {
        TextBox TextB = (TextBox)sender;
        listBox1.Location = new Point(TextB.Location.X, TextB.Location.Y + TextB.Height + 5);
        listBox1.Visible = true;
    }
    private void textBox1_Leave(object sender, EventArgs e)
    {
        listBox1.Visible = false;
    }