Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
MrOkolbas
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 4
#1

Работа с textbox. Сохранение текста при выходе из программы только если textbox имеет текст - C#

30.11.2014, 09:40. Просмотров 1361. Ответов 6
Метки нет (Все метки)

Создал форму в которой есть textbox и ToolStripMenuItem - кнопка выхода из приложения.
Идея в том, что если textbox не имеет символов, то мы просто закрываем программу.
Если в textbox есть символы, мы спрашиваем пользователя о том, сохранить ли файл, содержащий текст textbox.
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
if(textBox1.Text == null)
{
this.Close();
}
else
{
SaveFileDialog save = new SaveFileDialog();
if (save.ShowDialog() == DialogResult.Cancel)
{
this.Close();
}
save.Filter = "All Files(*.*)|*.*|Text Files(*.txt)|*.txt||";
if (save.ShowDialog() == DialogResult.OK)
{
StreamWriter write = new StreamWriter(save.FileName);
write.Write(textBox1.Text);
write.Close();
}
}
}
}
Родился такой вариант. Но даже если textbox пуст, все равно появляется диалог сохранения файла журнала.
По идее можно сделать как-то так:

string toStringTextBox1 = Convert.ToString(textBox1);
if (toStringTextBox1 == null)
{
this.Close();
}
Но так тоже не работает. Помогите с решением =))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2014, 09:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с textbox. Сохранение текста при выходе из программы только если textbox имеет текст (C#):

Текст появляется в textBox только после выполнения программы
Добрый вечер! Собственно, проблема в заголовке. Вот тот самый кусок кода...

Сравнение текста введенного в Textbox по name. При этом Textbox создан динамически
using System; using System.Collections.Generic; using System.ComponentModel;...

Записать текст только один раз в textbox при рекурсии
Текст записывается в текст бокс несколько раз из-за рекурсии, рекурсия...

Чтобы текст в TextBox сохранялся при закрытии программы
Как закрепить путь к файлу в textbox, чтобы при закрытии или открытии программы...

Сделать,чтобы при сохранении текста в textBox он сохранялся в configs.ini и при открытии программы подгружался
Вообщем хочу сделать так чтобы при сохранении текста в textBox он сохранялся в...

Работа с TextBox C#: при заполнении первого текст бокса - второй выводил результат
Привет форумчане. Такая задача: есть 2 текст бокса, необходимо, после...

6
Монфрид
1208 / 1018 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
30.11.2014, 10:03 #2
вы бы хотя бы брейкпоинты поставили и посмотрели значение текстбокса. Text никогда не равен null'у.
Вот это вообще не понятно что: вы берёте контрол текстбокса и перегоняете его в строку..
Цитата Сообщение от MrOkolbas Посмотреть сообщение
C#
1
string toStringTextBox1 = Convert.ToString(textBox1);
В общем проверять на пустоту текстбокс нужно так:
C#
1
2
3
4
if(textBox1.Text==String.Empty)
{
  //пусто
}
0
MrOkolbas
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 4
30.11.2014, 10:28  [ТС] #3
Простите, только начинаю программировать
Огромное спасибо!
0
Монфрид
1208 / 1018 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
30.11.2014, 10:31 #4
MrOkolbas, когда в текстбоксе ничего нет, его Text=""
0
MrOkolbas
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 4
30.11.2014, 10:39  [ТС] #5
Переделал немного алгоритм, раньше вылетала ошибка при нажатии "Отмена" в диалоге сохранения файла.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if(textBox1.Text == String.Empty)
            {
                this.Close();
            }
            else
            {
                SaveFileDialog save = new SaveFileDialog();
                if (save.ShowDialog() == DialogResult.Cancel)
                {
                    this.Close();
                }
                else
                {
                    save.Filter = "All Files(*.*)|*.*|Text Files(*.txt)|*.txt||";
                    if (save.ShowDialog() == DialogResult.OK)
                    {
                        StreamWriter write = new StreamWriter(save.FileName);
                        write.Write(textBox1.Text);
                        write.Close();
                    }
                }
            }
Но по моему как-то очень странно написал, а что вызывает недоумение, не могу понять. Может подскажете?
0
Монфрид
1208 / 1018 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
30.11.2014, 11:14 #6
зачем вы два раза диалог показываете?
Цитата Сообщение от MrOkolbas Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SaveFileDialog save = new SaveFileDialog();
 if (save.ShowDialog() == DialogResult.Cancel)
{
this.Close();
}
else //если не Cancel, то Ok
 {
save.Filter = "All Files(*.*)|*.*|Text Files(*.txt)|*.txt||";
 if (save.ShowDialog() == DialogResult.OK) //показываете второй раз. Это условие не нужно, если зашёл в else, то значит Ok.
 {
 StreamWriter write = new StreamWriter(save.FileName);//эти три строки можно сделать в одну
 write.Write(textBox1.Text);//
write.Close();//
}
}
так должно быть:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(textBox1.Text == String.Empty)
            {
                this.Close();
            }
            else
            {
             SaveFileDialog save = new SaveFileDialog();
             save.Filter = "All Files(*.*)|*.*|Text Files(*.txt)|*.txt||";
             if (save.ShowDialog() == DialogResult.Cancel)
{
 this.Close();
}
 else
{
System.IO.File.WriteAllText(save.FileName,textBox1.Text);
}
            }
0
MrOkolbas
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 4
30.11.2014, 11:35  [ТС] #7
Угу, попробовал, действительно так лучше =)
Спасибо!
0
30.11.2014, 11:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2014, 11:35
Привет! Вот еще темы с решениями:

Сохранение текста из TextBox в файл
У меня есть изображение, на нём расположен текст, который записан в текстбоксе,...

Сохранение текста из TextBox в файл
Здравствуйте. Подскажите пожалуйста, Как правильно в Виндовс формс сохранять...

Сохранение текста из TextBox и его считывание
Есть поле для ввода и кнопка. Необходимо, чтобы при нажатии на кнопку, значение...

Сохранение текста из textbox и его чтение
Я придумал что то не вразумительное Stream l = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru