Więc zrozumiałem, że robię OpenFileDialog, teraz janie może zrozumieć SaveFileDialog. Sprawdzono kilka stron i każdy z nich ma własne sposoby robienia tego, ale żaden z nich nie zapisał tekstu znajdującego się w pliku richtextbox do pliku.
private void button1_Click(object sender, EventArgs e)
{
Stream myStream;
SaveFileDialog exportdialogue = new SaveFileDialog();
exportdialogue.Filter = "txt files (*.txt)|*.txt*";
exportdialogue.FilterIndex = 2;
exportdialogue.RestoreDirectory = true;
if (exportdialogue.ShowDialog() == DialogResult.OK)
{
if ((myStream = exportdialogue.OpenFile()) != null)
{
StreamWriter wText = new StreamWriter(myStream);
wText.Write("Some Text");
myStream.Close();
}
}
}
Używanie richtextbox i normalnego przycisku również "using System.IO;" (Dla strumienia)
Próbuję uzyskać przycisk do użycia SaveFileDialog, aby mógł eksportować zawartość w richtextbox do pliku tekstowego.
Kwestia: Nie jestem pewien, co muszę zrobić, aby zapisać zawartość z pola tekstowego. Nie wiem, dlaczego SaveFileDialog zapisuje pliki bez rozszerzenia, gdy filtr jest na miejscu.
Odpowiedzi:
1 dla odpowiedzi № 1Ustawiłeś:
exportdialogue.Filter = "txt files (*.txt)|*.txt*";
który zawiera tylko JEDEN filtr, ale ustawiasz:
exportdialogue.FilterIndex = 2;
co oznacza użycie filtra SECOND. (FilterIndex jest oparty na 1).
Jeśli ustawisz FilterIndex = 1, twój plik powinien mieć rozszerzenie .txt
0 dla odpowiedzi nr 2
możesz użyć using {}
blok do rozwiązania problemu:
Spróbuj tego:
SaveFileDialog exportdialogue = new SaveFileDialog();
exportdialogue.Filter = "txt files (*.txt)|*.txt*";
exportdialogue.FilterIndex = 2;
exportdialogue.RestoreDirectory = true;
if (exportdialogue.ShowDialog() == DialogResult.OK)
{
using( Stream myStream = exportdialogue.OpenFile())
{
StreamWriter wText = new StreamWriter(myStream);
wText.Write("Some Text");
wText.Close();
}
}
-1 dla odpowiedzi nr 3
musisz użyć metody savefile zasięgu textbox i przekazać jej nazwę pliku savedialogbox.
reachtextbox.SaveFile(exportdialogue.FileName);
ps: będzie to coś w stylu powyższego kodu.