1


ErrorProvider コントロールでは、SetIconPadding(); を使用できます。アイコンとコントロールの間に追加するピクセル数を設定するため。

このようにして、アイコンを水平に移動できます。
同じことを垂直に行う方法は?

アイコンの配置を拡張またはオーバーライドする方法がわかりません。

PS。状況によっては SetIconAlignment() では不十分です。アイコンのカスタム ローカリゼーションを設定するだけです。

4

1 に答える 1

6

残念ながら、これは簡単な方法ではありません。

この関数SetIconPadding()を使用すると、アイコンとコントロールの間のスペースを水平方向にのみ定義できますが、負の値も許可されます。

呼び出しSetIconAlignment()では、コントロールの左または右にのみ配置できますが、上または下には配置できません。

これを機能させるためのハックは、errorProvider が必要なコントロールの周りにパネルを配置し、それを高くしたり低くしたりすることです。これで、本来のコントロールではなく、このコンテナー コントロールにプロバイダーを直接設定できます。また、パディングに負の値を適用することで、点滅するアイコンをコントロールの上または下に移動できます。

これは一種のハックですが、他の方法ではないと思います。

    +--Panel----------------------+
    |               !             |
    |     +------------------+    |
    |     | ControlWithError |    |
    |     +------------------+    |
    |                             |
    +-----------------------------+

上記のように、コントロールにない ErrorProvider を設定します。パネルに設定IconAlignmentTopLeftIconPadding負の値 (-50 など) に設定すると、意図したコントロールの上でアイコンが点滅します。

于 2011-08-24T08:28:25.190 に答える