我習慣於使用HTML應用程序,其中不存在創建組件列表(如電話簿聯繫人)的問題。在WindowsForms中使用大量的UserControl
現在我已經使用Windows窗體此方法。一個面板被填充大量的自定義UserControl(UC)。只有30個用戶控件需要5秒以上的渲染。而來自數據庫的數據列表將返回< 1秒。
此UC只有標籤,PictureBox和Click事件。這就是所謂的。這些數據用於填充子控件。
new UserControl(MyModel data);
有沒有一種方法可以做到這一點?我想有用戶友好的圖形用戶界面,而不是使用網格佈局。在數據如何顯示給用戶方面,它不是用戶友好的,而且非常有限。
foreach (var data in myDbResult)
{
var uc = new MyUserControl(data);
uc.Dock = DockStyle.Top;
resultFlowPanel.Controls.Add(uc);
}
...
public MyUserControl(MyModel data)
{
this.data = data;
InitializeComponent();
label1.Text = data.name;
label2.Text = data.address;
// get some more data from database
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["AlarmDbCon"].ConnectionString))
{
payer = db.Query<Models.g_UserPayer>("SELECT TOP(1) * FROM g_UserPayer WHERE ID_User[email protected]", new
{
UserID = guard.ID_User
}).FirstOrDefault();
}
label3.Text = payer.email;
PictureBox.Image = payer.image;
}
顯示代碼,填充UI的位置。爲什麼網格佈局不友好和有限? C#不是HTML,Grid不是表格 –
它取決於我,我首先從'Control'繼承並自己繪製控件。創建一個用戶控件將會輕很多。 – series0ne
正如我所知道的那樣,網格佈局只能像查看一樣在表格中顯示數據?這是不可能的[鏈接](https://i.stack.imgur.com/RPf9z.png) –