ToolStripDropDown 没有边界约束



我正在使用ToolStripDropDown在用户键入文本框时创建一个自动完成弹出窗口。我希望弹出窗口仅显示在文本框的右下角。但是,当文本框的位置靠近屏幕的右边缘或下边缘时,弹出窗口将显示在其他位置。谁能帮我?

来自 ToolStripDropDown 的派生类中的代码:

public void Show(Presenters.IMainView c, Point position)
    {
        base.Show(c as Control, position, ToolStripDropDownDirection.BelowRight);
    }

主视图中的代码:

private void TextBoxAutocomplete_TextChanged(object sender, EventArgs e)
    {
        _mPopup.Show((IMainView)this, ((TextBox)sender).Location);
    }

我希望弹出窗口的行为像普通形式一样,其位置不受屏幕或工作区边界的限制,但不是从父表单窃取焦点

我决定使用另一种更简单的方法。我没有使用ToolStripDropDown的派生类,而是使用从UserControl派生的类,使其不会从其父级窃取焦点(请参阅此问题)

最新更新