ErrorProvider コントロールでは、SetIconPadding(); を使用できます。アイコンとコントロールの間に追加するピクセル数を設定するため。
このようにして、アイコンを水平に移動できます。
同じことを垂直に行う方法は?
アイコンの配置を拡張またはオーバーライドする方法がわかりません。
PS。状況によっては SetIconAlignment() では不十分です。アイコンのカスタム ローカリゼーションを設定するだけです。
ErrorProvider コントロールでは、SetIconPadding(); を使用できます。アイコンとコントロールの間に追加するピクセル数を設定するため。
このようにして、アイコンを水平に移動できます。
同じことを垂直に行う方法は?
アイコンの配置を拡張またはオーバーライドする方法がわかりません。
PS。状況によっては SetIconAlignment() では不十分です。アイコンのカスタム ローカリゼーションを設定するだけです。
残念ながら、これは簡単な方法ではありません。
この関数SetIconPadding()
を使用すると、アイコンとコントロールの間のスペースを水平方向にのみ定義できますが、負の値も許可されます。
呼び出しSetIconAlignment()
では、コントロールの左または右にのみ配置できますが、上または下には配置できません。
これを機能させるためのハックは、errorProvider が必要なコントロールの周りにパネルを配置し、それを高くしたり低くしたりすることです。これで、本来のコントロールではなく、このコンテナー コントロールにプロバイダーを直接設定できます。また、パディングに負の値を適用することで、点滅するアイコンをコントロールの上または下に移動できます。
これは一種のハックですが、他の方法ではないと思います。
+--Panel----------------------+
| ! |
| +------------------+ |
| | ControlWithError | |
| +------------------+ |
| |
+-----------------------------+
上記のように、コントロールにない ErrorProvider を設定します。パネルに設定IconAlignment
しTopLeft
、IconPadding
負の値 (-50 など) に設定すると、意図したコントロールの上でアイコンが点滅します。