【2.6.0.0で追加・変更された機能】 ★開発環境として、VisualStudio2010上でも開発が可能になりました。 ★VisualStudio2010で、「対象のフレームワーク」に.NetFramework4を選択して開発できるようにしました。 注:.Net2.0SP1以降を動作環境とするため、本製品自身は.Net2.0SP1でビルドされています。 .Net4で導入されているインプロセスサイドバイサイド機構を用いて.Net4アプリケーション上 での動作が可能ですが、実行環境には.Net2.0SP1〜3.5のうち、いずれかが導入されている必要 があります。 ★APIリファレンスをVisualStudio2010で利用されるドキュメント形式(mshc)に対応。 以下の形式のAPIリファレンスが自動的に登録されます。 VisualStudio2010導入環境:mshc形式(HelpViewer) VisualStudio2005SP1/2008導入環境:HxC形式(DocumentExplorer) 全環境:chm形式(HTML Help) ※スタートメニューから起動 ★水平スクロールバーの表示/非表示を切り替えるhScrollVisibleプロパティを追加しました ★グリッド上のコントロールにフォーカスがある状態でグリッドのスクロールが発生した場合、 Validating/Validatedイベントが発生するようにしました。 ★開発言語にVB.NETを使用時、画面上に配置したフリーレイアウトグリッドのコントロール名を 変更した際、ヘッダー部が独立したコントロールとして宣言され、ビルドできなくなる事がある現象を修正しました。 ★FixVisible=Falseでデザインする際、通常列の右端にコントロールを配置を試みると固定列に配置されてしまうことがある現象を修正しました。 ★グリッドを配置したフォームの表示/破棄を繰り返した際に、USERオブジェクトリソースが増加し続ける問題を修正しました。 【2.5.0.0で追加・変更された機能】 ★Homeキー、Endキーの押下により、それぞれ先頭明細行、最終明細行に移動するかどうかを選択できるようにしました。 ★PageUpキー、PageDownキーの押下により、スクロールを行うことができるかどうかを選択できるようにしました。 ★ヘッダー右クリック時に表示されるコンテキストメニューで、下記のメニューの表示、非表示をそれぞれ選択できるようにしました ・フィルタ ・ソート以下の各項目(セットで表示・非表示が設定されます) ・レイアウトの保存、レイアウトの復元(セットで表示・非表示が設定されます) ・列を挿入する、列を削除する、行を挿入する、行を削除する、行を追加する、スパン以下の各項目(セットで表示・非表示が設定されます) ★固定列の幅を実行時に変更できるかどうかを選択できるようにしました。 ★ラベルだけを配置したような、表示に特化したグリッドの操作性を向上させる「読み取り専用モード」を追加しました。 本バージョンより追加された「ReadOnlyMode」プロパティをTrueに、「SelectionMode」プロパティを「Current」または「CurrentSingle」に設定してください キーボード操作のみで選択行の移動を行うことができるようになります。 ★コントロールを配置するコンテナ部分だけでなく、配置されたコントロールの背景色・前景色をコンテナ部分に同期できるようにしました。 ★最終明細行以下の空白領域を極力表示しないように設定できるようにしました。 本バージョンより追加された「VisibleEmptyRow」プロパティをFalseにすることで、スクロール可能範囲を極小化します。 ★垂直スクロールバーの値を取得できるようにしました。。 事実上、この値は現在表示されている先頭明細行位置になります。 ★コンテキストメニューからではなく、ヘッダーのクリックでソートを行う設定ができるようにしました。 ★各明細列、固定列の幅を実行時に取得、設定できるようにしました。 ★グリッド上で完全に表示されている行数を取得できるようにしました。 ★任意の行が先頭に来るように、グリッドをスクロールできるようにしました。 ★描画処理に一時的な抑制、およびその抑制の解除を行うことをできるようにしました SuspendLayoutメソッドで抑制を行います。必ずResumeLayout()メソッドと対になるようにしてください。 ★明細行上でのマウスボタンの押下、上昇、クリック操作をハンドルするRowMouseDown,RowMouseUp,RowClickイベントを実装しました。 (コンテナ部分だけでなく、配置したコントロール上での操作もハンドルします) ★自動的に空白行が末尾に追加されるかどうかを取得・設定するプロパティ「AllowUserToAddRows」の機能が廃止になりました。 本バージョンより、プロパティとしての「AllowUserToAddRows」は残りますが、True,Falseいづれの値を設定しても 自動的には空白行が追加されない(旧バージョンにおける「AllowUserToAddRows=False」)ようになります。 旧バージョンにおいてAllowUserToAddRows=Trueの設定でご利用いただいていた場合、お手数ですが適当なイベント発生時に データソースに空行を追加するか、またはInsertDetail()メソッドを利用して末尾に行を追加するよう、コードを修正してください。 【2.1.0.0で追加・変更された機能】 ★実行時の明細行の右クリックの無効化を可能にしました 明細行を右クリックしたときにコンテキストメニューが表示されないように するには、DetailContextMenuViewプロパティをFalseに設定します。 この設定は、行番号ボタンを右クリックしたときに表示されるコンテキスト メニューに対しても有効です。 ★実行時のレイアウト操作の無効化を可能にしました レイアウト操作を無効にするには、CanLayoutプロパティをFalseに設定します。 コントロールのドラッグ、行列の追加・削除操作および、レイアウトの復元・ 保存操作が無効になります。 ★実行時において、行の高さを調節することを可能にしました。 従来まで明細行は列幅の調節のみ可能でしたが、今回から行の高さも調節す ることが可能になります。 また、ヘッダー部分の高さを変更することで、明細行の高さが既存の高さの 倍率を基に変化します。 ★配置したコントロールにフォーカスがない場合もホイール操作を可能にします。 ラベルコントロール等、グリッドに配置したコントロールにフォーカスがない 場合でも、マウスホイールによるスクロール操作が可能になります。 ★FocusTypeプロパティの指定がTabキーによる操作でも反映されるようになりました。 従来までFocusTypeプロパティで指定した、Z型、N型、TabIndex等の指定は、 Enterキーによる操作のみに対し有効でしたが、Tabキーによる操作でも反映 されるようになりました。また、Shiftキーを押しながら、Tabキーまたは Enterキーを操作することにより、逆順でフォーカス移動が行えます。 ★明細行をダブルクリックしたときDispRowイベントが発生するようになります。 ★DispRowイベントを強制的に発生させることが可能になりました。 DispRowExメソッドを実行すると、DispRowイベントが発生します。 ★バインドデータのレコード数が変化したときにスクロール位置をリセットするようにしました。 従来までデータベースからレコードを再抽出したときにレコード数が少なくな った場合、スクロールの位置がそのままの為データが全く表示されませんで したが、今回からスクロール位置が一番上まで戻るようになりました。 なお、この機能を無効にして従来と同じ状態にするには、 「ResetDetailPosition」プロパティをFalseにしてください。 ★一意制約を定義しているテーブルをバインドしている場合でも行挿入および貼り付けを可能にしました。 ★「行挿入」および「行挿入・貼り付け」を明細行の右クリックから呼び出せるようになりました。 従来まで「行挿入」および「行挿入・貼り付け」は、行番号ボタンを右リッ クして行うようになっておりましたが、明細行を右クリックしたメニューから でも実行できるようになります。 ★列単位による横スクロールを可能にしました。 従来の1ピクセル毎による横スクロールに加え、ScrollUnitプロパティをTrue に設定することで、列毎の横スクロールが可能になります。 ★特定明細への移動を可能にしました。 ScrollTopRowメソッドで、特定の行を先頭に表示するよう、明細をスクロールします。 ★ヘッダー右クリックのメニューでデータのフィルタ機能を追加しました。 ★ヘッダー右クリックのメニューの可視不可視を制御できるように変更しました。 以下のプロパティのTrue/Falseを切り替えることで、各メニューの表示/非表示を切り替えることができます。 ・CanDynamicRowColCommandView ヘッダ右クリックの行列の操作メニューの表示/非表示 ・CanDynamicSortCommandView ヘッダ右クリックのソートメニューの表示/非表示 ・CanDynamicLayoutCommandView ヘッダ右クリックのレイアウト保存復元の表示/非表示 ・CanDynamicFilterCommandView ヘッダ右クリックのフィルターの表示/非表示 ★明細行列を再度クリックすることで、行の選択状態を解除できるようにしました。 【2.0.0.0で追加・変更された機能】 ★初期設定 ・フッターは非表示です。表示するにはG1FreeGridコントロールのFooterVisibleプロパティをTrueにします。 ★行番号 ・G1FreeGridコントロールのLineNoVisibleプロパティで表示/非表示を切り替えます。 ★固定列 ・通常列と同様に扱うことができます。 ・デフォルトでは非表示です。表示するには、G1FreeGridコントロールのFixVisibleプロパティで表示/非表示を切り替えます。 ★ページスクロール対応 ・G1FreeGridコントロールのvScrollVisibleプロパティで表示/非表示を切り替えます。 ・G1FreeGridコントロールのPageScrollメソッドでページ単位のスクロールを行います。 (1ページ進める場合は引数に「1」を指定し、1ページ戻す場合は引数に「-1」を指定します。) ★行表示イベント ・G1FreeGridコントロールにDispRowイベントを新たに追加しました。 ・DispRowイベントは、データの表示やスクロール時に発生するイベントで、特定の行列のコントロールに対して  操作することを可能にするものです。 ・DispRowイベントは、1行表示される毎に発生します。 ・DispRowのイベントデータ「e」には次の情報が含まれます。   ・Index: イベントが発生した明細行のインデックス番号。   ・DetailControls: イベントが発生した行の通常列にあるコントロールコレクション。   ・FixDetailControls: イベントが発生した行の固定列にあるコントロールコレクション。 ★フォーカスメソッド ・G1FreeGridコントロールにSetFocusメソッドを新たに追加しました。 ・SetFocusメソッドは特定の行列にあるコントロールに対してフォーカスを移動するものです。 ・行列を指定する方法は、(1)明細行のインデックス番号およびコントロールを指定する方法と、  (2)明細行のインデックス番号と列番号および固定列であるかどうかを指定する方法があります。  <使用例>  ・(1)100行目の「textbox8」コントロールにフォーカスを移す。(インデックスはゼロオリジン)     g1FreeGrid1.SetFocus(100-1, textBox8);  ・(2)100行目の固定列の3行目2列目に存在するコントロールにフォーカスを移す。(インデックスはゼロオリジン)     g1FreeGrid1.SetFocus(100-1, 2-1, 3-1, true); ★キーボード操作によるフォーカス移動 ・矢印およびEnterキーを操作することにより、フリーレイアウトグリッドに配置したコントロール間でのフォーカス移動が行えます。 ・矢印キーによるフォーカス移動の操作を無効にするには、G1FreeGridコントロールのMoveFocusByAllowプロパティをFalseにします。 ・Enterキーによるフォーカス移動の操作を無効にするには、G1FreeGridコントロールのMoveFocusByEnterプロパティをFalseにします。 ・フォーカスが明細行の末端に達した場合、フォーム画面から見てフリーレイアウトグリッドの次のコントロールにフォーカスを移動します。この動作を無効にするには、G1FreeGridコントロールのMoveFocusLastプロパティをFalseにします。 ・上記と同じタイミングで、G1FreeGridコントロールのLastDetailイベントが発生します。 ・Enterキーによるフォーカスの移動順序を変更するには、FocusTypeプロパティを変更します。(Z型、N型、TabIndexのいずれかを選択できます。Z型は左から右端へ行くと下の行に移動する順序を繰り返します。N型は上から下へ移動したあと右の列に移動する順序を繰り返します。TabIndexは各コントロールに指定されたTabIndexに基づいて移動します。) ・UpDownコントロールなど、コントロールによってはキーイベントを奪うものがあるため、正しくフォーカス移動できない場合があります。 ★行挿入 行挿入は明細行ボタンを右クリックして「行を挿入する」をクリックします。 CanInsertプロパティがFalseに設定されている場合は挿入されません。(デフォルト値:True) ★行に対して挿入→貼り付け 行挿入・貼り付けは明細行ボタンを右クリックして「この行に挿入して貼り付け」をクリックします。 CanPasteプロパティがFalseに設定されている場合は貼り付けできません。(デフォルト値:True) ★コピー・カット・貼り付け時におけるイベント 以下のイベントが発生します。 コピー前:BeforeDetailCopy コピー後:AfterDetailCopy カット前:BeforeDetailCut カット後:AfterDetailCut 貼り付け前:BeforeDetailPaste 貼り付け後:AfterDetailPaste 各BeforeイベントのCancelをTrueにすると、実行前に処理をキャンセルできます。 ★ソート(並び替え) 実行時にヘッダー部分のいずれかの列を右クリックし、「ソート」の「昇順」または「降順」をクリックすることで、 右クリックした列を基にした並び替えが行えます。ただし、並び替えの処理には時間がかかるため、 5000行を超えるデータに対して並び替えを行うときは、ユーザーに対してメッセージボックスを表示し確認を行います。