気になった事を自由に書いてます。
      
あれ?コンボボックスでエラーが!
なんだこれ?という現象に出会ったのでメモします。

なんでこんな操作するの?というのは置いといて再現手順はこんな感じです。
1.コンボボックスに項目を追加します。
2.コンボボックスの項目を全削除(Clearメソッドを呼び出す)。
3.コンボボックス上で右クリックを押しながら、クリックする。

すると、
'0' の InvalidArgument=Value は 'index' に対して有効ではありません。
パラメータ名: index
この現象はコンボボックスの項目を全削除した後しか発生しません。
1回でもリストを表示すると以降は発生しないみたいです。

コンボボックスに項目があります。

コンボボックスの項目を全削除。

右クリックを押しながらクリックする

あれ?コンボボックスでエラーが!

テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace HP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("アイテム1");
            comboBox1.Text = "アイテム1";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            comboBox1.Items.Clear();
            comboBox1.Text = string.Empty;
            // ↓アイテムを一つ追加すると発生しなくなった。
            // comboBox1.Items.Add(string.Empty);
        }
    }
}

コンボボックスの中身を入れ替えを行うプログラムのテストで偶然発見
しました。当初は自身のプログラムの不具合だと思っていたんですが
よくわかりません^^;

原因を特定できてないので回避策はこれでよいと言えませんが
Clearメソッドの後に空の文字列を追加すると発生しなくなりました。
      




「ダラダラ癖」から抜け出すための10の法則
メリル・E・ダグラス
¥ 1,575

Effective C# 4.0
ビル・ワグナー
¥ 3,780



Copyright (C) 2011 - 2017 猫の気ままなC#日記