OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXCreatorプロジェクト / コード / 05.譜面 / C譜面管理.cs
diff --git a/DTXCreatorプロジェクト/コード/05.譜面/C譜面管理.cs b/DTXCreatorプロジェクト/コード/05.譜面/C譜面管理.cs
deleted file mode 100644 (file)
index 6134145..0000000
+++ /dev/null
@@ -1,1087 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Diagnostics;\r
-using System.Drawing;\r
-using System.Drawing.Drawing2D;\r
-using System.Windows.Forms;\r
-using DTXCreator.UndoRedo;\r
-using FDK;\r
-\r
-namespace DTXCreator.譜面\r
-{\r
-       internal class C譜面管理\r
-       {\r
-               public Bitmap bmp背景画像;\r
-               public Dictionary<int, float> dicBPx = new Dictionary<int, float>();\r
-               public Dictionary<int, C小節> dic小節 = new Dictionary<int, C小節>();\r
-               public List<Cレーン> listレーン = new List<Cレーン>();\r
-               public static readonly int nレーン割付チップ番号表示高さdot = 10;\r
-               public static readonly int nレーン番号表示高さdot = 0x20;\r
-               public int n現在のガイド幅grid = ( C小節.n基準の高さgrid / 0x10 );\r
-               public int n現在の譜面表示下辺の譜面先頭からの位置grid;\r
-               public string strPATH_WAV = "";\r
-\r
-               public C譜面管理( Cメインフォーム cm )\r
-               {\r
-                       this._Form = cm;\r
-               }\r
-               public bool bOPENチップである( Cチップ cc )\r
-               {\r
-                       Cレーン cレーン = this.listレーン[ cc.nレーン番号0to ];\r
-                       return ( ( cc.n値_整数1to1295 == 2 ) && ( ( cレーン.eレーン種別 == Cレーン.E種別.GtR ) || ( cレーン.eレーン種別 == Cレーン.E種別.BsR ) ) );\r
-               }\r
-               public bool b確定選択中のチップがある()\r
-               {\r
-                       foreach( KeyValuePair<int, C小節> pair in this.dic小節 )\r
-                       {\r
-                               foreach( Cチップ cチップ in pair.Value.listチップ )\r
-                               {\r
-                                       if( cチップ.b確定選択中 || cチップ.bドラッグで選択中 )\r
-                                       {\r
-                                               return true;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return false;\r
-               }\r
-               public decimal dc譜面先頭からの位置gridにおけるBPMを返す( int n譜面先頭からの位置grid )\r
-               {\r
-                       decimal num = this._Form.dc現在のBPM;\r
-                       C小節 c小節 = this.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
-                       if( c小節 != null )\r
-                       {\r
-                               for( int i = 0; i <= c小節.n小節番号0to3599; i++ )\r
-                               {\r
-                                       C小節 c小節2 = this.p小節を返す( i );\r
-                                       if( c小節2 != null )\r
-                                       {\r
-                                               int num3 = this.n譜面先頭からみた小節先頭の位置gridを返す( i );\r
-                                               foreach( Cチップ cチップ in c小節2.listチップ )\r
-                                               {\r
-                                                       if( ( cチップ.nチャンネル番号00toFF == 8 ) && ( ( num3 + cチップ.n位置grid ) <= n譜面先頭からの位置grid ) )\r
-                                                       {\r
-                                                               num = (decimal) cチップ.f値_浮動小数;\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return num;\r
-               }\r
-               public int nX座標dotが位置するレーン番号を返す( int nXdot )\r
-               {\r
-                       if( nXdot >= 0 )\r
-                       {\r
-                               int num = 0;\r
-                               int num2 = 0;\r
-                               foreach( Cレーン cレーン in this.listレーン )\r
-                               {\r
-                                       num += cレーン.n幅dot;\r
-                                       if( nXdot < num )\r
-                                       {\r
-                                               return num2;\r
-                                       }\r
-                                       num2++;\r
-                               }\r
-                       }\r
-                       return -1;\r
-               }\r
-               public int nY座標dotが位置するgridを返す_ガイド幅単位( int nY )\r
-               {\r
-                       int num = this.nY座標dotが位置するgridを返す_最高解像度( nY );\r
-                       C小節 c小節 = this.p譜面先頭からの位置gridを含む小節を返す( num );\r
-                       if( c小節 == null )\r
-                       {\r
-                               c小節 = this.p小節を返す( this.n現在の最大の小節番号を返す() );\r
-                       }\r
-                       int num2 = this.n譜面先頭からみた小節先頭の位置gridを返す( c小節.n小節番号0to3599 );\r
-                       int num3 = ( ( num - num2 ) / this.n現在のガイド幅grid ) * this.n現在のガイド幅grid;\r
-                       return ( num2 + num3 );\r
-               }\r
-               public int nY座標dotが位置するgridを返す_最高解像度( int nY )\r
-               {\r
-                       int num = this._Form.pictureBox譜面パネル.ClientSize.Height - nY;\r
-                       return ( ( num / C小節.n1グリッドの高さdot ) + this.n現在の譜面表示下辺の譜面先頭からの位置grid );\r
-               }\r
-               public int nレーンの左端X座標dotを返す( int nレーン番号0to )\r
-               {\r
-                       if( ( nレーン番号0to >= 0 ) && ( nレーン番号0to < this.listレーン.Count ) )\r
-                       {\r
-                               return this.listレーン[ nレーン番号0to ].n位置Xdot;\r
-                       }\r
-                       return -1;\r
-               }\r
-               public int nレーン名に対応するレーン番号を返す( string strレーン名 )\r
-               {\r
-                       int nLaneNo = 0;\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               if( cレーン.strレーン名.Equals( strレーン名 ) )\r
-                               {\r
-                                       return nLaneNo;\r
-                               }\r
-                               nLaneNo++;\r
-                       }\r
-                       return -1;\r
-               }\r
-               public int n現在の最大の小節番号を返す()\r
-               {\r
-                       int nBar = -1;\r
-                       foreach( KeyValuePair<int, C小節> pair in this.dic小節 )\r
-                       {\r
-                               C小節 c小節 = pair.Value;\r
-                               if( c小節.n小節番号0to3599 > nBar )\r
-                               {\r
-                                       nBar = c小節.n小節番号0to3599;\r
-                               }\r
-                       }\r
-                       return nBar;\r
-               }\r
-               public int n全小節の高さdotの合計を返す()\r
-               {\r
-                       int nHeights = 0;\r
-                       foreach( KeyValuePair<int, C小節> pair in this.dic小節 )\r
-                       {\r
-                               nHeights += pair.Value.n小節長倍率を考慮した現在の小節の高さdot;\r
-                       }\r
-                       return nHeights;\r
-               }\r
-               public int n全小節の高さgridの合計を返す()\r
-               {\r
-                       int num = 0;\r
-                       foreach( KeyValuePair<int, C小節> pair in this.dic小節 )\r
-                       {\r
-                               num += pair.Value.n小節長倍率を考慮した現在の小節の高さgrid;\r
-                       }\r
-                       return num;\r
-               }\r
-               public int n譜面先頭からの位置gridから描画領域内のY座標dotを返す( int n譜面先頭からの位置grid, Size sz描画領域dot )\r
-               {\r
-                       int num = n譜面先頭からの位置grid - this.n現在の譜面表示下辺の譜面先頭からの位置grid;\r
-                       return ( sz描画領域dot.Height - ( num * C小節.n1グリッドの高さdot ) );\r
-               }\r
-               public int n譜面先頭からみた小節先頭の位置gridを返す( int n小節番号0to3599 )\r
-               {\r
-                       if( ( n小節番号0to3599 < 0 ) || ( n小節番号0to3599 > this.n現在の最大の小節番号を返す() ) )\r
-                       {\r
-                               return -1;\r
-                       }\r
-                       int num = 0;\r
-                       for( int i = 0; i < n小節番号0to3599; i++ )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       num += c小節.n小節長倍率を考慮した現在の小節の高さgrid;\r
-                               }\r
-                       }\r
-                       return num;\r
-               }\r
-               public C小節 pチップの存在する小節を返す( Cチップ cc )\r
-               {\r
-                       foreach( KeyValuePair<int, C小節> pair in this.dic小節 )\r
-                       {\r
-                               C小節 c小節 = pair.Value;\r
-                               if( c小節.listチップ.Contains( cc ) )\r
-                               {\r
-                                       return c小節;\r
-                               }\r
-                       }\r
-                       return null;\r
-               }\r
-               public Cチップ p指定された座標dotにあるチップを返す( int x, int y )\r
-               {\r
-                       int num = this.nX座標dotが位置するレーン番号を返す( x );\r
-                       if( num >= 0 )\r
-                       {\r
-                               int num2 = this.nY座標dotが位置するgridを返す_最高解像度( y );\r
-                               C小節 c小節 = this.p譜面先頭からの位置gridを含む小節を返す( num2 );\r
-                               if( c小節 == null )\r
-                               {\r
-                                       return null;\r
-                               }\r
-                               int num3 = this.n譜面先頭からみた小節先頭の位置gridを返す( c小節.n小節番号0to3599 );\r
-                               foreach( Cチップ cチップ in c小節.listチップ )\r
-                               {\r
-                                       int num4 = num3 + cチップ.n位置grid;\r
-                                       int num5 = C小節.n位置変換dot2grid( Cチップ.nチップの高さdot );\r
-                                       if( ( ( cチップ.nレーン番号0to == num ) && ( num4 <= num2 ) ) && ( num2 <= ( num4 + num5 ) ) )\r
-                                       {\r
-                                               return cチップ;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return null;\r
-               }\r
-               public Cチップ p指定位置にあるチップを返す( int n小節番号0to, int nレーン番号0to, int n小節内の位置grid )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               for( int i = 0; i < c小節.listチップ.Count; i++ )\r
-                               {\r
-                                       Cチップ cチップ = c小節.listチップ[ i ];\r
-                                       if( ( cチップ.n位置grid == n小節内の位置grid ) && ( cチップ.nレーン番号0to == nレーン番号0to ) )\r
-                                       {\r
-                                               return cチップ;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return null;\r
-               }\r
-               public C小節 p小節を返す( int n小節番号0to3599 )\r
-               {\r
-                       C小節 c小節 = null;\r
-                       if( this.dic小節.TryGetValue( n小節番号0to3599, out c小節 ) )\r
-                       {\r
-                               return c小節;\r
-                       }\r
-                       return null;\r
-               }\r
-               public C小節 p譜面先頭からの位置gridを含む小節を返す( int n譜面先頭からの位置grid )\r
-               {\r
-                       int num = 0;\r
-                       int num2 = this.n現在の最大の小節番号を返す();\r
-                       for( int i = 0; i <= num2; i++ )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       num += c小節.n小節長倍率を考慮した現在の小節の高さgrid;\r
-                                       if( n譜面先頭からの位置grid < num )\r
-                                       {\r
-                                               return c小節;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return null;\r
-               }\r
-               public void tチップを削除する( int nレーン番号0to, int n譜面先頭からの位置grid )\r
-               {\r
-                       C小節 c小節 = this.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
-                       if( c小節 != null )\r
-                       {\r
-                               bool b削除完了;\r
-                               int num = n譜面先頭からの位置grid - this.n譜面先頭からみた小節先頭の位置gridを返す( c小節.n小節番号0to3599 );\r
-                               this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();\r
-                               int laneBEAT = this._Form.mgr譜面管理者.nレーン名に対応するレーン番号を返す( "BEAT" );\r
-                               do\r
-                               {\r
-                                       Cレーン cレーン = this.listレーン[ nレーン番号0to ];\r
-                                       bool bRGBGuitar = ( ( cレーン.eレーン種別 == Cレーン.E種別.GtR ) || ( cレーン.eレーン種別 == Cレーン.E種別.GtG ) ) || ( cレーン.eレーン種別 == Cレーン.E種別.GtB );\r
-                                       bool bRGBBass = ( ( cレーン.eレーン種別 == Cレーン.E種別.BsR ) || ( cレーン.eレーン種別 == Cレーン.E種別.BsG ) ) || ( cレーン.eレーン種別 == Cレーン.E種別.BsB );\r
-                                       b削除完了 = true;\r
-                                       foreach( Cチップ cチップ in c小節.listチップ )\r
-                                       {\r
-                                               if( cチップ.n位置grid == num )\r
-                                               {\r
-                                                       //cチップ.nチャンネル番号00toFF = 0xF3;                       // 裏チップにする (表は0xF8)\r
-                                                       //cチップ.b裏 = true;\r
-                                                       if( cチップ.nレーン番号0to == nレーン番号0to )\r
-                                                       {\r
-                                                               Cチップ cc = new Cチップ();\r
-                                                               cc.tコピーfrom( cチップ );\r
-                                                               Cチップ配置用UndoRedo redo = new Cチップ配置用UndoRedo( c小節.n小節番号0to3599, cc );\r
-                                                               this._Form.mgrUndoRedo管理者.tノードを追加する( new CUndoRedoセル<Cチップ配置用UndoRedo>( null, new DGUndoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のUndo ), new DGRedoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のRedo ), redo, redo ) );\r
-\r
-                                                               #region [ チップオブジェクトを削除する。ただしBEATオブジェクトは削除禁止。裏に回すだけ。]\r
-                                                               if ( cチップ.nレーン番号0to != laneBEAT )\r
-                                                               {\r
-                                                                       c小節.listチップ.Remove( cチップ );\r
-                                                                       b削除完了 = false;\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       int p = c小節.listチップ.IndexOf( cチップ );\r
-                                                                       cチップ.nチャンネル番号00toFF = (cチップ.b裏)? 0xF3 : 0xF8;               // 表裏反転\r
-                                                                       cチップ.b裏 = !cチップ.b裏;\r
-                                                                       c小節.listチップ[ p ] = cチップ;\r
-                                                               }\r
-                                                               this._Form.b未保存 = true;\r
-                                                               #endregion\r
-\r
-                                                               break;\r
-                                                       }\r
-                                                       if( ( bRGBGuitar && ( this.listレーン[ cチップ.nレーン番号0to ].eレーン種別 == Cレーン.E種別.GtR ) ) && ( cチップ.n値_整数1to1295 == 2 ) )\r
-                                                       {\r
-                                                               Cチップ cチップ3 = new Cチップ();\r
-                                                               cチップ3.tコピーfrom( cチップ );\r
-                                                               Cチップ配置用UndoRedo redo2 = new Cチップ配置用UndoRedo( c小節.n小節番号0to3599, cチップ3 );\r
-                                                               this._Form.mgrUndoRedo管理者.tノードを追加する( new CUndoRedoセル<Cチップ配置用UndoRedo>( null, new DGUndoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のUndo ), new DGRedoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のRedo ), redo2, redo2 ) );\r
-                                                               c小節.listチップ.Remove( cチップ );\r
-                                                               b削除完了 = false;\r
-                                                               this._Form.b未保存 = true;\r
-                                                               break;\r
-                                                       }\r
-                                                       if( ( bRGBBass && ( this.listレーン[ cチップ.nレーン番号0to ].eレーン種別 == Cレーン.E種別.BsR ) ) && ( cチップ.n値_整数1to1295 == 2 ) )\r
-                                                       {\r
-                                                               Cチップ cチップ4 = new Cチップ();\r
-                                                               cチップ4.tコピーfrom( cチップ );\r
-                                                               Cチップ配置用UndoRedo redo3 = new Cチップ配置用UndoRedo( c小節.n小節番号0to3599, cチップ4 );\r
-                                                               this._Form.mgrUndoRedo管理者.tノードを追加する( new CUndoRedoセル<Cチップ配置用UndoRedo>( null, new DGUndoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のUndo ), new DGRedoを実行する<Cチップ配置用UndoRedo>( this.tチップ削除のRedo ), redo3, redo3 ) );\r
-                                                               c小節.listチップ.Remove( cチップ );\r
-                                                               b削除完了 = false;\r
-                                                               this._Form.b未保存 = true;\r
-                                                               break;\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               while( !b削除完了 );\r
-                               this._Form.tUndoRedo用GUIの有効無効を設定する();\r
-                               this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();\r
-                       }\r
-               }\r
-               public void tチップを配置または置換する( int nレーン番号0to, int n譜面先頭からの位置grid, int nチップ値_整数, float fチップ値_浮動小数, bool b裏として配置 )\r
-               {\r
-                       C小節 c小節 = this.p譜面先頭からの位置gridを含む小節を返す( n譜面先頭からの位置grid );\r
-                       if( c小節 != null )\r
-                       {\r
-                               this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();\r
-                               this.tチップを削除する( nレーン番号0to, n譜面先頭からの位置grid );\r
-                               if( ( ( this.listレーン[ nレーン番号0to ].eレーン種別 == Cレーン.E種別.GtR ) || ( this.listレーン[ nレーン番号0to ].eレーン種別 == Cレーン.E種別.BsR ) ) && (nチップ値_整数 == 2 ) )\r
-                               {\r
-                                       this.tチップを削除する( nレーン番号0to + 1, n譜面先頭からの位置grid );\r
-                                       this.tチップを削除する( nレーン番号0to + 2, n譜面先頭からの位置grid );\r
-                               }\r
-                               Cレーン cレーン = this.listレーン[ nレーン番号0to ];\r
-                               Cチップ item = new Cチップ();\r
-                               item.nチャンネル番号00toFF = b裏として配置 ? cレーン.nチャンネル番号_裏00toFF : cレーン.nチャンネル番号_表00toFF;\r
-                               item.nレーン番号0to = nレーン番号0to;\r
-                               item.n位置grid = n譜面先頭からの位置grid - this.n譜面先頭からみた小節先頭の位置gridを返す( c小節.n小節番号0to3599 );\r
-                               item.n値_整数1to1295 = nチップ値_整数;\r
-                               item.f値_浮動小数 = fチップ値_浮動小数;\r
-                               item.b裏 = b裏として配置;\r
-                               c小節.listチップ.Add( item );\r
-                               Cチップ cc = new Cチップ();\r
-                               cc.tコピーfrom( item );\r
-                               Cチップ配置用UndoRedo redo = new Cチップ配置用UndoRedo( c小節.n小節番号0to3599, cc );\r
-                               this._Form.mgrUndoRedo管理者.tノードを追加する( new CUndoRedoセル<Cチップ配置用UndoRedo>( null, new DGUndoを実行する<Cチップ配置用UndoRedo>( this.tチップ配置のUndo ), new DGRedoを実行する<Cチップ配置用UndoRedo>( this.tチップ配置のRedo ), redo, redo ) );\r
-                               int num = this.n現在の最大の小節番号を返す();\r
-                               if( c小節.n小節番号0to3599 == num )\r
-                               {\r
-                                       for( int i = num + 1; i <= ( num + 4 ); i++ )\r
-                                       {\r
-                                               this.dic小節.Add( i, new C小節( i ) );\r
-                                               this._Form.mgrUndoRedo管理者.tノードを追加する( new CUndoRedoセル<int>( null, new DGUndoを実行する<int>( this.t小節挿入のUndo ), new DGRedoを実行する<int>( this.t小節挿入のRedo ), i, i ) );\r
-                                       }\r
-                               }\r
-                               this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();\r
-                               this._Form.tUndoRedo用GUIの有効無効を設定する();\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ削除のRedo( Cチップ配置用UndoRedo ur変更前, Cチップ配置用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更前.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               for( int i = 0; i < c小節.listチップ.Count; i++ )\r
-                               {\r
-                                       Cチップ cチップ = c小節.listチップ[ i ];\r
-                                       if( ( cチップ.n位置grid == ur変更前.cc.n位置grid ) && ( cチップ.nレーン番号0to == ur変更前.cc.nレーン番号0to ) )\r
-                                       {\r
-                                               c小節.listチップ.RemoveAt( i );\r
-                                               this._Form.b未保存 = true;\r
-                                               return;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               public void tチップ削除のUndo( Cチップ配置用UndoRedo ur変更前, Cチップ配置用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更前.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               Cチップ item = new Cチップ();\r
-                               item.tコピーfrom( ur変更前.cc );\r
-                               c小節.listチップ.Add( item );\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ選択のRedo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.b確定選択中 = true;\r
-                       }\r
-               }\r
-               public void tチップ選択のUndo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.b確定選択中 = false;\r
-                       }\r
-               }\r
-               public void tチップ選択解除のRedo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.b確定選択中 = false;\r
-                       }\r
-               }\r
-               public void tチップ選択解除のUndo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.b確定選択中 = true;\r
-                       }\r
-               }\r
-               public void tチップ配置のRedo( Cチップ配置用UndoRedo ur変更前, Cチップ配置用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更前.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               Cチップ item = new Cチップ();\r
-                               item.tコピーfrom( ur変更前.cc );\r
-                               c小節.listチップ.Add( item );\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ配置のUndo( Cチップ配置用UndoRedo ur変更前, Cチップ配置用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更前.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               for( int i = 0; i < c小節.listチップ.Count; i++ )\r
-                               {\r
-                                       Cチップ cチップ = c小節.listチップ[ i ];\r
-                                       if( ( cチップ.n位置grid == ur変更前.cc.n位置grid ) && ( cチップ.nレーン番号0to == ur変更前.cc.nレーン番号0to ) )\r
-                                       {\r
-                                               c小節.listチップ.RemoveAt( i );\r
-                                               this._Form.b未保存 = true;\r
-                                               return;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               public void tチップ番号置換のRedo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.n値_整数1to1295 = ur変更後.n値_整数1to1295;\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ番号置換のUndo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更後.n小節番号0to, ur変更後.nレーン番号0to, ur変更後.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               cチップ.n値_整数1to1295 = ur変更前.n値_整数1to1295;\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ表裏反転のRedo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               if( cチップ.b裏 )\r
-                               {\r
-                                       cチップ.nチャンネル番号00toFF = this.listレーン[ cチップ.nレーン番号0to ].nチャンネル番号_表00toFF;\r
-                                       cチップ.b裏 = false;\r
-                               }\r
-                               else\r
-                               {\r
-                                       cチップ.nチャンネル番号00toFF = this.listレーン[ cチップ.nレーン番号0to ].nチャンネル番号_裏00toFF;\r
-                                       cチップ.b裏 = true;\r
-                               }\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void tチップ表裏反転のUndo( Cチップ位置用UndoRedo ur変更前, Cチップ位置用UndoRedo ur変更後 )\r
-               {\r
-                       Cチップ cチップ = this.p指定位置にあるチップを返す( ur変更前.n小節番号0to, ur変更前.nレーン番号0to, ur変更前.n位置grid );\r
-                       if( cチップ != null )\r
-                       {\r
-                               if( cチップ.b裏 )\r
-                               {\r
-                                       cチップ.nチャンネル番号00toFF = this.listレーン[ cチップ.nレーン番号0to ].nチャンネル番号_表00toFF;\r
-                                       cチップ.b裏 = false;\r
-                               }\r
-                               else\r
-                               {\r
-                                       cチップ.nチャンネル番号00toFF = this.listレーン[ cチップ.nレーン番号0to ].nチャンネル番号_裏00toFF;\r
-                                       cチップ.b裏 = true;\r
-                               }\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void t初期化()\r
-               {\r
-                       this.t初期化_listレーンの生成();\r
-                       this.t初期化_小節を10個まで作成する();\r
-                       this.t初期化_背景画像を生成する();\r
-                       this.t初期化_スクロールバーを初期設定する();\r
-               }\r
-               public void t小節削除のRedo( int nダミー, int n削除する小節番号0to )\r
-               {\r
-                       this.dic小節.Remove( n削除する小節番号0to );\r
-                       int num = this.n現在の最大の小節番号を返す();\r
-                       for( int i = n削除する小節番号0to + 1; i <= num; i++ )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       this.dic小節.Remove( i );\r
-                                       c小節.n小節番号0to3599 = i - 1;\r
-                                       this.dic小節.Add( c小節.n小節番号0to3599, c小節 );\r
-                               }\r
-                       }\r
-                       this._Form.b未保存 = true;\r
-               }\r
-               public void t小節削除のUndo( int n削除された小節番号0to, int nダミー )\r
-               {\r
-                       for( int i = this.n現在の最大の小節番号を返す(); i >= n削除された小節番号0to; i-- )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       this.dic小節.Remove( i );\r
-                                       c小節.n小節番号0to3599 = i + 1;\r
-                                       this.dic小節.Add( c小節.n小節番号0to3599, c小節 );\r
-                               }\r
-                       }\r
-                       this.dic小節.Add( n削除された小節番号0to, new C小節( n削除された小節番号0to ) );\r
-                       this._Form.b未保存 = true;\r
-               }\r
-               public void t小節挿入のRedo( int nダミー, int n挿入する小節番号0to )\r
-               {\r
-                       for( int i = this.n現在の最大の小節番号を返す(); i >= n挿入する小節番号0to; i-- )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       this.dic小節.Remove( i );\r
-                                       c小節.n小節番号0to3599 = i + 1;\r
-                                       this.dic小節.Add( c小節.n小節番号0to3599, c小節 );\r
-                               }\r
-                       }\r
-                       this.dic小節.Add( n挿入する小節番号0to, new C小節( n挿入する小節番号0to ) );\r
-                       this._Form.b未保存 = true;\r
-               }\r
-               public void t小節挿入のUndo( int n挿入された小節番号0to, int nダミー )\r
-               {\r
-                       this.dic小節.Remove( n挿入された小節番号0to );\r
-                       int num = this.n現在の最大の小節番号を返す();\r
-                       for( int i = n挿入された小節番号0to + 1; i <= num; i++ )\r
-                       {\r
-                               C小節 c小節 = this.p小節を返す( i );\r
-                               if( c小節 != null )\r
-                               {\r
-                                       this.dic小節.Remove( i );\r
-                                       c小節.n小節番号0to3599 = i - 1;\r
-                                       this.dic小節.Add( c小節.n小節番号0to3599, c小節 );\r
-                               }\r
-                       }\r
-                       this._Form.b未保存 = true;\r
-               }\r
-               public void t小節長変更のRedo( C小節用UndoRedo ur変更前, C小節用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更後.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               c小節.f小節長倍率 = ur変更後.f倍率;\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void t小節長変更のUndo( C小節用UndoRedo ur変更前, C小節用UndoRedo ur変更後 )\r
-               {\r
-                       C小節 c小節 = this.p小節を返す( ur変更前.n小節番号0to );\r
-                       if( c小節 != null )\r
-                       {\r
-                               c小節.f小節長倍率 = ur変更前.f倍率;\r
-                               this._Form.b未保存 = true;\r
-                       }\r
-               }\r
-               public void t垂直スクロールバーと譜面可視領域の上下位置の調整()\r
-               {\r
-                       VScrollBar bar = this._Form.vScrollBar譜面用垂直スクロールバー;\r
-                       PictureBox box = this._Form.pictureBox譜面パネル;\r
-                       bar.Minimum = 0;\r
-                       bar.Maximum = this.n全小節の高さgridの合計を返す() - 1;\r
-                       bar.SmallChange = C小節.n基準の高さgrid / 0x10;\r
-                       bar.LargeChange = C小節.n基準の高さgrid;\r
-                       bar.Enabled = bar.Maximum > bar.LargeChange;\r
-                       if( bar.Enabled )\r
-                       {\r
-                               this.n現在の譜面表示下辺の譜面先頭からの位置grid = ( ( bar.Maximum + 1 ) - bar.LargeChange ) - bar.Value;\r
-                               box.Refresh();\r
-                       }\r
-               }\r
-               public void t水平スクロールバーと譜面パネル左右位置の調整()\r
-               {\r
-                       HScrollBar bar = this._Form.hScrollBar譜面用水平スクロールバー;\r
-                       SplitContainer container = this._Form.splitContainerタブと譜面を分割;\r
-                       PictureBox box = this._Form.pictureBox譜面パネル;\r
-                       bar.Minimum = 0;\r
-                       bar.Maximum = box.Width - 1;\r
-                       bar.SmallChange = 5;\r
-                       bar.LargeChange = container.Panel2.Width;\r
-                       bar.Enabled = bar.Maximum > bar.LargeChange;\r
-                       if( bar.Enabled )\r
-                       {\r
-                               int num = bar.Value;\r
-                               if( ( num + bar.LargeChange ) > bar.Maximum )\r
-                               {\r
-                                       num = ( bar.Maximum - bar.LargeChange ) + 1;\r
-                               }\r
-                               bar.Value = num;\r
-                               box.Location = new Point( -num, 0 );\r
-                               box.Refresh();\r
-                       }\r
-               }\r
-               public void t譜面を描画する( Graphics g, Size sz描画対象サイズdot, Rectangle rc可視領域dot )\r
-               {\r
-                       this.strfmt小節番号文字フォーマット.LineAlignment = StringAlignment.Center;\r
-                       this.strfmt小節番号文字フォーマット.Alignment = StringAlignment.Center;\r
-                       this.strfmtレーン名文字フォーマット.LineAlignment = StringAlignment.Near;\r
-                       this.strfmtレーン名文字フォーマット.Alignment = StringAlignment.Center;\r
-                       this.strfmtレーン割付チップ番号文字フォーマット.LineAlignment = StringAlignment.Near;\r
-                       this.strfmtレーン割付チップ番号文字フォーマット.Alignment = StringAlignment.Near;\r
-                       int h = 0;\r
-                       int num2 = 0;\r
-                       int num3 = this.n現在の譜面表示下辺の譜面先頭からの位置grid * C小節.n1グリッドの高さdot;\r
-                       int num4 = num3 + rc可視領域dot.Height;\r
-                       int maxBar = this.n現在の最大の小節番号を返す();\r
-                       int bar = 0;\r
-                       while( bar <= maxBar )\r
-                       {\r
-                               C小節 cs = this.p小節を返す( bar );\r
-                               if( cs != null )\r
-                               {\r
-                                       num2 = h + cs.n小節長倍率を考慮した現在の小節の高さdot;\r
-                                       if( h >= num4 )\r
-                                       {\r
-                                               break;\r
-                                       }\r
-                                       if( num2 > num3 )\r
-                                       {\r
-                                               Rectangle rectangle = new Rectangle( 0, sz描画対象サイズdot.Height - ( num2 - num3 ), sz描画対象サイズdot.Width, num2 - h );\r
-                                               Rectangle rectangle2 = new Rectangle( rc可視領域dot.X, rectangle.Y, rc可視領域dot.Width, rectangle.Height );\r
-                                               this.t譜面を描画する_1小節を描画する( g, cs, rectangle, rectangle2 );\r
-                                       }\r
-                               }\r
-                               bar++;\r
-                               h = num2;\r
-                       }\r
-                       Rectangle rectangle3 = new Rectangle( 0, 0, sz描画対象サイズdot.Width, nレーン割付チップ番号表示高さdot );\r
-                       this.t譜面を描画する_レーン割付チップを描画する( g, rectangle3 );\r
-                       rectangle3 = new Rectangle( 0, 10, sz描画対象サイズdot.Width, nレーン番号表示高さdot );\r
-                       this.t譜面を描画する_レーン名を描画する( g, rectangle3 );\r
-               }\r
-\r
-               /// <summary>\r
-               /// 指定した種類のレーンを非表示にする\r
-               /// </summary>\r
-               /// <param name="eLaneType">非表示にするレーンの種類</param>\r
-               public void tCollapseLanes( Cレーン.ELaneType eLaneType )\r
-               {\r
-                       // なお、格納/展開状態を、#DTXV_COLLAPSED_LANES とかでDTXファイルに残した方がいいかも。\r
-                       int count = this.listレーン.Count;\r
-                       for ( int i = 0; i < this.listレーン.Count; i++ )\r
-                       {\r
-                               Cレーン c = listレーン[ i ];\r
-                               if ( c.eLaneType == eLaneType && c.bIsVisible == true ) // 対象レーンが見つかったら\r
-                               {\r
-                                       this.listレーン[ i ].bIsVisible = false;\r
-                                       this.listレーン[ i ].n幅dot = 0;\r
-                               }\r
-                       }\r
-                       this.tRefreshDisplayLanes();\r
-               }\r
-               /// <summary>\r
-               /// 指定した種類のレーンを表示する\r
-               /// </summary>\r
-               /// <param name="eLaneType">表示にするレーンの種類</param>\r
-               public void tExpandLanes( Cレーン.ELaneType eLaneType )\r
-               {\r
-                       // tCollapseLanes()の反対の処理をする。\r
-\r
-                       for ( int i = 0; i < this.listレーン.Count; i++ )                            // 以下本番\r
-                       {\r
-                               Cレーン c = listレーン[ i ];\r
-                               if ( c.eLaneType == eLaneType && c.bIsVisible == false )        // 対象レーンが見つかったら\r
-                               {\r
-                                       this.listレーン[ i ].bIsVisible = true;\r
-                                       this.listレーン[ i ].n幅dot = Cレーン.LANEWIDTH;\r
-                               }\r
-                       }\r
-                       this.tRefreshDisplayLanes();\r
-               }\r
-\r
-               /// <summary>\r
-               /// レーンの表示/非表示を反映する\r
-               /// </summary>\r
-               /// <param name="eLaneType">表示にするレーンの種類</param>\r
-               public void tRefreshDisplayLanes()\r
-               {\r
-                       this.tRecalc_n位置XdotX();                                                                                    // レーン位置が変わったので、レーン毎のX座標を再計算\r
-                       this.t初期化_背景画像を生成する();                                                                  // レーン数が変わったので、レーン画像を納める背景も再生成\r
-                       this.t水平スクロールバーと譜面パネル左右位置の調整();                             // レーン数が変わったので、スクロールバーの長さも再調整\r
-               }\r
-\r
-               private void tRecalc_n位置XdotX()                                                                             // n位置Xdotの再計算\r
-               {\r
-                       int x = 0;\r
-                       int count = this.listレーン.Count;\r
-                       for ( int i = 0; i < count; i++ )\r
-                       {\r
-                               this.listレーン[ i ].n位置Xdot = x;\r
-                               x += this.listレーン[ i ].n幅dot;\r
-                       }\r
-               }\r
-\r
-               // チップのプロパティにすべきだが譜面管理者必要なため\r
-               public bool IsDrumsChip(Cチップ chip)\r
-               {\r
-                       return chip.nレーン番号0to >= nレーン名に対応するレーン番号を返す("LC") && chip.nレーン番号0to <= nレーン名に対応するレーン番号を返す("CY");\r
-               }\r
-\r
-               public bool IsGuitarChip(Cチップ chip)\r
-               {\r
-                       return chip.nレーン番号0to >= nレーン名に対応するレーン番号を返す("GtV") && chip.nレーン番号0to <= nレーン名に対応するレーン番号を返す("GtB");\r
-               }\r
-\r
-               public bool IsBassChip(Cチップ chip)\r
-               {\r
-                       return chip.nレーン番号0to >= nレーン名に対応するレーン番号を返す("BsV") && chip.nレーン番号0to <= nレーン名に対応するレーン番号を返す("BsB");\r
-               }\r
-\r
-               public bool IsPlayableChip(Cチップ chip)\r
-               {\r
-                       return IsDrumsChip(chip) || IsBassChip(chip) || IsGuitarChip(chip);\r
-               }\r
-\r
-               #region [ private ]\r
-               //-----------------\r
-               private Cメインフォーム _Form;\r
-               private Brush brレーン割付番号文字ブラシ = new SolidBrush( Color.White );\r
-               private Brush brレーン割付番号文字ブラシ影 = new SolidBrush( Color.Black );\r
-               private Brush brレーン名文字ブラシ = new SolidBrush( Color.FromArgb( 0xff, 220, 220, 220 ) );\r
-               private Brush brレーン名文字ブラシ影 = new SolidBrush( Color.Black );\r
-               private Brush br小節番号文字ブラシ = new SolidBrush( Color.FromArgb( 80, 0xff, 0xff, 0xff ) );\r
-               private Font ftレーン割付チップ番号文字フォント = new Font( "MS UI Gothic", 7f, FontStyle.Regular );\r
-               private Font ftレーン番号文字フォント = new Font( "MS US Gothic", 8f, FontStyle.Regular );\r
-               private Font ft小節番号文字フォント = new Font( "MS UI Gothic", 50f, FontStyle.Regular );\r
-               private Pen penガイド線ペン = new Pen( Color.FromArgb( 50, 50, 50 ) );\r
-               private Pen penレーン区分線ペン細 = new Pen( Color.Gray );\r
-               private Pen penレーン区分線ペン太 = new Pen( Color.White, 2f );\r
-               private Pen pen小節線ペン = new Pen( Color.White, 2f );\r
-               private Pen pen拍線ペン = new Pen( Color.Gray );\r
-               private StringFormat strfmtレーン割付チップ番号文字フォーマット = new StringFormat();\r
-               private StringFormat strfmtレーン名文字フォーマット = new StringFormat();\r
-               private StringFormat strfmt小節番号文字フォーマット = new StringFormat();\r
-\r
-               private void t初期化_listレーンの生成()\r
-               {\r
-                       this.listレーン.Clear();\r
-                       int width = Cレーン.LANEWIDTH;\r
-                       int alpha = 0x19;\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BPM, "BPM", 0x08, 0x03, true, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BPM, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BEAT, "BEAT", 0xF8, 0xF3, true, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.Beat, false ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "LC",  0x1a, 0x1a, true,  Color.FromArgb( alpha, 0, 0xaf, 0xff ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "HH",   0x11, 0x18, false, Color.FromArgb( alpha, 0, 0xff, 0xff ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "LP",   0x1B, 0x1C, false, Color.FromArgb( alpha, 0xff, 0x7f, 0xaf ), 0, width, Cレーン.ELaneType.LP, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SD",   0x12, 0x12, false, Color.FromArgb( alpha, 0xff, 0xff, 0 ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "BD",  0x13, 0x13, false, Color.FromArgb( alpha, 0xff, 0x7f, 0x7f ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "HT",  0x14, 0x14, false, Color.FromArgb( alpha, 0, 0xff, 0 ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "LT",  0x15, 0x15, false, Color.FromArgb( alpha, 0xff, 0, 0 ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "FT",  0x17, 0x17, false, Color.FromArgb( alpha, 0xff, 0, 0xff ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "CY",  0x16, 0x19, false, Color.FromArgb( alpha, 0, 0xaf, 0xff ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.FI,  "FI",  0x53, 0x53, true,  Color.FromArgb( alpha, 0xff, 0xff, 0 ), 0, width, Cレーン.ELaneType.Drums, true ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "BGM", 0x01, 0x01, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGM, true ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE1", 0x61, 0x61, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.SE1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE2", 0x62, 0x62, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.SE1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE3", 0x63, 0x63, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.SE1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE4", 0x64, 0x64, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.SE1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE5", 0x65, 0x65, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.SE1_5, true ) );\r
-\r
-                       // SE6~32は、初期状態では非表示とする。(n幅dotを0にし、bIsVisibleをfalseにする)\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE6", 0x66, 0x66, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE7", 0x67, 0x67, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE8", 0x68, 0x68, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "SE9", 0x69, 0x69, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S10", 0x70, 0x70, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S11", 0x71, 0x71, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S12", 0x72, 0x72, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S13", 0x73, 0x73, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S14", 0x74, 0x74, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S15", 0x75, 0x75, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S16", 0x76, 0x76, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S17", 0x77, 0x77, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S18", 0x78, 0x78, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S19", 0x79, 0x79, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S20", 0x80, 0x80, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S21", 0x81, 0x81, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S22", 0x82, 0x82, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S23", 0x83, 0x83, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S24", 0x84, 0x84, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S25", 0x85, 0x85, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S26", 0x86, 0x86, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S27", 0x87, 0x87, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S28", 0x88, 0x88, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S29", 0x89, 0x89, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S30", 0x90, 0x90, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S31", 0x91, 0x91, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.WAV, "S32", 0x92, 0x92, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.SE6_32, false ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.GtV, "GtV", 0,    0,    true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.Guitar, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.GtR, "GtR", 0,    0,    false, Color.FromArgb( alpha, 0xff, 0, 0 ), 0, width, Cレーン.ELaneType.Guitar, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.GtG, "GtG", 0,    0,    false, Color.FromArgb( alpha, 0, 0xff, 0 ), 0, width, Cレーン.ELaneType.Guitar, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.GtB, "GtB", 0,    0,    false, Color.FromArgb( alpha, 0, 0x80, 0xff ), 0, width, Cレーン.ELaneType.Guitar, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.GtW, "GtW", 0x28, 0x28, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.Guitar, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BsV, "BsV", 0,    0,    true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.Bass, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BsR, "BsR", 0,    0,    false, Color.FromArgb( alpha, 0xff, 0, 0 ), 0, width, Cレーン.ELaneType.Bass, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BsG, "BsG", 0,    0,    false, Color.FromArgb( alpha, 0, 0xff, 0 ), 0, width, Cレーン.ELaneType.Bass, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BsB, "BsB", 0,    0,    false, Color.FromArgb( alpha, 0, 0x80, 0xff ), 0, width, Cレーン.ELaneType.Bass, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BsW, "BsW", 0xa8, 0xa8, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.Bass, true ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.AVI, "AVI", 0x54, 0x5A, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.AVI, true ) );\r
-\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG1", 0x04, 0xc4, true,  Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGA1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG2", 0x07, 0xc7, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGA1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG3", 0x55, 0xd5, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGA1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG4", 0x56, 0xd6, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGA1_5, true ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG5", 0x57, 0xd7, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, width, Cレーン.ELaneType.BGA1_5, true ) );\r
-\r
-                       // BG6~8も、初期状態では非表示とする。(n幅dotを0にし、bIsVisibleをfalseにする)\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG6", 0x58, 0xd8, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.BGA6_8, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG7", 0x59, 0xd9, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.BGA6_8, false ) );\r
-                       this.listレーン.Add( new Cレーン( Cレーン.E種別.BMP, "BG8", 0x60, 0xe0, false, Color.FromArgb( alpha, 160, 160, 160 ), 0, 0, Cレーン.ELaneType.BGA6_8, false ) );\r
-\r
-                       this.tRecalc_n位置XdotX();    // 0で固定初期化していたn位置XdotXを、ここで計算する。\r
-                                                                               // (初期化の際に1つ1つまじめに計算しても良いが、単純にコード記述量が減るのでここでまとめて計算している)\r
-\r
-               }\r
-               private void t初期化_スクロールバーを初期設定する()\r
-               {\r
-                       this._Form.hScrollBar譜面用水平スクロールバー.Value = 0;\r
-                       this._Form.vScrollBar譜面用垂直スクロールバー.Value = 0;\r
-                       this.t水平スクロールバーと譜面パネル左右位置の調整();\r
-                       this.t垂直スクロールバーと譜面可視領域の上下位置の調整();\r
-                       this._Form.vScrollBar譜面用垂直スクロールバー.Value = ( this._Form.vScrollBar譜面用垂直スクロールバー.Maximum + 1 ) - this._Form.vScrollBar譜面用垂直スクロールバー.LargeChange;\r
-               }\r
-               private void t初期化_小節を10個まで作成する()\r
-               {\r
-                       for( int i = 0; i < 10; i++ )\r
-                       {\r
-                               this.dic小節.Add( i, new C小節( i ) );\r
-                       }\r
-               }\r
-               private void t初期化_背景画像を生成する()\r
-               {\r
-                       int width = 0;\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               width += cレーン.n幅dot;\r
-                       }\r
-                       this.bmp背景画像 = new Bitmap( width, 1 );\r
-                       Graphics graphics = Graphics.FromImage( this.bmp背景画像 );\r
-                       int x = 0;\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               graphics.FillRectangle( new SolidBrush( cレーン.col背景色 ), x, 0, cレーン.n幅dot, this.bmp背景画像.Height );\r
-                               x += cレーン.n幅dot;\r
-                       }\r
-                       graphics.Dispose();\r
-                       this._Form.pictureBox譜面パネル.Width = this.bmp背景画像.Width;\r
-                       this._Form.pictureBox譜面パネル.BackgroundImage = this.bmp背景画像;\r
-                       this._Form.pictureBox譜面パネル.BackgroundImageLayout = ImageLayout.Tile;\r
-               }\r
-               private void t譜面を描画する_1小節を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域, Rectangle rc小節のPicBox内可視領域 )\r
-               {\r
-                       this.t譜面を描画する_1小節を描画する_小節番号を描画する( g, cs, rc小節のPicBox内可視領域 );\r
-                       this.t譜面を描画する_1小節を描画する_ガイド線を描画する( g, cs, rc小節のPicBox内描画領域 );\r
-                       this.t譜面を描画する_1小節を描画する_拍線を描画する( g, cs, rc小節のPicBox内描画領域 );\r
-                       this.t譜面を描画する_1小節を描画する_レーン区分線を描画する( g, cs, rc小節のPicBox内描画領域 );\r
-                       this.t譜面を描画する_1小節を描画する_小節線を描画する( g, cs, rc小節のPicBox内描画領域 );\r
-                       this.t譜面を描画する_1小節を描画する_チップを描画する( g, cs, rc小節のPicBox内描画領域 );\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_ガイド線を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       if( this.n現在のガイド幅grid > 1 )\r
-                       {\r
-                               int num = cs.n小節長倍率を考慮した現在の小節の高さgrid;\r
-                               for( int i = 0; i < num; i += this.n現在のガイド幅grid )\r
-                               {\r
-                                       int num3 = rc小節のPicBox内描画領域.Bottom - ( i * C小節.n1グリッドの高さdot );\r
-                                       g.DrawLine( this.penガイド線ペン, rc小節のPicBox内描画領域.X, num3, rc小節のPicBox内描画領域.Right, num3 );\r
-                               }\r
-                       }\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_チップを描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       cs.listチップ.Sort();\r
-                       Rectangle rectangle = new Rectangle( 0, 0, 0, 0 );\r
-                       foreach( Cチップ cチップ in cs.listチップ )\r
-                       {\r
-                               if( cチップ.n枠外レーン数 != 0 )\r
-                               {\r
-                                       continue;\r
-                               }\r
-                               int num = cチップ.n位置grid;\r
-                               Cレーン cレーン = this.listレーン[ cチップ.nレーン番号0to ];\r
-                               if ( !cレーン.bIsVisible )\r
-                               {\r
-                                       continue;\r
-                               }\r
-                               rectangle.X = cレーン.n位置Xdot;\r
-                               rectangle.Y = ( rc小節のPicBox内描画領域.Bottom - ( num * C小節.n1グリッドの高さdot ) ) - Cチップ.nチップの高さdot;\r
-                               rectangle.Width = cレーン.n幅dot;\r
-                               rectangle.Height = Cチップ.nチップの高さdot;\r
-                               if( !cチップ.b裏 )\r
-                               {\r
-                                       switch( cレーン.eレーン種別 )\r
-                                       {\r
-                                               case Cレーン.E種別.GtR:\r
-                                               case Cレーン.E種別.GtG:\r
-                                               case Cレーン.E種別.GtB:\r
-                                               case Cレーン.E種別.BsR:\r
-                                               case Cレーン.E種別.BsG:\r
-                                               case Cレーン.E種別.BsB:\r
-                                                       if( ( ( cレーン.eレーン種別 != Cレーン.E種別.GtR ) || ( cチップ.n値_整数1to1295 != 2 ) ) && ( ( cレーン.eレーン種別 != Cレーン.E種別.BsR ) || ( cチップ.n値_整数1to1295 != 2 ) ) )\r
-                                                       {\r
-                                                               Cチップ.t表チップを描画する( g, rectangle, -1, cレーン.col背景色 );\r
-                                                               break;\r
-                                                       }\r
-                                                       rectangle.Width = cレーン.n幅dot * 3;\r
-                                                       Cチップ.tOPENチップを描画する( g, rectangle );\r
-                                                       break;\r
-\r
-                                               case Cレーン.E種別.BPM:\r
-                                                       Cチップ.t表チップを描画する( g, rectangle, cチップ.f値_浮動小数, cレーン.col背景色 );\r
-                                                       break;\r
-\r
-                                               case Cレーン.E種別.BEAT:\r
-                                                       Cチップ.t表チップを描画する( g, rectangle, cチップ.n値_整数1to1295, cレーン.col背景色, Cレーン.E種別.BEAT );\r
-                                                       break;\r
-\r
-                                               default:\r
-                                                       Cチップ.t表チップを描画する( g, rectangle, cチップ.n値_整数1to1295, cレーン.col背景色 );\r
-                                                       break;\r
-                                       }\r
-                               }\r
-                               else if( cレーン.eレーン種別 == Cレーン.E種別.BPM )\r
-                               {\r
-                                       Cチップ.t裏チップを描画する( g, rectangle, cチップ.f値_浮動小数, cレーン.col背景色 );\r
-                               }\r
-                               else if ( cレーン.eレーン種別 == Cレーン.E種別.BEAT )\r
-                               {\r
-                                       Cチップ.t裏チップを描画する( g, rectangle, cチップ.n値_整数1to1295, cレーン.col背景色, Cレーン.E種別.BEAT );\r
-                               }\r
-                               else\r
-                               {\r
-                                       Cチップ.t裏チップを描画する( g, rectangle, cチップ.n値_整数1to1295, cレーン.col背景色 );\r
-                               }\r
-                               if ( cチップ.bドラッグで選択中 || cチップ.b確定選択中 )\r
-                               {\r
-                                       Cチップ.tチップの周囲の太枠を描画する( g, rectangle );\r
-                               }\r
-                       }\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_レーン区分線を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       int num = 0;\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               Pen pen = cレーン.b左側の線が太線 ? this.penレーン区分線ペン太 : this.penレーン区分線ペン細;\r
-                               g.DrawLine( pen, num, rc小節のPicBox内描画領域.Top, num, rc小節のPicBox内描画領域.Bottom );\r
-                               num += cレーン.n幅dot;\r
-                       }\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_小節線を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       Rectangle rectangle = rc小節のPicBox内描画領域;\r
-                       g.DrawLine( this.pen小節線ペン, rectangle.X, rectangle.Bottom, rectangle.Right, rectangle.Bottom );\r
-                       g.DrawLine( this.pen小節線ペン, rectangle.X, rectangle.Top, rectangle.Right, rectangle.Top );\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_小節番号を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内可視領域 )\r
-               {\r
-                       g.DrawString( C変換.str小節番号を文字列3桁に変換して返す( cs.n小節番号0to3599 ), this.ft小節番号文字フォント, this.br小節番号文字ブラシ, rc小節のPicBox内可視領域, this.strfmt小節番号文字フォーマット );\r
-               }\r
-               private void t譜面を描画する_1小節を描画する_拍線を描画する( Graphics g, C小節 cs, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       int num = cs.n小節長倍率を考慮した現在の小節の高さgrid;\r
-                       for( int i = 0; i < num; i += C小節.n基準の高さgrid / 4 )\r
-                       {\r
-                               int num3 = rc小節のPicBox内描画領域.Bottom - ( i * C小節.n1グリッドの高さdot );\r
-                               g.DrawLine( this.pen拍線ペン, rc小節のPicBox内描画領域.X, num3, rc小節のPicBox内描画領域.Right, num3 );\r
-                       }\r
-               }\r
-               private void t譜面を描画する_レーン割付チップを描画する( Graphics g, Rectangle rc小節のPicBox内描画領域 )\r
-               {\r
-                       LinearGradientBrush brush = new LinearGradientBrush( rc小節のPicBox内描画領域, Color.FromArgb( 0xff, 0, 0, 100 ), Color.FromArgb( 0xff, 100, 100, 0xff ), LinearGradientMode.Vertical );\r
-                       g.FillRectangle( brush, rc小節のPicBox内描画領域 );\r
-                       brush.Dispose();\r
-                       Rectangle layoutRectangle = new Rectangle( 0, 0, 0, 0 );\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               if ( !cレーン.bIsVisible )\r
-                               {\r
-                                       continue;\r
-                               }\r
-                               layoutRectangle.X = ( rc小節のPicBox内描画領域.X + cレーン.n位置Xdot ) + 1;\r
-                               layoutRectangle.Y = rc小節のPicBox内描画領域.Y + 1;\r
-                               layoutRectangle.Width = cレーン.n幅dot;\r
-                               layoutRectangle.Height = rc小節のPicBox内描画領域.Height;\r
-                               if ( cレーン.nレーン割付チップ_表0or1to1295 > 0 )\r
-                               {\r
-                                       string s = C変換.str数値を36進数2桁に変換して返す( cレーン.nレーン割付チップ_表0or1to1295);\r
-                                       g.DrawString( s, this.ftレーン割付チップ番号文字フォント, this.brレーン割付番号文字ブラシ影, layoutRectangle, this.strfmtレーン割付チップ番号文字フォーマット );\r
-                                       layoutRectangle.X--;\r
-                                       layoutRectangle.Y--;\r
-                                       g.DrawString( s, this.ftレーン割付チップ番号文字フォント, this.brレーン割付番号文字ブラシ, layoutRectangle, this.strfmtレーン割付チップ番号文字フォーマット );\r
-                                       layoutRectangle.X++;\r
-                                       layoutRectangle.Y++;\r
-                               }\r
-                               layoutRectangle.X += cレーン.n幅dot / 2;\r
-                               if ( cレーン.nレーン割付チップ_裏0or1to1295 > 0 )\r
-                               {\r
-                                       string str2 = C変換.str数値を36進数2桁に変換して返す( cレーン.nレーン割付チップ_裏0or1to1295);\r
-                                       g.DrawString( str2, this.ftレーン割付チップ番号文字フォント, this.brレーン割付番号文字ブラシ影, layoutRectangle, this.strfmtレーン割付チップ番号文字フォーマット );\r
-                                       layoutRectangle.X--;\r
-                                       layoutRectangle.Y--;\r
-                                       g.DrawString( str2, this.ftレーン割付チップ番号文字フォント, this.brレーン割付番号文字ブラシ, layoutRectangle, this.strfmtレーン割付チップ番号文字フォーマット );\r
-                               }\r
-                       }\r
-               }\r
-               private void t譜面を描画する_レーン名を描画する( Graphics g, Rectangle rcレーン名のPicBox内描画領域 )\r
-               {\r
-                       LinearGradientBrush brush = new LinearGradientBrush( rcレーン名のPicBox内描画領域, Color.FromArgb( 0xff, 100, 100, 0xff ), Color.FromArgb( 0, 0, 0, 0xff ), LinearGradientMode.Vertical );\r
-                       g.FillRectangle( brush, rcレーン名のPicBox内描画領域 );\r
-                       brush.Dispose();\r
-                       Rectangle layoutRectangle = new Rectangle( 0, 0, 0, 0 );\r
-                       foreach( Cレーン cレーン in this.listレーン )\r
-                       {\r
-                               if ( !cレーン.bIsVisible )\r
-                               {\r
-                                       continue;\r
-                               }\r
-                               layoutRectangle.X = ( rcレーン名のPicBox内描画領域.X + cレーン.n位置Xdot ) + 2;\r
-                               layoutRectangle.Y = rcレーン名のPicBox内描画領域.Y + 2;\r
-                               layoutRectangle.Width = cレーン.n幅dot;\r
-                               layoutRectangle.Height = 0x18;\r
-                               g.DrawString( cレーン.strレーン名, this.ftレーン番号文字フォント, this.brレーン名文字ブラシ影, layoutRectangle, this.strfmtレーン名文字フォーマット );\r
-                               layoutRectangle.X -= 2;\r
-                               layoutRectangle.Y -= 2;\r
-                               g.DrawString( cレーン.strレーン名, this.ftレーン番号文字フォント, this.brレーン名文字ブラシ, layoutRectangle, this.strfmtレーン名文字フォーマット );\r
-                       }\r
-               }\r
-               //-----------------\r
-               #endregion\r
-\r
-               \r
-       }\r
-}\r