Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SplashScreen 
V
    Опции темы
NosfBlazE
Дата 18.6.2011, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Здравствуйте. smile
Перечитал много статей на данную тему, но так оптимального способа и не нашел. -__-"
Есть какой-то аналог фичи, описанной тут: http://habrahabr.ru/blogs/net/45459/ ? Ведь там, я так понял, только для WPF, я же работаю с WFA. Кроме того, не совсем ясно, что это за класс SplashScreen, использованный в примере: самописный или в библиотеках где-то есть?

Короче, моя проблема заключается в следующем. Есть главная форма F1, из которой вызывается форма F2. F2 очень долго отображается (~5сек), так как там сразу после InitializeComponent(); идет построение списка каталогов, и приложение какбы подвисает. Хотелось бы выводить в это время заставку, но как организовать этот процесс наиболее оптимально, я что-то никак не пойму.
Может быть, есть какие-то встроенные компоненты или свойства для этой цели, о который я не подозреваю? smile
Или же, если все таки работать с потоками, то лучше вызывать заставку из F1 или F2, и вообще, как это организовать?)
PM MAIL ICQ Skype Jabber   Вверх
dextermd
Дата 18.6.2011, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



Цитата

я же работаю с WFA


Что это такое ?
PM MAIL   Вверх
NosfBlazE
Дата 18.6.2011, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Windows Forms Application
smile Да, неочень грамотно с моей стороны было сокращать таким образом, после слова wpf.
PM MAIL ICQ Skype Jabber   Вверх
jonie
Дата 18.6.2011, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



Цитата(NosfBlazE @  18.6.2011,  20:48 Найти цитируемый пост)
Короче, моя проблема заключается в следующем. Есть главная форма F1, из которой вызывается форма F2. F2 очень долго отображается (~5сек), так как там сразу после InitializeComponent(); идет построение списка каталогов, и приложение какбы подвисает. 

стройте список в отдельном потоке, а пока он строится выводите что угодно (хоть все контролы скрывайте и пишете "идет загрузка")... Тут SplashScreen не нужен - он нкжен когда разогрев приложения идет долго (при первом старте).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
cream
Дата 18.6.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 23.7.2010

Репутация: 1
Всего: 1



jonie, я б BackgroundWorker c ProgressBar-ом присобачил smile 
PM MAIL   Вверх
Fitc
Дата 19.6.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.1.2010

Репутация: нет
Всего: 4



The .NET framework has excellent built-in support for splash screens. Start a new WF project, Project + Add Reference, select Microsoft.VisualBasic. Add a new form, call it frmSplash. Open Project.cs and make it look like this:
Код

using System;
using System.Windows.Forms;
using Microsoft.VisualBasic.ApplicationServices;

namespace WindowsFormsApplication1 {
  static class Program {
    [STAThread]
    static void Main(string[] args) {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      new MyApp().Run(args);
    }
  }
  class MyApp : WindowsFormsApplicationBase {
    protected override void OnCreateSplashScreen() {
      this.SplashScreen = new frmSplash();
    }
    protected override void OnCreateMainForm() {
      // Do your time consuming stuff here...
      //...
      System.Threading.Thread.Sleep(3000);
      // Then create the main form, the splash screen will close automatically
      this.MainForm = new Form1();
    }
  }
}

http://stackoverflow.com/questions/392787/...screen-c-vs2005

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0890 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.