次の方法で共有


ListBox.ScrollAlwaysVisible プロパティ

垂直スクロール バーを常に表示するかどうかを示す値を取得または設定します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

構文

'宣言
<LocalizableAttribute(True)> _
Public Property ScrollAlwaysVisible As Boolean
'使用
Dim instance As ListBox
Dim value As Boolean

value = instance.ScrollAlwaysVisible

instance.ScrollAlwaysVisible = value
[LocalizableAttribute(true)] 
public bool ScrollAlwaysVisible { get; set; }
[LocalizableAttribute(true)] 
public:
property bool ScrollAlwaysVisible {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_ScrollAlwaysVisible ()

/** @property */
public void set_ScrollAlwaysVisible (boolean value)
public function get ScrollAlwaysVisible () : boolean

public function set ScrollAlwaysVisible (value : boolean)

プロパティ値

垂直スクロール バーを常に表示する場合は true。それ以外の場合は false。既定値は false です。

解説

ScrollAlwaysVisible プロパティは、ListBox 内の項目数が垂直スクロール バーを表示するほどの数ではない場合でも、垂直スクロール バーを常に表示するかどうかを指定します。既定では、表示する項目数が多い場合にだけ、ListBox に垂直スクロール バーが表示されます。複数列の ListBox の場合、ScrollAlwaysVisible プロパティは、水平スクロール バーが表示されていることを示します。複数列の ListBox の場合、このプロパティの値に関係なく、垂直スクロール バーは表示されません。

使用例

DrawMode プロパティを OwnerDrawVariable 値に設定し、DrawItem イベントおよび MeasureItem イベントを処理して、オーナー描画の ListBox を作成するコード例を次に示します。また、この例では、BorderStyle プロパティおよび ScrollAlwaysVisible プロパティを設定し、AddRange メソッドを使用しています。

この例を実行するには、System.Drawing 名前空間と System.Windows.Forms 名前空間をインポートした空のフォームにこのコードを貼り付けます。次に、フォームのコンストラクタまたは Load のイベント処理メソッドで InitializeOwnerDrawnListBox を呼び出します。

Friend WithEvents ListBox1 As System.Windows.Forms.ListBox

Private Sub InitializeOwnerDrawnListBox()
    Me.ListBox1 = New System.Windows.Forms.ListBox

    ' Set the location and size.
    ListBox1.Location = New Point(20, 20)
    ListBox1.Size = New Size(240, 240)

    ' Populate the ListBox.ObjectCollection property 
    ' with several strings, using the AddRange method.
    Me.ListBox1.Items.AddRange(New Object() _
        {"System.Windows.Forms", "System.Drawing", "System.Xml", _
        "System.Net", "System.Runtime.Remoting", "System.Web"})

    ' Turn off the scrollbar.
    ListBox1.ScrollAlwaysVisible = False

    ' Set the border style to a single, flat border.
    ListBox1.BorderStyle = BorderStyle.FixedSingle

    ' Set the DrawMode property to the OwnerDrawVariable value. 
    ' This means the MeasureItem and DrawItem events must be 
    ' handled.
    ListBox1.DrawMode = DrawMode.OwnerDrawVariable
    Me.Controls.Add(Me.ListBox1)
End Sub


' Handle the DrawItem event for an owner-drawn ListBox.
Private Sub ListBox1_DrawItem(ByVal sender As Object, _
    ByVal e As DrawItemEventArgs) Handles ListBox1.DrawItem

    ' If the item is the selected item, then draw the rectangle filled in
    ' blue. The item is selected when a bitwise And of the State property
    ' and the DrawItemState.Selected property is true. 
    If (e.State And DrawItemState.Selected = DrawItemState.Selected) Then
        e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds)
    Else
        ' Otherwise, draw the rectangle filled in beige.
        e.Graphics.FillRectangle(Brushes.Beige, e.Bounds)
    End If

    ' Draw a rectangle in blue around each item.
    e.Graphics.DrawRectangle(Pens.Blue, e.Bounds)

    ' Draw the text in the item.
    e.Graphics.DrawString(Me.ListBox1.Items(e.Index), Me.Font, _
        Brushes.Black, e.Bounds.X, e.Bounds.Y)

    ' Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle()
End Sub

' Handle the MeasureItem event for an owner-drawn ListBox.
Private Sub ListBox1_MeasureItem(ByVal sender As Object, _
    ByVal e As MeasureItemEventArgs) Handles ListBox1.MeasureItem

    ' Cast the sender object back to ListBox type.
    Dim theListBox As ListBox = CType(sender, ListBox)

    ' Get the string contained in each item.
    Dim itemString As String = CType(theListBox.Items(e.Index), String)

    ' Split the string at the " . "  character.
    Dim resultStrings() As String = itemString.Split(".")

    ' If the string contains more than one period, increase the 
    ' height by ten pixels; otherwise, increase the height by 
    ' five pixels.
    If (resultStrings.Length > 2) Then
        e.ItemHeight += 10
    Else
        e.ItemHeight += 5
    End If

End Sub
internal System.Windows.Forms.ListBox ListBox1;

private void InitializeOwnerDrawnListBox()
{
    this.ListBox1 = new System.Windows.Forms.ListBox();

    // Set the location and size.
    ListBox1.Location = new Point(20, 20);
    ListBox1.Size = new Size(240, 240);

    // Populate the ListBox.ObjectCollection property 
    // with several strings, using the AddRange method.
    this.ListBox1.Items.AddRange(new object[]{"System.Windows.Forms", 
        "System.Drawing", "System.Xml", "System.Net", "System.Runtime.Remoting", 
        "System.Web"});

    // Turn off the scrollbar.
    ListBox1.ScrollAlwaysVisible = false;

    // Set the border style to a single, flat border.
    ListBox1.BorderStyle = BorderStyle.FixedSingle;

    // Set the DrawMode property to the OwnerDrawVariable value. 
    // This means the MeasureItem and DrawItem events must be 
    // handled.
    ListBox1.DrawMode = DrawMode.OwnerDrawVariable;
    ListBox1.MeasureItem += 
        new MeasureItemEventHandler(ListBox1_MeasureItem);
    ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem);
    this.Controls.Add(this.ListBox1);
    
}


// Handle the DrawItem event for an owner-drawn ListBox.
private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
{

    // If the item is the selected item, then draw the rectangle
    // filled in blue. The item is selected when a bitwise And  
    // of the State property and the DrawItemState.Selected 
    // property is true.
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
    {
        e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds);
    }
    else
    {
        // Otherwise, draw the rectangle filled in beige.
        e.Graphics.FillRectangle(Brushes.Beige, e.Bounds);
    }

    // Draw a rectangle in blue around each item.
    e.Graphics.DrawRectangle(Pens.Blue, e.Bounds);

    // Draw the text in the item.
    e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(),
        this.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y);

    // Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle();
}

// Handle the MeasureItem event for an owner-drawn ListBox.
private void ListBox1_MeasureItem(object sender, 
    MeasureItemEventArgs e)
{

    // Cast the sender object back to ListBox type.
    ListBox theListBox = (ListBox) sender;

    // Get the string contained in each item.
    string itemString = (string) theListBox.Items[e.Index];

    // Split the string at the " . "  character.
    string[] resultStrings = itemString.Split('.');

    // If the string contains more than one period, increase the 
    // height by ten pixels; otherwise, increase the height by 
    // five pixels.
    if (resultStrings.Length>2)
    {
        e.ItemHeight += 10;
    }
    else
    {
        e.ItemHeight += 5;
    }

}
internal:
   System::Windows::Forms::ListBox^ ListBox1;

private:
   void InitializeOwnerDrawnListBox()
   {
      this->ListBox1 = gcnew System::Windows::Forms::ListBox;
      
      // Set the location and size.
      ListBox1->Location = Point(20,20);
      ListBox1->Size = System::Drawing::Size( 240, 240 );
      
      // Populate the ListBox.ObjectCollection property 
      // with several strings, using the AddRange method.
      array<Object^>^temp0 = {"System.Windows.Forms","System.Drawing","System.Xml","System.Net","System.Runtime.Remoting","System.Web"};
      this->ListBox1->Items->AddRange( temp0 );
      
      // Turn off the scrollbar.
      ListBox1->ScrollAlwaysVisible = false;
      
      // Set the border style to a single, flat border.
      ListBox1->BorderStyle = BorderStyle::FixedSingle;
      
      // Set the DrawMode property to the OwnerDrawVariable value. 
      // This means the MeasureItem and DrawItem events must be 
      // handled.
      ListBox1->DrawMode = DrawMode::OwnerDrawVariable;
      ListBox1->MeasureItem += gcnew MeasureItemEventHandler( this, &Form1::ListBox1_MeasureItem );
      ListBox1->DrawItem += gcnew DrawItemEventHandler( this, &Form1::ListBox1_DrawItem );
      this->Controls->Add( this->ListBox1 );
   }

   // Handle the DrawItem event for an owner-drawn ListBox.
   void ListBox1_DrawItem( Object^ /*sender*/, DrawItemEventArgs^ e )
   {
      // If the item is the selected item, then draw the rectangle
      // filled in blue. The item is selected when a bitwise And  
      // of the State property and the DrawItemState.Selected 
      // property is true.
      if ( (e->State & DrawItemState::Selected) == DrawItemState::Selected )
      {
         e->Graphics->FillRectangle( Brushes::CornflowerBlue, e->Bounds );
      }
      else
      {
         
         // Otherwise, draw the rectangle filled in beige.
         e->Graphics->FillRectangle( Brushes::Beige, e->Bounds );
      }
      
      // Draw a rectangle in blue around each item.
      e->Graphics->DrawRectangle( Pens::Blue, e->Bounds );
      
      // Draw the text in the item.
      e->Graphics->DrawString( ListBox1->Items[ e->Index ]->ToString(), this->Font, Brushes::Black, (float)e->Bounds.X, (float)e->Bounds.Y );
      
      // Draw the focus rectangle around the selected item.
      e->DrawFocusRectangle();
   }


   // Handle the MeasureItem event for an owner-drawn ListBox.
   void ListBox1_MeasureItem( Object^ sender, MeasureItemEventArgs^ e )
   {
      
      // Cast the sender object back to ListBox type.
      ListBox^ theListBox = dynamic_cast<ListBox^>(sender);
      
      // Get the string contained in each item.
      String^ itemString = dynamic_cast<String^>(theListBox->Items[ e->Index ]);
      
      // Split the string at the " . "  character.
      array<Char>^temp1 = {'.'};
      array<String^>^resultStrings = itemString->Split( temp1 );
      
      // If the string contains more than one period, increase the 
      // height by ten pixels; otherwise, increase the height by 
      // five pixels.
      if ( resultStrings->Length > 2 )
      {
         e->ItemHeight += 10;
      }
      else
      {
         e->ItemHeight += 5;
      }
   }
private System.Windows.Forms.ListBox listBox1;

private void InitializeOwnerDrawnListBox()
{
    this.listBox1 = new System.Windows.Forms.ListBox();
    // Set the location and size.
    listBox1.set_Location(new Point(20, 20));
    listBox1.set_Size(new Size(240, 240));
    // Populate the ListBox.ObjectCollection property 
    // with several strings, using the AddRange method.
    this.listBox1.get_Items().AddRange(new Object[] { 
        "System.Windows.Forms", "System.Drawing", 
        "System.Xml", "System.Net", "System.Runtime.Remoting", 
        "System.Web" });
    // Turn off the scrollbar.
    listBox1.set_ScrollAlwaysVisible(false);
    // Set the border style to a single, flat border.
    listBox1.set_BorderStyle(BorderStyle.FixedSingle);
    // Set the DrawMode property to the OwnerDrawVariable value. 
    // This means the MeasureItem and DrawItem events must be 
    // handled.
    listBox1.set_DrawMode(DrawMode.OwnerDrawVariable);
    listBox1.add_MeasureItem(new MeasureItemEventHandler(
        listBox1_MeasureItem));
    listBox1.add_DrawItem(new DrawItemEventHandler(listBox1_DrawItem));
    this.get_Controls().Add(this.listBox1);
} //InitializeOwnerDrawnListBox

// Handle the DrawItem event for an owner-drawn ListBox.
private void listBox1_DrawItem(Object sender, DrawItemEventArgs e)
{
    // If the item is the selected item, then draw the rectangle
    // filled in blue. The item is selected when a bitwise And  
    // of the State property and the DrawItemState.Selected 
    // property is true.
    if ((e.get_State() & DrawItemState.Selected) 
        == DrawItemState.Selected) {
        e.get_Graphics().FillRectangle(Brushes.get_CornflowerBlue(), 
            e.get_Bounds());
    }
    else {
        // Otherwise, draw the rectangle filled in beige.
        e.get_Graphics().FillRectangle(Brushes.get_Beige(), 
            e.get_Bounds());
    }
    // Draw a rectangle in blue around each item.
    e.get_Graphics().DrawRectangle(Pens.get_Blue(), e.get_Bounds());
    // Draw the text in the item.
    e.get_Graphics().DrawString(listBox1.get_Items().get_Item(
        e.get_Index()).ToString(), this.get_Font(), 
        Brushes.get_Black(), e.get_Bounds().get_X(), 
        e.get_Bounds().get_Y());
    // Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle();
} //listBox1_DrawItem

// Handle the MeasureItem event for an owner-drawn ListBox.
private void listBox1_MeasureItem(Object sender, MeasureItemEventArgs e)
{
    // Cast the sender object back to ListBox type.
    ListBox theListBox = (ListBox) sender;
    // Get the string contained in each item.
    String itemString = (String)(theListBox.get_Items().
           get_Item(e.get_Index()));
    // Split the string at the " . "  character.
    String resultStrings[] = itemString.Split(new char[] { '.' });
    // If the string contains more than one period, increase the 
    // height by ten pixels; otherwise, increase the height by 
    // five pixels.
    if (resultStrings.length > 2) {
        e.set_ItemHeight(e.get_ItemHeight() + 10);
    }
    else {
        e.set_ItemHeight(e.get_ItemHeight() + 5);
    }
} //listBox1_MeasureItem

プラットフォーム

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

参照

関連項目

ListBox クラス
ListBox メンバ
System.Windows.Forms 名前空間
ListBox.HorizontalScrollbar プロパティ