OSDN Git Service

#30333 [DTXC] インポートを更に高速化(正確には、低速になっていたのを元に戻した)
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 3 Apr 2016 19:19:04 +0000 (19:19 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 3 Apr 2016 19:19:04 +0000 (19:19 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/branches/160321(DTXCreator%20with%20MIDI%20Import)@963 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXCreatorプロジェクト/コード/07.MIDIインポート/CMIDIインポートダイアログ.cs
DTXCreatorプロジェクト/コード/07.MIDIインポート/CMIDIインポート管理.cs
実行時フォルダ(DTXCreator)/DTXCreator.exe
実行時フォルダ(DTXCreator)/ja-JP/DTXCreator.resources.dll

index 997ffd0..4a54c36 100644 (file)
@@ -25,10 +25,27 @@ namespace DTXCreator.MIDIインポート
         {\r
             InitializeComponent();\r
                        this.b一覧準備完了 = false;\r
+                       dgvチャンネル一覧変更イベント抑止();\r
                        resource = new System.Resources.ResourceManager( this.GetType() );\r
         }\r
 \r
-        private void CMIDIインポートダイアログ_KeyDown(object sender, KeyEventArgs e)\r
+               public void dgvチャンネル一覧変更イベント抑止()\r
+               {\r
+                       try\r
+                       {\r
+                               dgvチャンネル一覧.CellValueChanged -= dgvチャンネル一覧_CellValueChanged;\r
+                       }\r
+                       catch ( Exception e )\r
+                       {\r
+                               Debug.WriteLine( "dgvチャンネル一覧.CellValueChangedのイベントエントリ削除に失敗しましたが、続行します。{0}", e.Message );\r
+                       }\r
+               }\r
+               public void dgvチャンネル一覧変更イベント復旧()\r
+               {\r
+                       dgvチャンネル一覧.CellValueChanged += dgvチャンネル一覧_CellValueChanged;\r
+               }\r
+\r
+               private void CMIDIインポートダイアログ_KeyDown(object sender, KeyEventArgs e)\r
         {\r
             if ( e.KeyCode == Keys.Return )\r
             {\r
@@ -146,6 +163,9 @@ namespace DTXCreator.MIDIインポート
                                this.dgvチャンネル一覧.Rows[i-1].DefaultCellStyle.BackColor = (i==10) ? Color.FromArgb( 255, 224, 224 ) : Color.FromArgb( 255, 255, 255 );\r
                        }\r
                        this.b一覧準備完了 = true;\r
+                       //      dgvチャンネル一覧変更イベント復旧();     //ここでイベントを復旧してはいけない\r
+                                                                                                               //(直後にファイルを開く動作+解析動作が発生するのでそこで)\r
+                                                                                                               //ChangValueイベントが発生しファイルを開き直す動作が何度も発生してしまう\r
                }\r
 \r
         public void tMIDIファイルを選択する()\r
@@ -198,7 +218,7 @@ namespace DTXCreator.MIDIインポート
             //-----------------\r
             #endregion\r
 \r
-            #region [ 各設定 ]\r
+                       #region [ 各設定 ]\r
             //-----------------\r
                        this.formメインフォーム.str作業フォルダ名 = Path.GetDirectoryName( strファイル名 ) + @"\";\r
                        this.formメインフォーム.strMIDIインポートフォルダ = Path.GetDirectoryName( strファイル名 ) + @"\";\r
index 6d8ee70..94ef7c6 100644 (file)
@@ -17,8 +17,9 @@ namespace DTXCreator.MIDIインポート
             cMIDIインポートダイアログ.formメインフォーム = this.formメインフォーム;\r
             cMIDIインポートダイアログ.tMIDI割り当て一覧を作成する();\r
                        cMIDIインポートダイアログ.tMIDIチャンネル一覧を作成する();\r
+                       cMIDIインポートダイアログ.dgvチャンネル一覧変更イベント抑止();\r
                        cMIDIインポートダイアログ.tMIDIファイルを選択する();\r
-\r
+                       cMIDIインポートダイアログ.dgvチャンネル一覧変更イベント復旧();\r
             if (cMIDIインポートダイアログ.ShowDialog() == DialogResult.OK)\r
             {\r
                                if ( this.formメインフォーム.t未保存なら保存する() == DialogResult.Cancel ) return;\r
@@ -34,7 +35,9 @@ namespace DTXCreator.MIDIインポート
                        cMIDIインポートダイアログ.formメインフォーム = this.formメインフォーム;\r
                        cMIDIインポートダイアログ.tMIDI割り当て一覧を作成する();\r
                        cMIDIインポートダイアログ.tMIDIチャンネル一覧を作成する();\r
+                       cMIDIインポートダイアログ.dgvチャンネル一覧変更イベント抑止();\r
                        cMIDIインポートダイアログ.tMIDIファイルを開く( strファイル名 );\r
+                       cMIDIインポートダイアログ.dgvチャンネル一覧変更イベント復旧();\r
                        if ( cMIDIインポートダイアログ.ShowDialog() == DialogResult.OK )\r
                        {\r
                                this.formメインフォーム.b未保存 = false;\r
index 5e37396..8fcea9d 100644 (file)
Binary files a/実行時フォルダ(DTXCreator)/DTXCreator.exe and b/実行時フォルダ(DTXCreator)/DTXCreator.exe differ
index 45be5ae..1a7effd 100644 (file)
Binary files a/実行時フォルダ(DTXCreator)/ja-JP/DTXCreator.resources.dll and b/実行時フォルダ(DTXCreator)/ja-JP/DTXCreator.resources.dll differ