AkaneMail.SplashScreen.Dispose C# (CSharp) Метод

Dispose() защищенный Метод

使用中のリソースをすべてクリーンアップします。
protected Dispose ( bool disposing ) : void
disposing bool マネージ リソースが破棄される場合 true、破棄されない場合は false です。
Результат void
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null)) {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

Usage Example

Пример #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // スプラッシュ・スクリーンの表示開始
            SplashScreen splash = new SplashScreen();
            splash.ProgressMsg = "メールクライアントの初期化中です";
            if (File.Exists(@"akanemail.png")) {
                try {
                    splash.BackgroundImage = Image.FromFile(@"akanemail.png");
                }
                catch {
                    // 読み込めないときは通常画像を表示するため処理なし
                }
            }
            splash.Show();
            splash.Refresh();

            // 最大化の時スプラッシュスクリーンよりも先にフォームが出ることがあるので
            // それを防ぐために一時的にフォームを非表示にする。
            this.Hide();

            // 環境設定の読み込み
            LoadSettings();

            try {
                // WinSockの初期化処理
                nMail.Winsock.Initialize();
            }
            catch (Exception exp) {
                // 64bit版OSで同梱の32bit版OS用のnMail.dllを使用して起動したときはエラーになるため差し替えのお願いメッセージを表示する
                if (exp.Message.Contains("間違ったフォーマットのプログラムを読み込もうとしました。")) {
                    MessageBox.Show("64bit版OSで32bit版OS用のnMail.dllを使用して実行した場合\nこのエラーが表示されます。\n\nお手数をお掛け致しますが同梱のnMail.dllをnMail.dll.32、nMail.dll.64をnMail.dllに名前を変更してAkane Mailを起動\nしてください。", "Akane Mail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    // 致命的なnMail.dllのエラーフラグをOn
                    nMailError = true;
                    Application.Exit();
                    return;
                }
            }

            // nMailのHTML添付ファイルの展開オプションをONにする
            Options.EnableSaveHtmlFile();

            // ファイル展開用のテンポラリフォルダの作成
            if (!Directory.Exists(Application.StartupPath + @"\tmp")) {
                Directory.CreateDirectory(Application.StartupPath + @"\tmp");
            }

            // Threadオブジェクトを作成する
            var t = new System.Threading.Thread(new System.Threading.ThreadStart(MailDataLoad));

            splash.ProgressMsg = "メールデータの読み込み作業中です";

            // スレッドを開始する
            t.Start();

            // スレッドが終了するまで待機
            t.Join();

            // メール自動受信が設定されている場合はタイマーを起動する
            if (AccountInfo.autoMailFlag) {
                // 取得間隔*60000(60000ミリ秒=1分)をタイマー実行間隔に設定する
                timer2.Interval = AccountInfo.getMailInterval * 60000;
                timer2.Enabled = true;
            }

            // ツリービューとリストビューの表示を更新する
            UpdateTreeView();
            UpdateListView();

            // ListViewItemComparerの作成と設定
            // 受信or送信日時の降順で並べる
            listViewItemSorter = new ListViewItemComparer() { Column = 2, Order = SortOrder.Descending };
            listViewItemSorter.ColumnModes = new ListViewItemComparer.ComparerMode[] { ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.DateTime, ListViewItemComparer.ComparerMode.Integer };

            // ListViewItemSorterを指定する
            listView1.ListViewItemSorter = listViewItemSorter;

            // スプラッシュ・スクリーンの表示終了
            splash.Close();
            if (!splash.IsDisposed)
                splash.Dispose();

            // 一時的に非表示にした画面を表示させる
            if (!(AccountInfo.minimizeTaskTray && WindowState == FormWindowState.Minimized)) {
                ShowInTaskbar = true;
                this.Show();
            }

            // ツリービューを展開する
            treeView1.ExpandAll();

            // メインとなるフォームをアクティブに戻す
            this.Activate();
        }