GcTabControl上のコントロールでValidateChildrenメソッドによるValidatingイベントが発生しない
対象製品
PlusPak for Windows Forms 5.0J
発生環境
動作環境と同じ
状況
回避方法あり
詳細
ValidateChildrenメソッドを実行して検証を行った場合、GcTabControl上に配置したコントロールでは Validatingイベントが発生しません。
回避方法
SetStyleメソッドを呼び出して、コントロールの動作を変更する方法で回避することが可能です。下記の回避コードを追加して対応してください。
[VB]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' SetStyleメソッドを呼び出して、コントロールの動作を変更します。
Dim setStyleMethod As System.Reflection.MethodInfo = Me.GcTabControl1.GetType().GetMethod("SetStyle", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
If setStyleMethod IsNot Nothing Then
setStyleMethod.Invoke(Me.GcTabControl1, New Object() {ControlStyles.ContainerControl, True})
End If
End Sub
[C#]
public Form1()
{
InitializeComponent();
// SetStyleメソッドを呼び出して、コントロールの動作を変更します。
System.Reflection.MethodInfo setStyleMethod = this.gcTabControl1.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
if (setStyleMethod != null)
{
setStyleMethod.Invoke(this.gcTabControl1, new object[] {ControlStyles.ContainerControl,true});
}
}
[VB]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' SetStyleメソッドを呼び出して、コントロールの動作を変更します。
Dim setStyleMethod As System.Reflection.MethodInfo = Me.GcTabControl1.GetType().GetMethod("SetStyle", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
If setStyleMethod IsNot Nothing Then
setStyleMethod.Invoke(Me.GcTabControl1, New Object() {ControlStyles.ContainerControl, True})
End If
End Sub
[C#]
public Form1()
{
InitializeComponent();
// SetStyleメソッドを呼び出して、コントロールの動作を変更します。
System.Reflection.MethodInfo setStyleMethod = this.gcTabControl1.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
if (setStyleMethod != null)
{
setStyleMethod.Invoke(this.gcTabControl1, new object[] {ControlStyles.ContainerControl,true});
}
}
キーワード
PPWI08044