c#保存流布局面板
我在Visual Studio 2013 c#winform中编程。我试图制作一些类似于Steam Library的东西,但我不知道如何保存tab1(Library)中的FlowLayoutPanel 这就是它的外观(删除新游戏):http://oi62.tinypic.com/2uzfc3k.jpg (抱歉,我无法添加图像和超过2个链接) 这是我的密码:c#保存流布局面板,c#,winforms,save,flowlayoutpanel,C#,Winforms,Save,Flowlayoutpanel,我在Visual Studio 2013 c#winform中编程。我试图制作一些类似于Steam Library的东西,但我不知道如何保存tab1(Library)中的FlowLayoutPanel 这就是它的外观(删除新游戏):http://oi62.tinypic.com/2uzfc3k.jpg (抱歉,我无法添加图像和超过2个链接) 这是我的密码: private void btnTest_Click_1(object sender, EventArgs e) {
private void btnTest_Click_1(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
if (textBox2.Text != "")
{
if (textBox3.Text != "")
{
Button btn = sender as Button;
Button btnNew = new Button();
btnNew.Text = "";
btnNew.Height = 108;
btnNew.Width = 230;
btnNew.Name = textBox3.Text;
comboBox1.Items.Add(textBox3.Text);
btnNew.BackgroundImage = new Bitmap(textBox1.Text);
btnNew.BackgroundImageLayout = ImageLayout.Stretch;
btnNew.FlatStyle = FlatStyle.Flat;
flpContainer.Controls.Add(btnNew);
btnNew.Click += btnNew_Click;
btnNew.Tag = textBox2.Text;
counter1+=+1;
label1.Text = counter1.ToString();
System.Windows.Forms.MessageBox.Show("Game " + textBox3.Text + " was successfully added to library!");
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
}
else if (textBox3.Text == "")
{
MessageBox.Show("You didn't wrote name!");
}
}
else if (textBox2.Text == "")
{
System.Windows.Forms.MessageBox.Show("You didn't choose exe file!");
}
}
else if (textBox1.Text == "")
{
System.Windows.Forms.MessageBox.Show("You didn't choose image!");
}
}
private void btnNew_Click(object sender, EventArgs e)
{
Button clickedButton = (Button)sender;
Process.Start((string)clickedButton.Tag);
}
private void ZvolitObrazek_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Open Image";
openFileDialog1.FileName = "Image file";
openFileDialog1.Filter = "Image files (*.jpg, *.img, *.png, *.jpeg)|*.jpg; *.img; *.png; *.jpeg|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog2.Title = "Open exe";
openFileDialog2.FileName = "Exe file";
openFileDialog2.Filter = "Exe files (*.exe)|*.exe|All files(*.*)|*.*";
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
textBox2.Text = openFileDialog2.FileName;
}
}
private void flpContainer_Paint(object sender, PaintEventArgs e)
{
flpContainer.AutoScroll = true;
}
private void button2_Click(object sender, EventArgs e)
{
if (comboBox1.Text == "")
{
MessageBox.Show("You didn't choose game that you want delete!");
}
else if (comboBox1.Text != "")
{
Control foundControl = null;
foreach (Control c in flpContainer.Controls)
{
c.Name = comboBox1.Text;
foundControl = c;
}
flpContainer.Controls.Remove(foundControl);
counter1 = counter1 - 1;
label1.Text = counter1.ToString();
MessageBox.Show("Game " + comboBox1.Text + " was successfully deleted");
comboBox1.Items.Remove(comboBox1.Text);
comboBox1.Text = "";
}
}
}
FlowLayoutPanel=FLPContainer。
所以,我的问题是,如何在FlowLayoutPanel中保存项目(按钮)以及如何在以后加载它们?
谢谢你的回答 您应该为您的项目(游戏按钮)创建一个类,包括它们的标题、图像等。然后您可以使用XML保存它们
类游戏
{
//这里的财产
}
链接将为您提供如何快速完成此任务的方法。
要保存图像,可以将图像转换为base64,并在再次加载XML文件时将其转换回图像。谢谢:)。顺便说一句,这会花我很多时间吗O:d是创建类还是保存类?如果你有C#的基本知识,创建类应该不会那么难。但是你可以随时使用谷歌,它可以帮助你在一个小时内完成:)哦,欧基,我没有C#的基本知识,我还在学习。。。我应该给那个游戏课写些什么?:)谢谢您的时间。您应该在类内编写属性。例如,对于游戏的标题,您应该创建以下属性:
publicstringtitle{get;set;}
。然后可以使用以下代码进行设置:Game exampleGame=newgame();exampleGame.Title=“您的标题”代码>。现在您可以序列化该类(使用我上面发布的链接中的how-to),它将把exampleGame对象保存到一个XML文件中。。。当我在那里输入“你的标题”时,它只是将其保存为“你的标题”(是的,这是合乎逻辑的),但我想保存一个你在程序运行时写在文本框中的标题,可以这样做吗?有很多。