Submit Search
Upload
C# 継承フォームの作成
•
Download as PPTX, PDF
•
0 likes
•
6,219 views
Hiroki Takahashi
Follow
C#で共通部品のみを配置したフォームを作成し、継承して使用する方法について説明します。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 9
Download now
Recommended
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ペアプログラミング ホントのところ
ペアプログラミング ホントのところ
Takuto Wada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
Recommended
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ペアプログラミング ホントのところ
ペアプログラミング ホントのところ
Takuto Wada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
Yuta Hiroto
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
MVC の Model を考える
MVC の Model を考える
tomo_masakura
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
Sho Okada
C# TreeViewを使用する2
C# TreeViewを使用する2
Hiroki Takahashi
C# TreeViewを使用する1
C# TreeViewを使用する1
Hiroki Takahashi
More Related Content
What's hot
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
Yuta Hiroto
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
MVC の Model を考える
MVC の Model を考える
tomo_masakura
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
Sho Okada
What's hot
(20)
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
「伝わるチケット」の書き方
「伝わるチケット」の書き方
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
MVC の Model を考える
MVC の Model を考える
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
データベース設計徹底指南
データベース設計徹底指南
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
More from Hiroki Takahashi
C# TreeViewを使用する2
C# TreeViewを使用する2
Hiroki Takahashi
C# TreeViewを使用する1
C# TreeViewを使用する1
Hiroki Takahashi
C# Database操作6 SqlDataAdapterを使用したデータの更新-
C# Database操作6 SqlDataAdapterを使用したデータの更新-
Hiroki Takahashi
C# Database操作5 SqlDataAdapterを使用したデータの取得-
C# Database操作5 SqlDataAdapterを使用したデータの取得-
Hiroki Takahashi
C# Database操作4 トランザクション処理-
C# Database操作4 トランザクション処理-
Hiroki Takahashi
C# Database操作3 データの更新-
C# Database操作3 データの更新-
Hiroki Takahashi
C# Database操作2 データの取得-
C# Database操作2 データの取得-
Hiroki Takahashi
C# Database操作1 接続と切断-
C# Database操作1 接続と切断-
Hiroki Takahashi
C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装
Hiroki Takahashi
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
Hiroki Takahashi
C# ErrorProviderとValidatingイベント
C# ErrorProviderとValidatingイベント
Hiroki Takahashi
C# モーダルフォームとモードレスフォーム
C# モーダルフォームとモードレスフォーム
Hiroki Takahashi
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
Hiroki Takahashi
C#でディレクトリを再帰的に取得する
C#でディレクトリを再帰的に取得する
Hiroki Takahashi
C#によるファイルの読み書き
C#によるファイルの読み書き
Hiroki Takahashi
More from Hiroki Takahashi
(15)
C# TreeViewを使用する2
C# TreeViewを使用する2
C# TreeViewを使用する1
C# TreeViewを使用する1
C# Database操作6 SqlDataAdapterを使用したデータの更新-
C# Database操作6 SqlDataAdapterを使用したデータの更新-
C# Database操作5 SqlDataAdapterを使用したデータの取得-
C# Database操作5 SqlDataAdapterを使用したデータの取得-
C# Database操作4 トランザクション処理-
C# Database操作4 トランザクション処理-
C# Database操作3 データの更新-
C# Database操作3 データの更新-
C# Database操作2 データの取得-
C# Database操作2 データの取得-
C# Database操作1 接続と切断-
C# Database操作1 接続と切断-
C# ドラッグ&ドロップ処理の実装
C# ドラッグ&ドロップ処理の実装
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
C# ErrorProviderとValidatingイベント
C# ErrorProviderとValidatingイベント
C# モーダルフォームとモードレスフォーム
C# モーダルフォームとモードレスフォーム
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
C#でディレクトリを再帰的に取得する
C#でディレクトリを再帰的に取得する
C#によるファイルの読み書き
C#によるファイルの読み書き
C# 継承フォームの作成
1.
C# 継承フォームの作成 Microsoft MVP
Hiroki.T http://blog.hiros-dot.net/ copyright @2015 HIRO's.NET All Rights Reserved.
2.
継承フォーム 1つのプロジェクト内で似たようなフォームをたくさん作成する場 合は、共通した部分を抜き出したフォームを作成して継承するよ うにしましょう。 たとえば、複数のフォームに共通でステータスバーと[閉じる]ボタ ンを持たせたいとします。
この場合、共通部分はステータスバーと[閉じる]ボタンです。 ステータスバーと[閉じる]部分だけを貼り付けた基本フォームを作 成しておいて、継承するようにします。
3.
例 共通部分は ステータスバーと[閉じる]ボタン
4.
共通部分を抜き出したフォームを作成する 共通部品のみ貼り付けた フォームを作成 この例ではファイル名を frmBase.csとする プロジェクトに新規でフォームを1つ追加して以下のように設定し ます。
5.
共通フォームの[閉じる]ボタンの クリックイベントコードを編集する 各フォームの[閉じる]ボタンに処理をいちいち記述するのは面倒です。 そこで共通フォームに配置した[閉じる]ボタンのクリックイベントのコードを以下の ように編集しておきます。これにより、共通フォームを継承しているフォームに [閉じる]ボタンの処理を記述する必要がなくなります。 ///
<summary> /// 共通フォームの[閉じる]ボタンのコード /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnClose_Click(object sender, EventArgs e) { this.Close(); }
6.
共通フォームを継承したフォームを作成する プロジェクトに最初からあるForm1を、共通フォームを継承した フォームにします。 Form1のコードを開き継承元をFormからfrmBaseに変更します。 public
partial class Form1 : Form { public Form1() { InitializeComponent(); } } public partial class Form1 : frmBase { public Form1() { InitializeComponent(); } }
7.
frmBaseを継承したForm1を デザイナで確認する frmBaseを継承したForm1をデザイナで確認してみましょう。 共通フォームに配置した、ステータスバーと[閉じる]ボタンが表示されていることを確認できま す。
共通フォームに配置されていたステータスバーと[閉じる]ボタンの左上隅に小さな■のアイコ ンが表示されています。これにより、継承によって表示されたコントロールは一目瞭然です。 継承元で配置した コントロール
8.
実行してみよう 実行してみると、Form1には継承元のコントロールが表示されて いることがわかります また、[閉じる]ボタンをクリックするとフォームが閉じられます。
このように、継承元に配置したコントロールおよびコードは継承先 にも適用されます。
9.
End
Download now