de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 john
john
Вопрос

Статическая форма C # добавлена ​​в проект?

Я хочу создать настраиваемое окно сообщений для программы, поэтому я добавил элемент формы Windows. Я бы хотел, чтобы он вел себя как MessageBox в том, что он статичен, и я просто вызываю MessageBox.Show (a, b, c, ...) . Однако в дизайнере форм я не вижу, как я могу сделать его статичным. Могу ли я просто добавить static в код? Есть ли параметр свойства, который мне не хватает в режиме конструктора?

Благодаря!

4 2011-10-27T16:00:25+00:00 4
Программирование
c#
forms
static
Paul Sasik
27-го октября 2011 в 4:02
2011-10-27T16:02:55+00:00
Дополнительно
Источник
Редактировать
#56790418

MessageBox is not a static class, the Show method however is. Make Show static, in code. E.g.

public class MyMessageBox : Form
{
    public static int MyShow()
    {
       //create instance of your custom message box form
       //show it
       //return result 
    }
}
6
0
Mohamed Abed
27-го октября 2011 в 4:03
2011-10-27T16:03:14+00:00
Дополнительно
Источник
Редактировать
#56790419

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

public class MyMessageBox
{
   public static MyResult Show(params)
   {
       var myMessageBox = new MyMessageBox();
       myMessageBox.Message = params ...
       return  myMessageBox.ShowDialog();
   }
}
4
0
C-Pound Guru
27-го октября 2011 в 4:06
2011-10-27T16:06:50+00:00
Дополнительно
Источник
Редактировать
#56790420

Добавьте статический метод в вашу форму, которая отображает себя и возвращает DialogResult:

public partial class MyMessageBoxForm : Form {

  public static DialogResult Show(string message) {
    using (MyMessageBoxForm form = new MyMessageBoxForm(message)) {
      return form.ShowDialog();
    }

  private MyMessageBoxForm(string message) {
   //do something with message
  }

}
2
0
user3424037
27-го января 2015 в 11:06
2015-01-27T11:06:14+00:00
Дополнительно
Источник
Редактировать
#56790421

Если вы хотите создать статический Form1 для доступа к нему без ссылки на объект, вы можете изменить Program.cs:

public class Program
{
    public static Form1 YourForm; 

    [STAThread]
    static void Main(string[] args)
    {
        using (Form1 mainForm = new Form1())
        {
            YourForm = mainForm;
            Application.Run(mainForm);
        }
        YourForm = null;
    }
}

и вызовите методы класса Form1 из любого места вашей программы:

Program.YouForm.DoAnything();

Не забудьте вызвать Invoke для доступа из других потоков.

1
0
Похожие сообщества 6
ExtremeCode чат
ExtremeCode чат
6 232 пользователей
Общение на темы YouTube канала и программирования. Вакансии не размещаем. Основной канал: @extremecode Курилка (флуд здесь): @extremecode_rest
Открыть telegram
Microsoft Stack Jobs
Microsoft Stack Jobs
2 460 пользователей
Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks
Открыть telegram
С#
С#
2 372 пользователей
Стараемся не флудить. Пишем по делу. Правила: https://t.me/professorweb/430450 Для флуда @svoboda_obsh
Открыть telegram
CODE BLOG / C#
CODE BLOG / C#
1 780 пользователей
Чат для .NET разработчиков и C# программистов. По всем вопросам: @shwanoff Youtube-канал: https://youtube.com/codeblog Основной канал: @codeblog Вконтакте: https://vk.com/codeblog Правила: https://t.me/codeblog_csharp/246972 Вакансии по тегу #work
Открыть telegram
var chat = new Chat();
var chat = new Chat();
1 255 пользователей
Обсуждение вопросов по .NET Правила чата – https://blog.devdigest.today/chat-rules Чат для флуда – https://t.me/+MXQZTV9pdq5hM2Ri
Открыть telegram
C#/.NET Для Новичков
C#/.NET Для Новичков
329 пользователей
Группа создана для тех, кто изучает язык программирования C#. Верховный главнокомандующий: @BlackDeveloper Оффтоп - разрешен в меру, реклама - бан.
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 1 день назад
2
Hideo Nakagawa
Зарегистрирован 2 дня назад
3
Sergiy Tytarenko
Зарегистрирован 4 дня назад
4
shoxrux azadov
Зарегистрирован 6 дней назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией