2012-11-01 27 views
6

ListBoxコントロールが必要なアプリケーションを開発しています。残念ながら、ListBoxに項目を追加すると、垂直スクロールバーが表示されます。 ListBoxに表示されている垂直スクロールバーを非表示にする方法がありますか?私は、水平スクロールバーを隠すプロパティがあることがわかりますが、垂直スクロールバーのプロパティはありません。ListBoxコントロールの垂直スクロールバーを非表示にする

+0

垂直スクロールバーを削除すると、スクロールの端を越えてアイテムにアクセスする方法は? –

+0

@LeeTaylor返信いただきありがとうございます。私はRichTextBoxを持っていることを忘れてしまった。 RichTextBox内でリストボックスを制御することができました。したがって、リストボックスにスクロールバーを表示する必要はありません。素晴らしい一日を過ごしてください:) –

+0

OK、私はスクロールバーを削除する方法を知らない。私が知っている唯一の方法は、リストボックスがすべてのアイテムを保持するのに十分な長さであることを確認することです。 –

答えて

8

問題は解決しました。私は単に、私は、私のメインのプロジェクトに新しいクラスライブラリClassLibrary1.dll

を出力するプロジェクトを構築した後、次のコード

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace ClassLibrary1 
{ 
    public class MyListBox : System.Windows.Forms.ListBox 
    { 
     private bool mShowScroll; 
     protected override System.Windows.Forms.CreateParams CreateParams 
     { 
      get 
      { 
       CreateParams cp = base.CreateParams; 
       if (!mShowScroll) 
        cp.Style = cp.Style & ~0x200000; 
       return cp; 
      } 
     } 
     public bool ShowScrollbar 
     { 
      get { return mShowScroll; } 
      set 
      { 
       if (value != mShowScroll) 
       { 
        mShowScroll = value; 
        if (IsHandleCreated) 
         RecreateHandle(); 
       } 
      } 
     } 
    }  
} 

とテンプレートの新しいプロジェクトにクラスライブラリを作成しましたToolBoxを右クリックし、Choose Items...を選択しました。 を参照してください...をクリックし、最近作成したクラスライブラリ(ClassLibrary1.dll)を選択してを開きます。を開き、次ににOKをクリックします。したがって、私は自分のカスタムListBoxを持っていて、もう垂直スクロールバーがありませんでした。

1

水平スクロールバーを除き、通常の使用では垂直スクロールバーをオフにすることはできません。

プロパティは常に(VBでも可能)を使用して表示または自動に設定できます。あなたがあなたの代わりに、このようなものを計算することにより、ClientSizeを再計算することができますアイテムを追加すると

(、あなたは同様にそれにパディング値を追加してテストされていない必要があるかもしれません):

もちろん
Size sz = new Size(ListBox1.ClientSize.Width, _ 
        ListBox1.Items.Count * ListBox1.Font.Height); 
ListBox1.ClientSize = sz 

、あなたが追加する必要がありますゼロの場合は値をチェックし、最小/最大の高さが必要な場合はチェックします。

+0

ありがとう、私は正常にクラスライブラリを作成する垂直スクロールバーを隠しました。私はすぐに私のソリューションを投稿します:) –

+1

ニース:-)リストボックスコントロールで行うことができるかどうか尋ねると、私はそのまま答えを残します:-) – K3N

+0

問題はありません。答えてくれてありがとう。すてきな一日を :) –

関連する問題