Member 14778963 Ответов: 3

Как исправить ошибку "не удается преобразовать из bool в string" C#


Здравствуйте, я получаю эту ошибку:
"cannot convert from bool to string"


на этой линии:
pictureBox2.Visible = Settings.Default[true].ToString;


Я хочу сделать так, чтобы, когда пользователь нажимает кнопку, другая кнопка становится невидимой, и если он закрывает приложение и запускает его снова, это будет то же самое.

Что я уже пробовал:

Я не знаю, как это исправить.

Maciej Los

Удалить метод ToString ()!

Member 14778963

это все еще дает мне ту же ошибку. :(
есть еще какие-нибудь исправления?

F-ES Sitecore

Что значит "настройки.Default[true]" return?

gggustafson

Видимый атрибут имеет тип bool. То...ToString - это строка. Строки dop напрямую не преобразуются в bools. Используйте один из методов преобразования, чтобы сделать преобразование. Однако если вы хотите сделать pictureBox2 видимым, то просто напишите pictureBox2.Visible = true;

gggustafson

Видимый атрибут-это bool. если вы хотите, чтобы объект был видимым, просто установите атрибут true, как в pictureBox2.Visible = true;

gggustafson

просто установите для атрибута значение true

Member 14778963

Я хочу сделать так, чтобы, когда пользователь нажимает кнопку, другая кнопка становится невидимой, и если он закрывает приложение и запускает его снова, это будет то же самое.

3 Ответов

Рейтинг:
1

phil.o

Control.Visible Свойство (System.Окна.Формы) | Microsoft Docs[^] - это логическое значение.
Вы пытаетесь присвоить ему строковое значение, которое компилятор отказывается делать, потому что это не имеет смысла.

Инструкция Settings.Default[true] неверный. Это должно быть что-то вроде Settings.Default.SettingName, с SettingName будучи именем логического параметра. И ToString методу здесь явно не место.

Довольно трудно сказать вам, что делать, потому что ваши намерения не ясны. Как называется параметр, к которому вы пытаетесь получить доступ? Может быть, это даст вам какую-то подсказку о том, как использовать настройки:
Параметры Приложения - Windows Forms | Microsoft Docs[^]


Рейтинг:
1

OriginalGriff

Используйте отладчик и узнайте точно, какой тип (и значение) Settings.Default[true] есть и вы можете принять решение оттуда - вам нужен bool значение для установки Visible собственность.

Но... это совсем не то, что я ожидал увидеть.
Обычно настройки используются следующим образом:

bool value = Properties.Settings.Default.NameOfABooleanSettingThatIsStoredByTheSystemForYou;
Так что то, что делает ваш класс настроек, немного ... странно.


Рейтинг:
0

phil.o

Член 14778963 написал:
Я хочу сделать так, чтобы, когда пользователь нажимает кнопку, другая кнопка становится невидимой, и если он закрывает приложение и запускает его снова, это будет то же самое.
Вы можете воспользоваться преимуществами привязки свойств настроек приложения:
- Есть логическая настройка, определенная для видимости кнопки; назовите настройку "Button2Visible", например.
- Выберите кнопку, видимость которой будет сохраняться; на панели свойств перейдите в раздел (ApplicationSettings)->(PropertyBinding) и нажмите на кнопку"...".
- Перейдите к свойству "видимый" и выберите параметр "Button2Visibility".
- нажимать OK".
Теперь вы можете просто использовать этот простой код:
private void Button1_Click(object sender, EventArgs e)
{
   Button2.Visible = false;
   Settings.Default.Save();
}

Видимость Button2 будет автоматически сохранена в последующих сеансах.