2

我正在创建一个 Windows 窗体应用程序,我需要一个包含项目的组合框,每个组合框都会打开另一个组合框,用户可以专门选择。

一个例子:我的组合框中有 2 个项目。丹麦语单词 英语单词

当用户选择英文单词时,它会打开另一个组合框,用户可以在其中选择一个英文单词。

如何创建这种组合框?

**编辑:它不必组合框,只需达到相同结果的东西

问题的图像:组合框问题

4

1 回答 1

0

试试这段代码:我创建了两个组合框,一个名为 language_CmbBx,一个名为 words_CmbBx。我设置words_CmbBx.Visible = false;

 private void language_CmbBx_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.Cursor = new Cursor(Cursor.Current.Handle);
            words_CmbBx.Location = new Point(language_CmbBx.Location.X + language_CmbBx.Width, GetLocalMousePos().Y);
            words_CmbBx.Visible = true;

        }

此方法是获取您的鼠标位置或您想要的 selectedItem 的位置:

    public Point GetLocalMousePos()
    {
        Point screenPos = Cursor.Position;
        return this.PointToClient(screenPos);
    }

唯一的问题是 ComboBox 不会保持打开状态,我还没有找到让它保持打开状态的方法。

正如我已经提到的,使用 ComboBoxes 很难实现你想要的,尝试使用 ListBox 代替:

    private void languages_LstBx_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.Cursor = new Cursor(Cursor.Current.Handle);
        words_LstBx.Location = new Point(language_LstBx.Location.X + language_LstBx.Width, GetLocalMousePos().Y);
        words_LstBx.Visible = true;
    }

相同的代码,更好的结果!

你可以在这里下载我的 VS2010 项目:http ://www.abouchleih.de/projects/twocomboboxes.zip

于 2012-11-29T08:27:16.077 回答