各カテゴリの項目のリストボックスとリストボックスを作成しようとしています。最初のリストボックスでカテゴリを選択できるようにしたい場合、2番目のリストボックスが変更され、その特定のカテゴリのアイテムが表示されます。その非常に一般的な私はあなたが私がここで何を意味するのか理解できると確信しています。私はそれを見回していましたが、これをどうやって行うのか考えられませんでした。私は2つのリストボックスを作成しました。どんな助け?複数のリストボックスをリンクするC#
0
A
答えて
1
をlistbox2これはここに私のForm1.csが
namespace WinFormsApp
{
public partial class Form1 : Form
{
private List<Category> categories;
public Form1()
{
InitializeComponent();
categories = new List<Category>();
var categoryOne = new Category { Name = "Category 1"} ;
categoryOne.Items.Add(new CategoryItem { Name = "Item 1"});
var categoryTwo = new Category { Name = "Category 2" };
categoryTwo.Items.Add(new CategoryItem { Name = "Item 2" });
categories.Add(categoryOne);
categories.Add(categoryTwo);
}
private void Form1_Load(object sender, System.EventArgs e)
{
categoryBindingSource.DataSource = categories;
}
}
public class Category
{
public string Name { get; set; }
public List<CategoryItem> Items { get; private set; }
public Category()
{
Items = new List<CategoryItem>();
}
}
public class CategoryItem
{
public string Name { get; set; }
}
}
のように見えるものであるとはのInitializeComponent()のコード
です例えば this.listBox1.DataSource = this.categoryBindingSource;
this.listBox1.DisplayMember = "Name";
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(24, 24);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(242, 238);
this.listBox1.TabIndex = 0;
this.listBox1.ValueMember = "Items";
this.categoryBindingSource.DataSource = typeof(Category);
this.listBox2.DataSource = this.itemsBindingSource;
this.listBox2.FormattingEnabled = true;
this.listBox2.Location = new System.Drawing.Point(286, 24);
this.listBox2.Name = "listBox2";
this.listBox2.Size = new System.Drawing.Size(276, 238);
this.listBox2.TabIndex = 1;
this.listBox2.ValueMember = "Name";
this.itemsBindingSource.DataMember = "Items";
this.itemsBindingSource.DataSource = this.categoryBindingSource;
0
- 最初の内容に基づいて2番目のリストボックスを塗りつぶす関数があります。
- 最初のリストボックスの変更のためのイベントを追加し、#1例(簡体字)の作業
1
で説明funcion呼び出す:私は2つのリストボックスlistbox1を持つWinフォームを作成し、
private class CategoryItems
{
public string Category { get; set; }
public string Item { get; set; }
public CategoryItems(string category, string item)
{
this.Category = category;
this.Item = item;
}
public override string ToString()
{
return this.Item;
}
}
private List<string> categories = new List<string>();
private List<CategoryItems> catItems = new List<CategoryItems>();
private void Form1_Load(object sender, EventArgs e)
{
categories.Add("Cat 1");
categories.Add("Cat 2");
catItems.Add(new CategoryItems("Cat 1", "Cat 1 Item 1"));
catItems.Add(new CategoryItems("Cat 1", "Cat 1 Item 2"));
catItems.Add(new CategoryItems("Cat 2", "Cat 2 Item 1"));
catItems.Add(new CategoryItems("Cat 2", "Cat 2 Item 2"));
foreach (string cat in categories)
{
listBox1.Items.Add(cat);
}
listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox2.Items.Clear();
foreach (CategoryItems ci in catItems)
{
if (ci.Category == listBox1.SelectedItem.ToString())
listBox2.Items.Add(ci);
}
}
関連する問題
- 1. リストボックスからの複数選択C#
- 2. 複数列リストボックス
- 3. 複数のソースをリストボックスにバインドする
- 4. 複数選択リストボックス
- 5. WPFの複数列リストボックス
- 6. リストオブジェクトをクリックし、別のリストボックスに他の複数のリストオブジェクトを表示するC#
- 7. WPFリストボックス複数選択バインド
- 8. 4つのリストボックスをリンクする
- 9. 複数のリンクされたCランタイムをウィンドウで検出する
- 10. C#Windowsフォームアプリケーション:複数のフォーム間でテキストボックスにメソッドをリンクする
- 11. Android.mkに複数の.cファイルをリンクする
- 12. C# - 複数のディレクトリを設定に保存してリストボックスにロードする
- 13. 複数のコントロールを持つリストボックス
- 14. リストボックスの複数の選択問題
- 15. WPFリストボックスのレイアウト:複数の列
- 16. リストボックス項目の複数のコントロール
- 17. 複数のリストボックスの代替案
- 18. DevExpress複数のリストボックスLostFocusカラー効果
- 19. 複数のリストボックスと挿入フォーム
- 20. 複数のリンクを表示するjavascript
- 21. 複数のasp.NETマルチビューをリンクする
- 22. mysqlpp_d.libをリンクする複数の問題
- 23. 複数のドメインをサーバーにリンクする
- 24. 複数のMATLAB GUIをリンクする
- 25. 複数の列を持つリストボックスにアイテムを追加する
- 26. 複数のデータグリッドを保持するリストボックスの作成
- 27. 複数のフィールドをASP.NETのリストボックスにバインドする
- 28. リストボックス内の複数項目をwpfで選択する#
- 29. リストボックスから複数の値を取得する
- 30. 複数の選択リストボックスを投稿から保存する
感謝。私はまた、そのlistbox2の項目にコードでアクセスし、内容を設定する必要があります。あなたの方法では、リストボックス2内の項目を処理することはできません。なぜなら、それらはただちに作成されていて、コードで設定されていないからです。 amm申し訳ありませんが、私の英語はうまくいかず、説明するのが難しいですが、それはあなたにとって理にかなっていますか? – Yosi199
@ user933977例を更新しました。これを行うさまざまな方法には、DataBindings、LINQなどがあります。扱うデータを示すためのコードを提供していないので、簡単な例を作成しようとしました。 – LarsTech