Witam wszystkich.
Piszę niewielki programik który na początku pyta czy "wylosować" właściwości kontrolki RichTextBox. Następnie zapisuje oraz (po kolejnym uruchomieniu programu) odczytuje właściwości (rozmiar kolor i typ czcionki, kolor, rozmiar ,położenie kontrolki itp) kontrolki do pliku tekstowego. Mój problem polega na tym że chciałbym aby program zapisywał/ odczytywał właściwości innych kontrolek w formie. Domyślam się że trzeba użyć tablic albo listy ale nie do końca wiem jak. Niżej zamieszczam kod.
TypeConverter Konwersja_fonta, Konwersja_polozenia, konwersja_rozmiaru;
string kolor, polozenie, tekst, kolor_czcionki, czcionka, rozmiar;
string[] parametry_zarza = new string[5];
string[] liczba_kontrolek;
private void Form13_FormClosing(object sender, FormClosingEventArgs e)
{
if (File.Exists(@"g:/plik.txt"))
{
StreamWriter sw = new StreamWriter(@"g:/plik.txt");
kolor = ColorTranslator.ToHtml(richTextBox1.BackColor);
kolor_czcionki = ColorTranslator.ToHtml(richTextBox1.ForeColor);
tekst = richTextBox1.Text;
// Saving Font object as a string
Konwersja_fonta = TypeDescriptor.GetConverter(typeof(Font));
Konwersja_polozenia = TypeDescriptor.GetConverter(typeof(Point));
konwersja_rozmiaru = TypeDescriptor.GetConverter(typeof(Size));
czcionka = Konwersja_fonta.ConvertToString(richTextBox1.Font);
polozenie = Konwersja_polozenia.ConvertToString(richTextBox1.Location);
rozmiar = konwersja_rozmiaru.ConvertToString(richTextBox1.Size);
sw.WriteLine(kolor);
sw.WriteLine(kolor_czcionki);
sw.WriteLine(tekst);
sw.WriteLine(czcionka);
sw.WriteLine(polozenie);
sw.WriteLine(rozmiar);
sw.Close();
}
else
{
File.Create(@"g:/plik.txt");
}
}
private void Form13_Load(object sender, EventArgs e)
{
DialogResult pytanie = MessageBox.Show("Czy chesz wylosować właściwości ?", "Program", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (pytanie == DialogResult.Yes)
{
Random los = new Random();
// foreach (Control c in Controls)
{
richTextBox1.BackColor = Color.FromArgb(los.Next(256), los.Next(256), los.Next(256));
richTextBox1.ForeColor = Color.FromArgb(los.Next(256), los.Next(256), los.Next(256));
richTextBox1.Size = new Size(los.Next(richTextBox1.Width * 4), los.Next(richTextBox1.Height * 4));
richTextBox1.Location = new Point(los.Next(richTextBox1.Location.X * 4, richTextBox1.Location.Y * 4));
}
}
if (pytanie == DialogResult.No)
{
if (File.Exists(@"g:/plik.txt"))
{
StreamReader sr = new StreamReader(@"g:/plik.txt");
Konwersja_fonta = TypeDescriptor.GetConverter(typeof(Font));
konwersja_rozmiaru = TypeDescriptor.GetConverter(typeof(Size));
Konwersja_polozenia = TypeDescriptor.GetConverter(typeof(Point));
kolor = sr.ReadLine();
kolor_czcionki = sr.ReadLine();
tekst = sr.ReadLine();
czcionka = sr.ReadLine();
polozenie = sr.ReadLine();
rozmiar = sr.ReadLine();
var lines = File.ReadLines(@"g:/plik.txt");
foreach (var line in lines)
{
foreach (Control c in Controls)
{
richTextBox1.BackColor = ColorTranslator.FromHtml(kolor);
richTextBox1.ForeColor = ColorTranslator.FromHtml(kolor_czcionki);
richTextBox1.Text = tekst;
richTextBox1.Font = (Font)Konwersja_fonta.ConvertFromString(czcionka);
richTextBox1.Location = (Point)Konwersja_polozenia.ConvertFromString(polozenie);
richTextBox1.Size = (Size)konwersja_rozmiaru.ConvertFromString(rozmiar);
}
}
sr.Close();
}
else
{
File.Create(@"g:/plik.txt");
}
}
}