组合框包含组合框窗口

时间:2012-11-28 17:44:41

标签: c# winforms combobox

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

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

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

如何制作这种组合框?

**编辑:它不需要组合框,只是实现相同结果的东西

问题的图片:Combobox problem

1 个答案:

答案 0 :(得分:0)

试试这段代码: 我创建了两个名为language_CmbBx的ComboBox和一个名为words_CmbBx的ComboBox。 我设置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不会保持打开状态,我还没有办法让它保持打开状态。

正如我已经提到的,使用ComboBox实现你想要的东西真的很难,试着改用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