このメソッドは実質的には、子ノードを "オンデマンドで" 読み込みするノードの展開インジケーターをリセットします。
Override.ShowExpansionIndicator プロパティが CheckOnExpand に設定されているノードが展開されたときに子ノードが追加されない場合、そのノードの展開インジケーターは非表示になります。このメソッドを呼び出すと、ノードを再び展開できるように、展開インジケーターがリセットされます。これはたとえば、バックエンドのデータが変更された場合に必要になります。
Imports Infragistics.Win.UltraWinTree Private Sub ultraTree1_BeforeExpand(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.CancelableNodeEventArgs) Handles ultraTree1.BeforeExpand ' 注: ノード コレクションをオンデマンドに読み込むために、 ' 適切な Override オブジェクトの ShowExpansionIndicator ' プロパティを CheckOnExpand に設定しますこのイベントでは、展開されているノードに ' 子ノードを追加するロジックを追加します ' (e.TreeNode.Node の Add または AddRange メソッドなど) ' ' Tag プロパティのほかに、ノードが (ノードに隠される) ' DataKey プロパティも公開します ' CheckOnDemand を使用すると、データセットの対応行の ' 識別子またはキーを関連することは便利です ' ' CheckOnExpand が有効された場合、このイベントが呼び出して ' 子ノードが追加されなかった場合、展開インジケーターを非表示にして ' このイベントは再発生しません ' ' ただし、UltraTree の ResetExpansionIndicator メソッドを ' 呼び出すと、展開インジケーターを表示し、 ' ユーザーがノードを展開するときに、このイベントを ' 再発生されます ' ' 「UltraTree ロードオンデマンド VB」サンプルを参照してください Dim sb As New System.Text.StringBuilder() sb.Append("Node: ") sb.Append(e.TreeNode.Key) sb.Append(" is about to be expanded.") Debug.WriteLine(sb.ToString()) ' 注: この操作が以下のコード行によってキャンセルできます 'e.Cancel = True End Sub
using System.Diagnostics; using Infragistics.Win.UltraWinTree; private void ultraTree1_BeforeExpand(object sender, Infragistics.Win.UltraWinTree.CancelableNodeEventArgs e) { // 注: ノード コレクションをオンデマンドに読み込むために、 // 適切な Override オブジェクトの ShowExpansionIndicator // プロパティを CheckOnExpand に設定しますこのイベントでは、展開されているノードに // 子ノードを追加するロジックを追加します // (e.TreeNode.Node の Add または AddRange メソッドなど) // // Tag プロパティのほかに、ノードが (ノードに隠される) // DataKey プロパティも公開します // CheckOnDemand を使用すると、データセットの対応行の // 識別子またはキーを関連することは便利です // // CheckOnExpand が有効された場合、このイベントが呼び出して // 子ノードが追加されなかった場合、展開インジケーターを非表示して // このイベントは再発生しません // // ただし、UltraTree の ResetExpansionIndicator メソッドを // 呼び出すと、展開インジケーターを表示し、 // ユーザーがノードを展開するときに、このイベントを // 再発生します // // 「UltraTree ロードオンデマンド CS」サンプルを参照してください System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("Node: "); sb.Append(e.TreeNode.Key); sb.Append(" is about to be expanded."); Debug.WriteLine( sb.ToString() ); // 注: この操作は以下のコードによってキャンセルできます //e.Cancel = true; }