機能を追加するだけの場合は、拡張機能を追加してこの機能を追加することもできます。ここでは、GetSelectItemsをCSV文字列に、AddListItemsを文字列配列に変換する2つの簡単な例を示します。
public static string GetSelectedItems(this ListBox lbox)
{
List<string> selectedValues = new List<string>();
int[] selectedIndeces = lbox.GetSelectedIndices();
foreach (int i in selectedIndeces)
selectedValues.Add(lbox.Items[i].Value);
return String.Join(",",selectedValues.ToArray());
}
public static void SetSelectedItems(this ListBox lbox, string[] values)
{
foreach (string value in values)
{
lbox.Items[lbox.Items.IndexOf(lbox.Items.FindByValue(value))].Selected = true;
}
}
public static void AddListItems(this ListBox lbox, string[] values)
{
foreach (string value in values)
{
ListItem item = new ListItem(value);
lbox.Items.Add(item);
}
}
素晴らしい!ありがとうございました! – tHeSiD
ザック、私がリストボックスの作成を言ったとき、私はリストボックス内のデータを選択することを意味しました。たとえば、リストボックスに シカゴ ニューヨーク ダラス サンフランシスコ 私の訪問した都市はダラスとシカゴです。私はそれらをデータベースから取得し、フォームをロードすると、シカゴとダラスをリストボックスで選択します。 – tHeSiD
CSV文字列を使い、文字列[]を文字列に変更し、文字列配列に変換するために入力にString.Split( '、')を実行する場合は、上記の例にSetSelectedItemsを追加しました。 – Zachary