2017-04-05 11 views
0

私はコントロールをツールチップとして表示します。私はコントロールの領域が初めて更新されない

protected override void OnLayout(LayoutEventArgs e) 
{ 
    this.Size = calculatedSize; 

    Region region= new Region(this.ClientRectangle); 

    region.Exclude(new Rectangle(ClientRectangle.Width - balloonPointerWidth, ClientRectangle.Top, balloonPointerWidth, balloonPointerHeight)); 
    region.Exclude(new Rectangle(ClientRectangle.X, ClientRectangle.Top, ClientRectangle.Width - balloonPointerWidth, balloonPointerHeight)); 

    this.Region = region; 
} 

、このコントロールのサイズと以下のようなOnLayout方法でその領域を変更しており、上述のように、私はツールチップとして制御を示している地域の変性変化のみ示す第2の時点で反射され、その変更は最初に表示されたときには反映されません。

私に知らせてください、どのように変更を最初に反映するのですか、ツールチップとしてのコントロールが更新された領域で表示されます。

よろしく、 アマルラジU.

答えて

0

あなたはいつも直接OnLayoutを呼び出すことができ、例えばフォームをロードした後

protected override void OnLoad(EventArgs e) 
{ 
    //Do whatever setup you had going on before 
    base.OnLoad(e); 
    OnLayout(e); //First-time layout 
} 
+0

私はフォームを使用していません。私はポップアップとして表示しているコントロールを使用しています。 – Amal

関連する問題