0
リストボックスに問題があります:項目の追加や削除などのデータを変更すると、項目は見えなくなりますが、 (私のマウスがマウスを動かしたときに一種のツールチップを作ったので、私はそれを見ることができます)。リストボックスの項目データを更新する際の非表示項目(winform)
リストボックスの目的は、ユーザーがコンボボックスでフォルダを選択したときのシーン(ファイルなど)のリストを表示することです。ここで
は私のコードです:
public partial class FormScenario : Form
{
BindingList<Folder> blFolders = new BindingList<Folder>();
BindingList<Scene> blScenes = new BindingList<Scene>();
public FormScenario(FormMainPanel fParent)
{
InitializeComponent();
FParent = fParent;
}
public void Refresh_blScenes()
{
lb_scenes.DataSource = null;
lb_scenes.Items.Clear();
lb_scenes.DataSource = this.blScenes;
lb_scenes.DisplayMember = "SceneName";
//attempt to fix the bug ... not working
lb_scenes.DrawMode = DrawMode.Normal;
lb_scenes.DrawMode = DrawMode.OwnerDrawFixed;
}
public void Populate_Scene_Datas()
{
blScenes.Clear();
Folder fol = (Folder)cb_listfolders.SelectedItem;
if (fol != null){
foreach (Scene sce in fol.ListScenes){
this.blScenes.Add(sce);
}
}
}
}
それが有用であるならば、私のオブジェクトがあります:
class Folder
{
public Int32 IdFolder { get; set; }
public String FolderName { get; set; }
public String FolderInfo { get; set; }
// contains the list to show in the listbox
public List<Scene> ListScenes = new List<Scene>();
}
class Scene
{
public Int32 IdScene { get; set; }
public String SceneName { get; set; }
public byte[] SceneDesc { get; set; }
public byte[] SceneInfo { get; set; }
}
私は次の順序でこれらの関数を使用します。
Populate_Scene_Datas();
Refresh_blScenes();
場合誰かがこの問題で私にヒントや答えを与えてくれれば、とても役に立つでしょう!
ありがとう!
はあなたが表示部材と、選択した値のプロパティを設定しようとした
私はこれを変更しています。 –
データを追加または削除するときに** Populate_Scene_Datas()**関数を呼び出さなければならないと思います。 –
@VickyS私はDisplaymemberを設定しましたが(私のポストで見ることができます)、selectedvalueではありません...試してみます! – Sanno