2012-04-17 12 views
0

私のカスタムDesignSurfaceにコントロールを置くと、 'resize border'が描画されます。これは、VS Designerからよく知られている標準的な境界です。コントロールのサイズを変更するための8つのアンカーが点在しています。コントロールのサイズや位置をプログラムで変更すると、この境界線はこの変更自体を適用しません。私は選択を解除し、マウスでこのコントロールを選択して強制的に再描画する必要があります。カスタムDesignSurfaceのコントロールの境界線のサイズを変更

私の質問は次のとおりです。この境界線にコードからアクセスして、プログラムで強制的に再描画するにはどうすればよいですか?

ありがとうございます!

答えて

0

は、例えば:

Control control = new Control(); 
control.Location=new Point(10,10); 

これは試してみてください:

Control control = new Control(); 
PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(control)["Location"]; 
if (propertyDescriptor != null) 
{ 
    Point point = (Point)propertyDescriptor.GetValue(control); 
    point.Offset(5, 5); 
    propertyDescriptor.SetValue(control, point); 
} 

のPropertyDescriptorのメソッド "値の代入" は「ComponentChanged発射できる

これを好きではないコントロールの位置を変更しましたデザイナーの再描画を通知するイベントです。

関連する問題