{\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
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
//-----------------\r
#endregion\r
\r
- #region [ 各設定 ]\r
+ #region [ 各設定 ]\r
//-----------------\r
this.formメインフォーム.str作業フォルダ名 = Path.GetDirectoryName( strファイル名 ) + @"\";\r
this.formメインフォーム.strMIDIインポートフォルダ = Path.GetDirectoryName( strファイル名 ) + @"\";\r
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
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