Help and Support

文書番号: 327555 - 最終更新日: 2007年5月11日 - リビジョン: 3.5

BUG: テキスト プロパティ データ連結コンボ ボックスの不適切な値を返すコード内で値を設定すると

目次

すべて展開する | すべて折りたたむ

現象

コンボ ボックス (ComboBox) コントロールのデータ バインディング メンバーの テキスト プロパティをプログラムで設定した場合、 コンボ ボックス (ComboBox) コントロール のテキスト ボックス部分に入力した値が期待どおり表示されます。 ただし、 Text プロパティと SelectedIndex プロパティ、最後に、テキスト ボックスに入力する値を返すのではなくリスト ボックスで選択された項目値を返す誤って。

入力すると実行時に、 コンボ ボックス (ComboBox) コントロール に、 Text プロパティに型指定された値を返し、 SelectedIndex -1 の値を返します。

解決方法

この問題を解決するには、 SelectedIndex プロパティを -1 に、 コンボ ボックス (ComboBox) コントロール 、次の例でとしてのデータ バインディング メンバーの Text プロパティを設定する前に設定します。

Visual Basic .NET

ComboBox1.SelectedIndex = -1
ComboBox1.Text = "My Text"
				

Visual C# .NET

ComboBox1.SelectedIndex = -1;
ComboBox1.Text = "My Text";
				
: Text プロパティ、 コンボ ボックス (ComboBox) コントロール のデータ バインディング メンバーを選択する使用しない作業します。 SelectedIndex 項目のインデックスを設定、表示するリスト内の項目を検索してください。 Text プロパティを設定する操作を行います必要はありません。

たとえば、 DisplayMember プロパティと、 コンボ ボックス (ComboBox) コントロール ValueMember プロパティをリストに連結する場合、1 〜 10、数値を含むし、コンボ ボックス、テキスト ボックスに番号 5 を表示し SelectedIndex プロパティを" 5 "に設定する必要があります] で選択した 5 を表示します。

状況

マイクロソフトをこのとして認識しています、Microsoft のバグこの資料の冒頭に記載されている製品です。

詳細

動作を再現する手順

  1. 新しい Visual Basic .NET または Visual Basic 2005 の Windows アプリケーションを作成します。

    既定では、Form1 が作成されます。
  2. \fbox コマンドを追加、 テキスト ボックス (TextBox) コントロール コントロールを追加しを Form1 に ボタン コントロールを追加します。
  3. Form1 上でコード ウィンドウを開きます。
  4. 次のコードを Windows フォーム デザイナーで生成されたコード セクションの下に、コード ウィンドウに貼り付けます:
        Private Sub Form1_Load(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load
            ' Create a DataTable on which to bind the ComboBox.
            Dim myDT As New DataTable()
    
            Dim myCOL1 As DataColumn = New DataColumn()
            Dim myCOL2 As DataColumn = New DataColumn()
    
            myCOL1.ColumnName = "ContactName"
            myCOL2.ColumnName = "ContactID"
    
            myCOL1.DataType = System.Type.GetType("System.String")
            myCOL2.DataType = System.Type.GetType("System.Int32")
    
            myDT.Columns.Add(myCOL1)
            myDT.Columns.Add(myCOL2)
    
            ' Populate the DataTable.
            Dim myDR As DataRow
    
            myDR = myDT.NewRow
            myDR.Item(0) = "North"
            myDR.Item(1) = 0
            myDT.Rows.Add(myDR)
    
            myDR = myDT.NewRow()
            myDR.Item(0) = "South"
            myDR.Item(1) = 1
            myDT.Rows.Add(myDR)
    
            myDR = myDT.NewRow()
            myDR.Item(0) = "East"
            myDR.Item(1) = 2
            myDT.Rows.Add(myDR)
    
            ' Bind the ComboBox.
            ComboBox1.DataSource = myDT
            ComboBox1.DisplayMember = "ContactName"
            ComboBox1.ValueMember = "ContactID"
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
            ComboBox1.Text = "Hello!"
            MessageBox.Show(ComboBox1.Text)
        End Sub
    					
    メモ Visual Basic 2005 でコードを変更する必要があります。 既定で Visual Basic は、Windows フォーム プロジェクトを作成すると、プロジェクトの 2 つのファイルを作成します。 フォーム Form1 という名前は、場合、フォームを表す 2 つのファイル、Form1.vb と Form1.Designer.vb の名前です。 Form1.vb ファイルにコードを記述するとします。 Windows フォーム デザイナーは、Form1.Designer.vb ファイルにコードを記述します。 Windows フォーム デザイナーでは、部分的なキーワードを使用して Form1 の実装を別々 のファイルに分割をします。 この現象、デザイナーで生成されたコードがコードに散在していてできなくなります。

    Visual Basic 2005 の新しい言語拡張機能の詳細については、ご覧次マイクロソフト開発者向けネットワーク (MSDN) 下さい。
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx (http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx)
    部分クラスと、Windows フォーム デザイナーの詳細についてには次 MSDN Web サイトを参照してください。
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx (http://msdn2.microsoft.com/en-us/library/ms171843.aspx)
  5. アプリケーションを実行し、[ ボタン コントロールをクリックします。

    テキスト のプロパティ値が返されるが、 コンボ ボックス (ComboBox) コントロール で、[選択した項目と等しいあり、プログラムによって設定された値と等しくはありません。

この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.1
  • Microsoft Visual Basic 2005 Express Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
キーワード:?
kbmt kbvs2005applies kbvs2005swept kbvs2002sp1sweep kbbug KB327555 KbMtja
機械翻訳機械翻訳
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:327555? (http://support.microsoft.com/kb/327555/en-us/ )
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

サポート技術情報の翻訳