ComboBox.SelectedIndexChanged ComboBox.SelectedIndexChanged ComboBox.SelectedIndexChanged ComboBox.SelectedIndexChanged Event

정의

SelectedIndex 속성이 변경되면 발생합니다.Occurs when the SelectedIndex property has changed.

public:
 event EventHandler ^ SelectedIndexChanged;
public event EventHandler SelectedIndexChanged;
member this.SelectedIndexChanged : EventHandler 
Public Custom Event SelectedIndexChanged As EventHandler 

예제

다음 코드 예제에는 초기화 하는 방법을 보여 줍니다.를 ComboBox 설정 하 여 컨트롤을 MaxDropDownItemsDropDownStyle 속성 및 사용 하 여를 FindStringExact 검색 하는 메서드는 ComboBox.The following code example demonstrates how to initialize a ComboBox control by setting the MaxDropDownItems and DropDownStyle properties and using the FindStringExact methods to search the ComboBox. 또한 처리를 보여 줍니다는 SelectedIndexChanged 이벤트입니다.It also shows handling the SelectedIndexChanged event.

#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>

using namespace System::Windows::Forms;
using namespace System;

public ref class Form1: public System::Windows::Forms::Form
{
public:
   Form1() : Form()
   {
      InitializeComboBox();
      InitializeTextBox();
      this->Label1 = gcnew System::Windows::Forms::Label;
      this->SuspendLayout();
      this->Label1->Location = System::Drawing::Point( 8, 24 );
      this->Label1->Name = "Label1";
      this->Label1->Size = System::Drawing::Size( 120, 32 );
      this->Label1->TabIndex = 1;
      this->Label1->Text = "Use drop-down to choose a name:";
      this->Label1->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
      this->ClientSize = System::Drawing::Size( 292, 266 );
      this->Controls->Add( this->Label1 );
      this->Name = "Form1";
      this->Text = "Form1";
      this->ResumeLayout( false );
   }

internal:
   System::Windows::Forms::Label ^ Label1;

   // Declare and initialize the text box.
internal:
   // This text box text will be update programmatically. The user is not 
   // allowed to update it, so the ReadOnly property is set to true.
   System::Windows::Forms::TextBox^ TextBox1;

private:
   void InitializeTextBox()
   {
      this->TextBox1 = gcnew System::Windows::Forms::TextBox;
      this->TextBox1->ScrollBars = ScrollBars::Vertical;
      this->TextBox1->Location = System::Drawing::Point( 64, 128 );
      this->TextBox1->Multiline = true;
      this->TextBox1->Name = "TextBox1";
      this->TextBox1->ReadOnly = true;
      this->TextBox1->Size = System::Drawing::Size( 184, 120 );
      this->TextBox1->TabIndex = 4;
      this->TextBox1->Text = "Employee and Number of Awards:";
      this->Controls->Add( this->TextBox1 );
   }

   // Declare comboBox1 as a ComboBox.
internal:
   System::Windows::Forms::ComboBox^ ComboBox1;

private:
   // This method initializes the combo box, adding a large string array
   // but limiting the drop-down size to six rows so the combo box doesn't 
   // cover other controls when it expands.
   void InitializeComboBox()
   {
      this->ComboBox1 = gcnew System::Windows::Forms::ComboBox;
      array<String^>^ employees = {"Hamilton, David","Hensien, Kari",
         "Hammond, Maria","Harris, Keith","Henshaw, Jeff D.",
         "Hanson, Mark","Harnpadoungsataya, Sariya",
         "Harrington, Mark","Harris, Keith","Hartwig, Doris",
         "Harui, Roger","Hassall, Mark","Hasselberg, Jonas",
         "Harnpadoungsataya, Sariya","Henshaw, Jeff D.",
         "Henshaw, Jeff D.","Hensien, Kari","Harris, Keith",
         "Henshaw, Jeff D.","Hensien, Kari","Hasselberg, Jonas",
         "Harrington, Mark","Hedlund, Magnus","Hay, Jeff",
         "Heidepriem, Brandon D."};
      ComboBox1->Items->AddRange( employees );
      this->ComboBox1->Location = System::Drawing::Point( 136, 32 );
      this->ComboBox1->IntegralHeight = false;
      this->ComboBox1->MaxDropDownItems = 5;
      this->ComboBox1->DropDownStyle = ComboBoxStyle::DropDownList;
      this->ComboBox1->Name = "ComboBox1";
      this->ComboBox1->Size = System::Drawing::Size( 136, 81 );
      this->ComboBox1->TabIndex = 0;
      this->Controls->Add( this->ComboBox1 );
      
      // Associate the event-handling method with the 
      // SelectedIndexChanged event.
      this->ComboBox1->SelectedIndexChanged +=
         gcnew System::EventHandler( this, &Form1::ComboBox1_SelectedIndexChanged );
   }

private:
   // This method is called when the user changes his or her selection.
   // It searches for all occurrences of the selected employee's
   // name in the Items array and adds the employee's name and 
   // the number of occurrences to TextBox1.Text.

   // CAUTION   This code exposes a known bug: If the index passed to the 
   // FindStringExact(searchString, index) method is the last index 
   // of the array, the code throws an exception.
   void ComboBox1_SelectedIndexChanged( Object^ sender,
      System::EventArgs^ e )
   {
      ComboBox^ comboBox = (ComboBox^)(sender);
      
      // Save the selected employee's name, because we will remove
      // the employee's name from the list.
      String^ selectedEmployee = (String^)(ComboBox1->SelectedItem);

      int count = 0;
      int resultIndex = -1;
      
      // Call the FindStringExact method to find the first 
      // occurrence in the list.
      resultIndex = ComboBox1->FindStringExact( selectedEmployee );
      
      // Remove the name as it is found, and increment the found count. 
      // Then call the FindStringExact method again, passing in the 
      // index of the current found item so the search starts there 
      // instead of at the beginning of the list.
      while ( resultIndex != -1 )
      {
         ComboBox1->Items->RemoveAt( resultIndex );
         count += 1;
         resultIndex = ComboBox1->FindStringExact( selectedEmployee,
            resultIndex );
      }

      TextBox1->Text = TextBox1->Text + "\r\n" + selectedEmployee + ": " +
         count;
   }
};

int main()
{
   Application::Run( gcnew Form1 );
}
using System.Windows.Forms;

public class Form1:
    System.Windows.Forms.Form

{
    public Form1() : base()
    {        
        InitializeComboBox();
        InitializeTextBox();
        this.Label1 = new System.Windows.Forms.Label();
        this.SuspendLayout();
        this.Label1.Location = new System.Drawing.Point(8, 24);
        this.Label1.Name = "Label1";
        this.Label1.Size = new System.Drawing.Size(120, 32);
        this.Label1.TabIndex = 1;
        this.Label1.Text = "Use drop-down to choose a name:";
        this.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
        this.ClientSize = new System.Drawing.Size(292, 266);
        this.Controls.Add(this.Label1);
        this.Name = "Form1";
        this.Text = "Form1";
        this.ResumeLayout(false);
    }

    public static void Main()
    {
        Application.Run(new Form1());
    }

   
    internal System.Windows.Forms.Label Label1;
    
    
    

    // Declare and initialize the text box.
    // This text box text will be update programmatically. The user is not 
    // allowed to update it, so the ReadOnly property is set to true.
    internal System.Windows.Forms.TextBox TextBox1;

    private void InitializeTextBox()
    {
        this.TextBox1 = new System.Windows.Forms.TextBox();
        this.TextBox1.ScrollBars = ScrollBars.Vertical;
        this.TextBox1.Location = new System.Drawing.Point(64, 128);
        this.TextBox1.Multiline = true;
        this.TextBox1.Name = "TextBox1";
        this.TextBox1.ReadOnly = true;
        this.TextBox1.Size = new System.Drawing.Size(184, 120);
        this.TextBox1.TabIndex = 4;
        this.TextBox1.Text = "Employee and Number of Awards:";
        this.Controls.Add(this.TextBox1);
    }

    // Declare comboBox1 as a ComboBox.
    internal System.Windows.Forms.ComboBox ComboBox1;
    
    // This method initializes the combo box, adding a large string array
    // but limiting the drop-down size to six rows so the combo box doesn't 
    // cover other controls when it expands.
    private void InitializeComboBox()
    {
        this.ComboBox1 = new System.Windows.Forms.ComboBox();
        string[] employees = new string[]{"Hamilton, David", "Hensien, Kari",
                "Hammond, Maria", "Harris, Keith", "Henshaw, Jeff D.", 
                "Hanson, Mark", "Harnpadoungsataya, Sariya", 
                "Harrington, Mark", "Harris, Keith", "Hartwig, Doris", 
                "Harui, Roger", "Hassall, Mark", "Hasselberg, Jonas", 
                "Harnpadoungsataya, Sariya", "Henshaw, Jeff D.", 
                "Henshaw, Jeff D.", "Hensien, Kari", "Harris, Keith", 
                "Henshaw, Jeff D.", "Hensien, Kari", "Hasselberg, Jonas",
                "Harrington, Mark", "Hedlund, Magnus", "Hay, Jeff", 
                "Heidepriem, Brandon D."};

        ComboBox1.Items.AddRange(employees);
        this.ComboBox1.Location = new System.Drawing.Point(136, 32);
        this.ComboBox1.IntegralHeight = false;
        this.ComboBox1.MaxDropDownItems = 5;
        this.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
        this.ComboBox1.Name = "ComboBox1";
        this.ComboBox1.Size = new System.Drawing.Size(136, 81);
        this.ComboBox1.TabIndex = 0;
        this.Controls.Add(this.ComboBox1);
        
        // Associate the event-handling method with the 
        // SelectedIndexChanged event.
        this.ComboBox1.SelectedIndexChanged += 
            new System.EventHandler(ComboBox1_SelectedIndexChanged);
    }

    // This method is called when the user changes his or her selection.
    // It searches for all occurrences of the selected employee's
    // name in the Items array and adds the employee's name and 
    // the number of occurrences to TextBox1.Text.

    // CAUTION   This code exposes a known bug: If the index passed to the 
    // FindStringExact(searchString, index) method is the last index 
    // of the array, the code throws an exception.
    private void ComboBox1_SelectedIndexChanged(object sender, 
        System.EventArgs e)
    {

        ComboBox comboBox = (ComboBox) sender;

        // Save the selected employee's name, because we will remove
        // the employee's name from the list.
        string selectedEmployee = (string) ComboBox1.SelectedItem;

        int count = 0;
        int resultIndex = -1;

        // Call the FindStringExact method to find the first 
        // occurrence in the list.
        resultIndex = ComboBox1.FindStringExact(selectedEmployee);

        // Remove the name as it is found, and increment the found count. 
        // Then call the FindStringExact method again, passing in the 
        // index of the current found item so the search starts there 
        // instead of at the beginning of the list.
        while (resultIndex!=-1)
        {
            ComboBox1.Items.RemoveAt(resultIndex);
            count += 1;
            resultIndex = ComboBox1.FindStringExact(selectedEmployee, 
                resultIndex);
        }
        // Update the text in Textbox1.
        TextBox1.Text = TextBox1.Text+ "\r\n" + selectedEmployee + ": "
            + count;
    }

}
Imports System.Windows.Forms

Public Class Form1
    Inherits System.Windows.Forms.Form

    Public Sub New()
        MyBase.New()
        InitializeComboBox()
        InitializeTextBox()
        Me.Label1 = New System.Windows.Forms.Label
        Me.SuspendLayout()
        Me.Label1.Location = New System.Drawing.Point(8, 24)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(120, 32)
        Me.Label1.TabIndex = 1
        Me.Label1.Text = "Use drop-down to choose a name:"
        Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.Add(Me.Label1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
    End Sub

    Shared Sub Main()
        Application.Run(New Form1)
    End Sub

   
    Friend WithEvents Label1 As System.Windows.Forms.Label
    
    
    

    ' Declare and initialize the text box.
    ' This text box text will be update programmatically. The user is not 
    ' allowed to update it, so the ReadOnly property is set to true.
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox

    Private Sub InitializeTextBox()
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.TextBox1.ScrollBars = ScrollBars.Vertical
        Me.TextBox1.Location = New System.Drawing.Point(64, 128)
        Me.TextBox1.Multiline = True
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.ReadOnly = True
        Me.TextBox1.Size = New System.Drawing.Size(184, 120)
        Me.TextBox1.TabIndex = 4
        Me.TextBox1.Text = "Employee and Number of Awards:"
        Me.Controls.Add(Me.TextBox1)
    End Sub


    ' Declare comboBox1 as a ComboBox.
    Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox

    ' This method initializes the combo box, adding a large string 
    ' array but limiting the drop-down size to six rows so the combo box
    ' doesn't cover other controls when it expands.
    Private Sub InitializeComboBox()
        Me.ComboBox1 = New System.Windows.Forms.ComboBox
        Dim employees() As String = New String() {"Hamilton, David", _
            "Hensien, Kari", "Hammond, Maria", "Harris, Keith", _
            "Henshaw, Jeff D.", "Hanson, Mark", "Harnpadoungsataya, Sariya", _
            "Harrington, Mark", "Harris, Keith", "Hartwig, Doris", _
            "Harui, Roger", "Hassall, Mark", "Hasselberg, Jonas", _
            "Harnpadoungsataya, Sariya", "Henshaw, Jeff D.", "Henshaw, Jeff D.", _
            "Hensien, Kari", "Harris, Keith", "Henshaw, Jeff D.", _
            "Hensien, Kari", "Hasselberg, Jonas", "Harrington, Mark", _
            "Hedlund, Magnus", "Hay, Jeff", "Heidepriem, Brandon D."}

        ComboBox1.Items.AddRange(employees)
        Me.ComboBox1.Location = New System.Drawing.Point(136, 32)
        Me.ComboBox1.IntegralHeight = False
        Me.ComboBox1.MaxDropDownItems = 5
        Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDown
        Me.ComboBox1.Name = "ComboBox1"
        Me.ComboBox1.Size = New System.Drawing.Size(136, 81)
        Me.ComboBox1.TabIndex = 0
        Me.Controls.Add(Me.ComboBox1)
    End Sub



    ' This method is called when the user changes his or her selection.
    ' It searches for all occurrences of the selected employee's
    ' name in the Items array and adds the employee's name and 
    ' the number of occurrences to TextBox1.Text.

    ' CAUTION   This code exposes a known bug: If the index passed to the 
    ' FindStringExact(searchString, index) method is the last index 
    ' of the array, the code throws an exception.
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim comboBox As comboBox = CType(sender, comboBox)

        ' Save the selected employee's name, because we will remove
        ' the employee's name from the list.
        Dim selectedEmployee = CType(ComboBox1.SelectedItem, String)

        Dim count As Integer = 0
        Dim resultIndex As Integer = -1

        ' Call the FindStringExact method to find the first 
        ' occurrence in the list.
        resultIndex = ComboBox1.FindStringExact(ComboBox1.SelectedItem)

        ' Remove the name as it is found, and increment the found count. 
        ' Then call the FindStringExact method again, passing in the index of the
        ' current found item so the search starts there instead of 
        ' at the beginning of the list.
        While (resultIndex <> -1)
            ComboBox1.Items.RemoveAt(resultIndex)
            count += 1
            resultIndex = ComboBox1.FindStringExact _
            (selectedEmployee, resultIndex)
        End While

        ' Update the text in Textbox1.
        TextBox1.Text = TextBox1.Text & Microsoft.VisualBasic.vbCrLf _
            & selectedEmployee & ": " & count
    End Sub

End Class

설명

시기를 확인 하려면이 이벤트에 대 한 이벤트 처리기를 만들 수 있습니다의 선택한 인덱스를 ComboBox 변경 되었습니다.You can create an event handler for this event to determine when the selected index in the ComboBox has been changed. 현재 선택 영역을 기반으로 다른 컨트롤에서 정보를 표시 해야 할 때 유용할 수 있습니다는 ComboBox합니다.This can be useful when you need to display information in other controls based on the current selection in the ComboBox. 다른 컨트롤에서 정보를 로드 하려면이 이벤트에 대 한 이벤트 처리기를 사용할 수 있습니다.You can use the event handler for this event to load the information in the other controls.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.For more information about handling events, see Handling and Raising Events.

적용 대상