0

カスタム ボタン、カスタム テキスト ボックス、カスタム ラベルなどを作成し、アプリケーションのすべてのフォームでこれらのコントロールを使用し、必要に応じてそれらのコントロールのデフォルトの色とフォントを変更する以外に、簡単な方法はありますか?複数のフォームを含む既存のアプリケーションにこの種の css のような機能を実装する方法は?

ちなみに、プログラムで各 *.Designer.cs ファイルを開き、"System.Windows.Forms.[Control]" のインスタンスを "My.Namespace.My[Control]" で検索/置換できることはわかっていますが、コードがコントロールのフォントと色、および同様のプロパティを設定する場合に、それがどのように機能するかはわかりません。その場合、カスタム コントロールが関連するすべてのゲッター メソッドをオーバーライドすることを確認するだけでよいでしょうか?

4

2 に答える 2

0

Designer.cs ファイルについて - おそらく、コードをまったく変更しないでください。それらはデザイナーによって使用され、理由により分離されています。

何かを変更したい場合は、InitializeComponent() を呼び出した後、フォーム CTOR で、必要な変更 (色、デリゲートなどの属性値の変更) を使用して独自の関数を呼び出すだけです。

複数のフォームに同じスタイル (または機能) を持たせたい場合は、このメソッドを別のクラスに配置し、すべてのフォームが同じメソッドを使用するようにパラメータとして送信します。

もちろん、メソッドはどのコントロールがどのフォーム上にあるかを認識しないため、Controls.Find (フォーム メソッドの 1 つ) を使用して名前でコントロールを見つけることができます。フォーム内のコントロールが同じ規則を使用して正しく命名されていることを確認してください (たとえば、すべてのリスト ボックスに listBoxX という名前が付けられ、X は数字です...)。

于 2013-04-14T00:47:59.990 に答える