0a) Pas på med at kalde din dialog for "Openfiledialog" - det bliver alt for nemt at forveksle den med klassen "OpenFileDialog".
Jeg kan bedre lide noget i stil med den første navngivning du havde brugt:
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
men den minder selvfølgeligt lidt for meget af drag'n'drop programmering hvor det jo er default-navnet for en sådan dialog.
Alternativer:
OpenFileDialog openFileDialog = new OpenFileDialog();
OpenFileDialog openDialog = new OpenFileDialog();
OpenFileDialog ofd = new OpenFileDialog();
Det anbefales under alle omstændigheder at variable i C# navngives med lille startbogstav ("camel-notation").
http://en.wikipedia.org/wiki/CamelCasehttp://msdn2.microsoft.com/en-us/library/xzf533w0(vs.71).aspx
0b) Jeg vil også råde dig til at bruge en konsistent navngivnings notation. F.eks. har du valgt et navn for din TextBox som ikke stemmer overens med den måde de andre variable er navngivet på.
Noget med "txtSave" ville være bedre. Men hvorfor egentlig kalde den for "...Save" - skal den kun bruges til at vise det der blev save't? Eller har den ikke et mere generelt formål end det?
1) En PDA har ikke noget C-drev, og derfor er det ikke rigtigt med:
Openfiledialog.InitialDirectory = @"c:\";
Du skal bruge stier efter dette princip:
\My Documents\filnavn.txt - I PDA'ens indbyggede hukommelse, i biblioteket "My Documents".
\SD Card\dir1\dir2\filnavn.txt - På PDA'ens SD kort
\CF Card\dir1\dir2\filnavn.txt - På PDA'ens CF kort.
2) Da du kun her ét filter i din save-doialog - nemlig "*.txt" - har denne linje ingen som helst effekt:
Openfiledialog.FilterIndex = 2;
3) Hvis du skal arbejde med den samme fil igen og igen, skal du gemme filnavnet på en eller anden måde. Den normale fremgangsmåde er at gemme det i en variabel.
Du har dog et alternativ; Hvis du i stedet for at oprette din OpenFileDialog i de metoder hvor du bruger den, kan du jo i stedet placere den på selve formen. På den måde er den tilgængelig overalt i den form. Dermed har du også ad gang til FileName propertien. Jeg ved dog ikke om jeg helt vil anbefale dette som værende pæn kode.
4) Prøv stedet at kigge på dene kode:
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "Text filer|*.txt";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
fileName = saveDialog.FileName;
using (StreamWriter sw = new StreamWriter(fileName))
{
sw.WriteLine(o.ToString());
}
}
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.Filter = "Text filer|*.txt";
if (openDialog.ShowDialog() == DialogResult.OK)
{
fileName = openDialog.FileName;
using (StreamReader sr = new StreamReader(fileName))
{
txtSave.Text = sr.ReadToEnd();
}
}
}
private void button3_Click(object sender, EventArgs e)
{
if (fileName != null && fileName != "" && File.Exists(fileName))
{
using (StreamReader sr = new StreamReader(fileName))
{
txtSave.Text = sr.ReadToEnd();
}
}
}