ListBox.ScrollAlwaysVisible-Eigenschaft
Ruft einen Wert ab, der angibt, ob die vertikale Bildlaufleiste immer angezeigt wird, oder legt diesen fest.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
<LocalizableAttribute(True)> _
Public Property ScrollAlwaysVisible As Boolean
'Usage
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)
Eigenschaftenwert
true, wenn die vertikale Bildlaufleiste immer angezeigt werden soll, andernfalls false. Der Standardwert ist false.
Hinweise
Die ScrollAlwaysVisible-Eigenschaft gibt an, ob immer eine vertikale Bildlaufleiste angezeigt werden soll, also auch dann, wenn die Anzahl der Elemente in der ListBox ein Anzeigen der vertikalen Bildlaufleiste nicht erfordert. Standardmäßig wird in einer ListBox nur dann eine vertikale Bildlaufleiste angezeigt, wenn die Anzahl der Elemente dies erfordert. Für mehrspaltige ListBox gibt die ScrollAlwaysVisible-Eigenschaft an, dass eine horizontale Bildlaufleiste angezeigt wird. Unabhängig vom Wert dieser Eigenschaft für eine mehrspaltige ListBox wird nie eine vertikale Bildlaufleiste angezeigt.
Beispiel
Im folgenden Codebeispiel wird eine Ownerdrawn-ListBox durch Festlegen der DrawMode-Eigenschaft auf den OwnerDrawVariable-Wert und durch Behandeln der DrawItem-Eigenschaft und der MeasureItem-Eigenschaft veranschaulicht. Außerdem werden das Festlegen der BorderStyle-Eigenschaft und der ScrollAlwaysVisible-Eigenschaft sowie das Verwenden der AddRange-Methode dargestellt.
Wenn Sie das Beispiel ausführen möchten, fügen Sie es in ein leeres Formular ein, in das der System.Drawing-Namespace und der System.Windows.Forms-Namespace importiert werden. Rufen Sie InitializeOwnerDrawnListBox
im Konstruktor oder in der Load-Ereignisbehandlungsmethode des Formulars auf.
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
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
ListBox-Klasse
ListBox-Member
System.Windows.Forms-Namespace
ListBox.HorizontalScrollbar-Eigenschaft