2011-12-14 17 views
0

コンボボックスにチェックボックス(Windowsフォームアプリケーション)が実装されています。これは完全に正常に動作します。使用さVisual Studioでコンボボックスを拡張する

:C#のは、Visual Studioの2010

問題:私のコンボボックスで 問題は、ドロップダウンがすべての選択後に閉じていることです。

質問: 複数のアイテムを選択するまで、ドロップダウンは固定されている可能性はありますか?

これを行う方法があるかどうかを知りたかっただけです。

ありがとうございます。

+1

のWinForms、WPF、または他の人:あなたは、CheckBoxクラスから派生し、そしてコンストラクタで制御フラグをオーバーライドする必要がこれを行うには

?タグを追加してください。 –

+1

ユーザーは選択したことを伝えるコミュニケーションをどのように想定していますか?アイデアは、コンボボックスのいくつかの受け入れられているユーザーコンベンションに違反しています。カスタムソリューション(例えば、ダイアログや小さなフォームでCheckListBoxをポップアップさせた方が良いでしょう)。 –

+0

@JohnArlen例*ルックアンドフィール*については、Windowsエクスプローラ**または** Excel **を参照できます。 –

答えて

0

私はWpf拡張ツールキットのCheckComboBoxはあなたがやろうとしているものだと思います。 詳細については、次のリンクを参照してください。

あなたはWinformsの作業していると仮定すると、あなたのWinフォームで

http://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox&referringTitle=Home

+0

はい。しかし、リンクにはまだツールキットに追加されていることが記載されています。 – JJunior

0

このWPFコントロールを追加することができます。

public class CheckComboBox : ComboBox 
{ 
    Timer _timer = new Timer(); 

    public CheckComboBox() 
    { 
     _timer.Interval = 1; 
     _timer.Tick += timer_Tick;  
    } 
    protected override void OnDropDownClosed(EventArgs e) 
    { 
     base.OnDropDownClosed(e); 
     if (checkbox has been clicked) { 
      _timer.Start(); 
     } 
    } 

    void timer_Tick(object sender, EventArgs e) 
    { 
     _timer.Stop(); 
     DroppedDown = true; // Reopens dropdown. 
    } 
} 
+1

これは奇妙なことです。なぜなら、メニューが閉じられてから再び開くから、彼はコントロールを継承し、選択が行われたときの動作を変更する必要があるからです。 –

0

あなたのチェックボックスを防ぐ場合は、閉じてからコンボボックスを停止することができますクリックしたときにフォーカスを得ることができません。

SetStyle(ControlStyles.Selectable, false); 
+0

これは私が焦点を合わせているわけではなく、自分のコードでチェックボックスを作成/描画しているので役に立ちませんでした。 – JJunior

関連する問題