无法绑定 WINFORM 事件tabControl1_Selected列表中的列表框
本文关键字:列表 Selected tabControl1 绑定 WINFORM 事件 | 更新日期: 2023-09-27 18:17:46
MainForm.cs
public MainForm()
{
InitializeComponent();
tabControl1.Selected += new TabControlEventHandler(tabControl1_Selected);
}
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
//bind listbox
MyUserControl obj = new MyUserControl();
obj.LoadListBox();
obj.Refresh();
}
在 MyUserControl 中.cs
public void LoadListBox()
{
listBox1.Items.AddRange(JsonConvert.DeserializeObject <object[]> (File.ReadAllText("MyData.json")));
}
为什么不刷新或绑定?在调试模式下,它显示数据但不显示在 UI 窗体上,有什么线索吗?
应将用户控件实例添加到 winform。
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
//bind listbox
MyUserControl obj = new MyUserControl();
obj.LoadListBox();
obj.Refresh();
this.Controls.Add(obj); //Add control instance to the winform.
}
我建议在窗体中添加一个Panel
控件,并将用户控件添加到此面板。在添加用户控件之前,需要清除面板。但这取决于您的要求。也许您不需要每次都添加控件。所以你应该相应地编写你的代码。
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
//I guess you have a Panel control named as pnl.
pnl.Controls.Clear(); //Clear all child control from panel.
MyUserControl obj = new MyUserControl();
obj.LoadListBox();
obj.Refresh();
pnl.Controls.Add(obj); //Add control instance to the panel.
}