【发布时间】:2019-11-02 19:35:04
【问题描述】:
我创建了一个联系人管理器。用户已经可以输入一些,它们存储在一个文件中,并在程序启动时重新打开。每个联系人都是我的 Person 类的一个对象。
在启动程序时(在 Load() 中)我创建了一个 for 循环,直到所有联系人都被探索完(联系人在 Person 表中打开时存储)
所以现在我来解决我的问题:
我有一个可滚动的面板(我已启用该选项),我希望每 50 个像素高度创建一个新面板,其中包含我的联系人的姓名、名字、电子邮件和电话号码以及一个图片框。
除了,我希望能够动态地执行它,而不是创建相同的东西超过 50 次并重复相同的代码 50 次
因为目前我已经这样做了:
for(int i = 0; i < contacts.Count; i++) //Afficher les contacts
{
if(!panel_contact1.Visible)
{
panel_contact1.Visible = true;
label_prenom_nom1.Text = contacts[i].Prenom + " " + contacts[i].Nom;
label_email1.Text = contacts[i].mail;
label_tel1.Text = contacts[i].tel;
pictureBox1.Image = Image.FromFile(contacts[i].pathImage);
}
else if(!panel_contact2.Visible)
{
panel_contact2.Visible = true;
label_prenom_nom2.Text = contacts[i].Prenom + " " + contacts[i].Nom;
label_email2.Text = contacts[i].mail;
label_tel2.Text = contacts[i].tel;
pictureBox2.Image = Image.FromFile(contacts[i].pathImage);
}
}
这只是前两个联系人的代码,我不想重复最多 100 次。
所以我的问题是: 如何创建面板,在每个标签和一个pictureBox中,每50px在一个面板中。
感谢您的阅读,如果您的建议总是一样的,如果你们都有代码,我是一个接受者,特别是因为我认为它应该很容易做到,因为标签的内容已经动态教学。
谢谢。
【问题讨论】:
-
你在使用 wpf 吗?
-
不知道是什么,是设计师VS代码的申请表
-
@RayaneStaszewski 答案因每种显示技术而异。
-
在 Visual Studio 中创建新项目时,必须在不同类型的项目之间进行选择。例如。 “Windows 窗体应用程序”(winforms)、“WPF 应用程序”等。如果你有一个 winforms,那么你有一个对
System.Windows.Forms的引用。如果您有 WPF 应用程序,则可以参考PresentationCore。