あいまいな一致が見つかったという問題に直面しています
つまり、コントロールのすべてのプロパティを実行して、ユーザーがコントロールのプロパティに変更を加えたかどうかを確認し、変更されたプロパティのみを取得して、これらのプロパティの値を保存しようとしています。
提案に従いましたが、コントロールが TabControl の場合 (tabControl には 2 つの tabPages があります)、適切なパディングでエラーが発生します。
謝らなければなりません。
私の以前の答えは間違っていました。
BindingFlags.DeclaredOnly では、必要なプロパティを取得できません。
そのため、他の方法で問題を修正する必要がありました。
この問題は、2 つのプロパティが同じ名前を持っているために発生します。
そこで、同じ名前のプロパティが異なる場所を検索したところ、異なるdeclaringType,MetadataTokenおよびPropertyTypeを持っていることがわかりました。
そこで、値を取得して問題を解決する方法を変更します。
Dim val = cntrl.GetType().GetProperty(prop.Name, prop.PropertyType).GetValue(cntrl, Nothing)
Dim defVal = newCnt.GetType().GetProperty(prop.Name,prop.PropertyType).GetValue(newCnt,Nothing)
私が誰かを誤解させた場合は申し訳ありません。