2

私は Windows フォーム アプリケーションを作成しています。アイテムを含むコンボボックスが必要です。それぞれ別のコンボボックスが開き、ユーザーは選択範囲を特化できます。

例: コンボボックスに 2 つのアイテムがあります。デンマーク語 英単語

ユーザーが英単語を選択すると、ユーザーが英単語を選択できる別のコンボボックスが開きます。

この種のコンボボックスを作成するにはどうすればよいですか?

**編集:コンボボックスにする必要はなく、同じ結果を達成するものだけです

問題のイメージ:コンボボックスの問題

4

1 に答える 1

0

このコードを試してください。1つはlanguage_CmbBxという名前の2つのComboBoxを作成し、もう1つは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

于 2012-11-29T08:27:16.077 に答える