2010-12-30 19 views
0

すべて、 動的に作成されたボタンの枠線を描画したいのですが、私はこのWindowsアプリケーションの動的に作成されたボタンの枠線

private void DrawBorder(Button bt) 
     { 
      Graphics g = bt.CreateGraphics(); 
      ControlPaint.DrawBorder(g, bt.DisplayRectangle, Color.FromArgb(229, 227, 227), ButtonBorderStyle.Solid); 
      g.Dispose(); 
     } 

を試してみましたが、それはすべてのエラーを示していないが、私はすべての国境

を見ることができないあなたは違った描画ボタンをしたい場合、あなたはおそらく、新しいを作成する必要があります

答えて

2

を助けてくださいを継承するクラス、その中にOnPaintおよび/またはOnPaintBackgroundをオーバーライドし、ボーダーを描画するなどの描画ロジックを実装します。

DrawBorderメソッドを呼び出している場合、の場合、現在のソリューションが動作しない理由はおそらくに依存します。描画コードがOnPaintイベントの処理の一部として実行されない場合、描画したグラフィックスは次のペイントで描画されます。

しかし、とにかく自分で境界線を描画するのではなく、ButtonオブジェクトでBorderを空白に設定することはできませんか?

+0

Windowsフォームでボタンの標準的な境界線の色を設定できないと思います。 –

+0

@Uwe Keim:それが理由かもしれません。しかし、(229,227,227)は "標準"コントロールカラーに非常に近いように見えます:) – Ran

+0

noは、flatstyleがフラットであればボーダーのためにフラッタパーパスプロパティを設定できません – Nighil

関連する問題