第4章 NetCOBOL for .NETによる 画面プログラムの作成
4.3.3 代表的なクラス
( 1 ) F o r m ク ラ ス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m s
ア プ リ ケ ー シ ョ ン の ト ッ プ レ ベ ル ウ ィ ン ド ウ と な る ク ラ ス で す 。
F o r mク ラ ス で は 、 さ ま ざ ま な ウ ィ ン ド ウ を 作 成 で き ま す 。 通 常 は デ ザ
イ ナ で ウ ィ ン ド ウ(フ ォ ー ム)の 作 成 と プ ロ パ テ ィ の 設 定 な ど を 行 う た め 、 プ ロ グ ラ ム の 手 続 き でF o r mク ラ ス を 使 用 す る こ と は あ ま り あ り ま せ ん 。 ウ ィ ン ド ウ の 表 示 位 置 や サ イ ズ の 変 更 、 モ ー ダ ル/モ ー ド レ ス の 設 定 変 更 な ど を 使 用 し た い 場 合 は 、F o r mク ラ ス を 利 用 し ま す 。
な お 、 作 成 さ れ たF o r mオ ブ ジ ェ ク ト 内 か らF o r mク ラ ス(自 分 自 身)の オ ブ ジ ェ ク ト や メ ソ ッ ド を 利 用 す る 場 合 は 、 オ ブ ジ ェ ク ト 名 に 定 義 済 み の オ ブ ジ ェ ク ト の 「S E L F」 を 使 用 し ま す 。
使 用 例
F o r mの タ イ ト ル( Te x tプ ロ パ テ ィ)を 指 定 し た 文 字 列 に 変 更 す る 例
【 ク ラ ス 宣 言 】
I D E N T I F I C A T I O N D I V I S I O N .
C L A S S - I D . F o r m 1 A S " W i n F o r m S a m p l e 1 . F o r m 1 "
I N H E R I T S C L A S S - F O R M .
【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y .
C L A S S C L A S S - F O R M A S " S y s t e m . W i n d o w s . F o r m s . F o r m "
P R O P E R T Y P R O P - T E X T A S " T e x t "
【 手 続 き 部 ( F o r m ̲ L o a d ) 】
* フ ォ ー ム の T e x t プ ロ パ テ ィ ( タ イ ト ル の ) 変 更
S E T P R O P - T E X T O F S E L F T O N " フ ォ ー ム サ ン プ ル " .
解 説
ク ラ ス 宣 言 で は 、S y s t e m . Wi n d o w s . F o r m s . F o r mク ラ ス を 継 承 し た F o r m 1ク ラ ス の 宣 言 を 行 っ て い ま す 。F o r mク ラ ス の 宣 言 は 、 通 常 は デ ザ イ ナ が 自 動 生 成 し ま す 。
リ ポ ジ ト リ 段 落 で は 、 参 照 す る ク ラ ス の 内 部 名 の 設 定 を 行 い ま す が 、
F o r mに 関 連 す る 主 な ク ラ ス や プ ロ パ テ ィ は 、 デ ザ イ ナ が 自 動 生 成 し
ま す 。
手 続 き 部 で は 、F o r mク ラ ス の オ ブ ジ ェ ク ト で あ る 自 分 自 身( S E L F )の
Te x tプ ロ パ テ ィ に 値 を 設 定 し て い ま す 。
起 動 時 に タ イ ト ル を 設 定
図 4 . 3 . 3 ( 1 ) F o r m ク ラ ス の 使 用 例
( 2 ) L a b e l ク ラ ス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m s
L a b e lク ラ ス は 、L a b e lコ ン ト ロ ー ル を 表 す ク ラ ス で す 。L a b e lコ ン ト ロ ー ル は 、 フ ォ ー ム 上 に 配 置 さ れ た 部 品 の 説 明 や 操 作 の 解 説 な ど に 利 用 さ れ ま す 。 大 半 の プ ロ パ テ ィ は 、 デ ザ イ ナ で 設 定 さ れ る ケ ー ス が ほ と ん ど で す が 、Te x tプ ロ パ テ ィ は 、 状 況 に よ っ て プ ロ グ ラ ム か ら 設 定 す る こ と も あ り ま す 。Te x tプ ロ パ テ ィ の 利 用 方 法 は 、F o r mプ ロ パ テ ィ の サ ン プ ル と ほ ぼ 同 様 で す 。
( 3 ) T e x t B o x ク ラ ス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m s
Te x t B o xク ラ ス は 、Te x t B o xコ ン ト ロ ー ル を 表 す ク ラ ス で す 。L a b e lが 表 示 専 用 な の に 対 し 、Te x t B o xコ ン ト ロ ー ル に は キ ー ボ ー ド な ど か ら 単 一 行 や 複 数 行 の デ ー タ の 入 力 が 可 能 で す 。 ま た 、P a s s w o r d C h a rプ ロ パ テ ィ を 利 用 す る と 、 入 力 さ れ た 文 字 を 直 接 表 示 せ ず 、 別 の 文 字(* な ど) で 文 字 の 個 数 だ け を 表 示 さ せ る よ う に 設 定 す る こ と が で き ま す 。
プ ロ グ ラ ム か ら は 、Te x tプ ロ パ テ ィ の 値 の 設 定 や 参 照 、E n a b l e dプ ロ パ テ ィ を 利 用 し た 入 力 の 可 否 の 制 御 、K e y P r e s sイ ベ ン ト やK e y D o w nイ ベ ン ト を 利 用 し た 入 力 デ ー タ の 確 認 な ど の 処 理 が よ く 行 わ れ ま す 。
使 用 例
Te x t B o xコ ン ト ロ ー ル に 入 力 さ れ た 文 字 列 を 取 得 す る 例
【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y .
C L A S S C L A S S - T E X T B O X A S " S y s t e m . W i n d o w s . F o r m s . T e x t B o x "
P R O P E R T Y P R O P - T E X T A S " T e x t "
【 O B J E C T 定 義 の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N .
0 1 t x t U s e r I D O B J E C T R E F E R E N C E C L A S S - T E X T B O X . 0 1 t x t P a s s w o r d O B J E C T R E F E R E N C E C L A S S - T E X T B O X .
【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 U S E R - I D P I C N ( 1 0 ) . 0 1 U S E R - P W D P I C N ( 1 0 ) .
【 メ ソ ッ ド の 手 続 き 部 】
S E T U S E R - I D T O P R O P - T E X T O F t x t U s e r I D . S E T U S E R - P W D T O P R O P - T E X T O F t x t P a s s w o r d .
解 説
Te x t B o xコ ン ト ロ ー ル を デ ザ イ ナ で 追 加 す る と 、 リ ポ ジ ト リ 段 落 に
S y s t e m . Wi n d o w s . F o r m s . Te x t B o xク ラ ス が 追 加 さ れ ま す 。 ま た 、 O B J E C T定 義 のD ATA D I V I S I O Nに は 、Te x t B o xコ ン ト ロ ー ル に 設 定 さ れ たn a m e ( I D )プ ロ パ テ ィ の 内 容 と 同 じ 名 前 で 、 オ ブ ジ ェ ク ト 変 数 が 追 加 さ れ ま す 。 し た が っ て 、 ク ラ ス 内 で 追 加 さ れ たTe x t B o xコ ン ト ロ ー ル が 使 用 で き る こ と に な り ま す 。
手 続 き 部 で は 、Te x t B o xコ ン ト ロ ー ル に 入 力 さ れ た 文 字 列 を 変 数 に 取 り 込 む 処 理 を 記 述 し て い ま す 。
な お 、 こ の 例 は 、Te x t B o xコ ン ト ロ ー ル のM a x L e n g t hプ ロ パ テ ィ で 、 入 力 で き る 文 字 数 を1 0文 字 に 制 限 し て い る こ と を 前 提 と し て い ま す 。
( 4 ) B u t t o n ク ラ ス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m s
B u t t o nク ラ ス は 、B u t t o nコ ン ト ロ ー ル を 表 す ク ラ ス で す 。B u t t o nコ ン ト ロ ー ル は コ マ ン ド ボ タ ン と も 呼 ば れ 、 ク リ ッ ク し て 処 理 を 開 始 す る 際 に 利 用 さ れ ま す 。
プ ロ グ ラ ム か ら は 、E n a b l e dプ ロ パ テ ィ を 利 用 し た 、 ク リ ッ ク の 可 否 の 制 御 が 行 わ れ る こ と が あ り ま す 。 ま た 、 通 常 はC l i c kイ ベ ン ト に
B u t t o nコ ン ト ロ ー ル が ク リ ッ ク さ れ た 場 合 の 手 続 き を 記 述 し ま す 。
使 用 例
B u t t o nコ ン ト ロ ー ル を ク リ ッ ク 不 可 に す る 例
【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y .
C L A S S C L A S S - B U T T O N A S " S y s t e m . W i n d o w s . F o r m s . B u t t o n "
P R O P E R T Y P R O P - E N A B L E D A S " E n a b l e d "
【 O B J E C T 定 義 の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N .
0 1 b t n L o g i n O B J E C T R E F E R E N C E C L A S S - B U T T O N .
【 メ ソ ッ ド の 手 続 き 部 】
S E T P R O P - E N A B L E D O F b t n L o g i n T O B " 0 " .
解 説
B u t t o nコ ン ト ロ ー ル を デ ザ イ ナ で 追 加 す る と 、 リ ポ ジ ト リ 段 落 に
S y s t e m . Wi n d o w s . F o r m s . B u t t o nク ラ ス が 追 加 さ れ ま す 。 ま た 、
S y s t e m . B o o l e a n構 造 体 型 と い う 、t r u eま た はf a l s eを 保 持 す る ク ラ ス も 追 加 さ れ ま す 。
O B J E C T定 義 のD ATA D I V I S I O Nに は 、B u t t o nコ ン ト ロ ー ル に 設 定 さ れ たn a m e ( I D )プ ロ パ テ ィ の 内 容 と 同 じ 名 前 で 、 オ ブ ジ ェ ク ト 変 数 が 追 加 さ れ ま す 。 し た が っ て 、 ク ラ ス 内 で 追 加 さ れ たB u t t o nコ ン ト ロ ー ル が 使 用 で き る こ と に な り ま す 。
手 続 き 部 で は 、B u t t o nコ ン ト ロ ー ル のE n a b l e dプ ロ パ テ ィ に は 、 S y s t e m . B o o l e a n型 の 値 を 設 定 す る 必 要 が あ り ま す が 、f a l s eを 意 味 す
るB ” 0 ”を 代 入 し て い ま す 。
( 5 ) M e s s a g e B o x ク ラ ス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m s
M e s s a g e B o xク ラ ス は 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る た め の ク ラ ス で す 。S y s t e m . Wi n d o w s . F o r m s名 前 空 間 に 属 し ま す が 、 コ ン ト ロ ー ル で は あ り ま せ ん 。 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る た め の メ ソ ッ ド は 、 M e s s a g e B o xク ラ ス の 静 的 メ ソ ッ ド と し て 提 供 さ れ て お り 、M e s s a g e B o x ク ラ ス の イ ン ス タ ン ス を 生 成 す る こ と な く 、 呼 び 出 す こ と が で き ま す 。
プ ロ グ ラ ム か ら は 、S h o wメ ソ ッ ド を 利 用 し て メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る 処 理 を 記 述 し ま す が 、 パ ラ メ ー タ ー に よ り メ ッ セ ー ジ 文 の ほ か 、 メ ッ セ ー ジ ボ ッ ク ス の タ イ ト ル や ボ タ ン の 形 状 、 ア イ コ ン の 形 式 な ど を 指 定 す る こ と も で き ま す 。
使 用 例
メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る 例
【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y .
C L A S S C L A S S - M E S S A G E B O X
A S " S y s t e m . W i n d o w s . F o r m s . M e s s a g e B o x "
E N U M E N U M - M E S S A G E B O X B U T T O N S
A S " S y s t e m . W i n d o w s . F o r m s . M e s s a g e B o x B u t t o n s "
P R O P E R T Y P R O P - Y E S N O C A N C E L A S " Y e s N o C a n c e l "
E N U M E N U M - D I A L O G R E S U L T
A S " S y s t e m . W i n d o w s . F o r m s . D i a l o g R e s u l t "
P R O P E R T Y P R O P - Y E S A S " Y e s "
P R O P E R T Y P R O P - N O A S " N o "
P R O P E R T Y P R O P - C A N C E L A S " C a n c e l "
【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 W K - M E S S A G E B O X B U T T O N S
O B J E C T R E F E R E N C E E N U M - M E S S A G E B O X B U T T O N S . 0 1 W K - D I A L O G R E S U L T
O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T .
【 メ ソ ッ ド の 手 続 き 部 】
S E T W K - M E S S A G E B O X B U T T O N S T O
P R O P - Y E S N O C A N C E L O F E N U M - M E S S A G E B O X B U T T O N S .
I N V O K E C L A S S - M E S S A G E B O X " S h o w "
U S I N G N " ク リ ッ ク ! " N " S a m p l e " W K - M E S S A G E B O X B U T T O N S R E T U R N I N G W K - D I A L O G R E S U L T .
E V A L U A T E W K - D I A L O G R E S U L T
W H E N P R O P - Y E S O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w "
U S I N G N " 「 は い 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 "
W H E N P R O P - N O O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w "
U S I N G N " 「 い い え 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 "
W H E N P R O P - C A N C E L O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w "
U S I N G N " 「 キ ャ ン セ ル 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 "
E N D - E V A L U A T E .
解 説
メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る だ け で あ れ ば 、 リ ポ ジ ト リ 段 落 に M e s s a g e B o xク ラ ス の 内 部 名 を 指 定 し 、 手 続 き 部 でS h o wメ ソ ッ ド を 利 用 す る だ け で 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 で き ま す 。
「 は い 」 「 い い え 」 な ど の ボ タ ン を 表 示 し た り 、 ア イ コ ン を 表 示 し た り す る 場 合 、 メ ッ セ ー ジ 以 外 の パ ラ メ ー タ ー を 指 定 す る 必 要 が あ り ま す 。 例 で は 、 「 は い 」 「 い い え 」 「 キ ャ ン セ ル 」 の3つ の ボ タ ン を 表 示 す る た め に 、M e s s a g e b o x B u t t o n s列 挙 体 のYe s N o C a n c e lメ ン バ を 指 定 し て い ま す 。 ま た 、 戻 り 値 と し てD i a l o g R e s u l t列 挙 体 が 返 さ れ ま す 。 し た が っ て 、 リ ポ ジ ト リ 段 落 に 列 挙 体 と
D i a l o g R e s u l t列 挙 体 お よ び そ れ ぞ れ の 列 挙 体 の メ ン バ(プ ロ パ テ ィ)の 内 部 名 を 宣 言 し て い ま す 。
手 続 き 部 で は 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 し て い ま す が 、 列 挙 体 の 参 照 は 直 接 メ ソ ッ ド の パ ラ メ ー タ ー に 指 定 で き な い た め 、 列 挙 体 の 参 照 を 格 納 す る 列 挙 型 変 数 を 利 用 し て い ま す 。
図 4 . 3 . 3 ( 2 ) M e s s a g e B o x ク ラ ス の 使 用 例
( 6 ) OpenFileDialogクラス、SaveFileDialogクラス
名 前 空 間: S y s t e m . Wi n d o w s . F o r m sO p e n F i l e D i a l o gク ラ ス は 、O p e n F i l e D i a l o gコ ン ト ロ ー ル を 表 す ク ラ ス で 、S a v e F i l e D i a l o gク ラ ス は 、S a v e F i l e D i a l o gコ ン ト ロ ー ル を 表 す ク ラ ス で す 。 そ れ ぞ れ の ク ラ ス は 、 フ ァ イ ル を 選 択 す る ダ イ ア ロ グ ボ ッ ク ス を 表 示 す る 機 能 を 持 ち ま す 。
こ れ ら の ク ラ ス は 、Wi n d o w sの コ モ ン ダ イ ア ロ グ ボ ッ ク ス を 表 示 す る 機 能 を も ち 、 こ れ に よ り 、Wi n d o w s標 準 のU Iを 利 用 す る こ と が で き ま す 。 こ れ ら の ク ラ ス は 、 一 般 の コ ン ト ロ ー ル の よ う に フ ォ ー ム 上 に 貼 り 付 い た 形 で 表 示 さ れ ま せ ん(た だ し 、 デ ザ イ ン 時 に は こ れ ら の ク ラ ス を 使 用 し て い る こ と が わ か る よ う に デ ザ イ ナ 上 に 表 示 さ れ ま す)。
O p e n F i l e D i a l o gク ラ ス とS a v e F i l e D i a l o gは 非 常 に 良 く 似 て い ま す が 、 O p e n F i l e D i a l o gは 主 に 既 存 の フ ァ イ ル を 開 く こ と を 目 的 と し て い る の に 対 し 、S a v e F i l e D i a l o gは 保 存 す る フ ァ イ ル を 選 択 す る こ と を 目 的 と し て い る た め 、 メ ソ ッ ド の 動 作 や プ ロ パ テ ィ が 異 な り ま す 。
プ ロ グ ラ ム か ら は 、S h o w D i a l o gメ ソ ッ ド で フ ァ イ ル を 開 く(保 存 す る) ダ イ ア ロ グ ボ ッ ク ス を 表 示 し 、F i l e N a m eプ ロ パ テ ィ で 、 ダ イ ア ロ グ ボ ッ ク ス で 指 定 さ れ た フ ァ イ ル 名 を パ ス 付 き で 受 け 取 り ま す 。 ま た 、
F i l t e rプ ロ パ テ ィ を 指 定 し て お く と 、 開 く フ ァ イ ル の 拡 張 子 を 指 定 す る
こ と が で き ま す 。
使 用 例
メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る 例
【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y .
C L A S S C L A S S - O P E N F I L E D I A L O G
A S " S y s t e m . W i n d o w s . F o r m s . O p e n F i l e D i a l o g "
E N U M E N U M - D I A L O G R E S U L T
A S " S y s t e m . W i n d o w s . F o r m s . D i a l o g R e s u l t "
P R O P E R T Y P R O P - O K A S " O K "
P R O P E R T Y P R O P - F I L E N A M E A S " F i l e N a m e "
P R O P E R T Y P R O P - F I L T E R A S " F i l t e r " "
【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N .
0 1 W K - D I A L O G R E S U L T O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T .
【 メ ソ ッ ド の 手 続 き 部 】
S E T P R O P - F I L T E R O F o p e n F i l e D i a l o g 1 T O N " * . t x t | * . t x t " .
I N V O K E o p e n F i l e D i a l o g 1 " S h o w D i a l o g "
R E T U R N I N G W K - D I A L O G R E S U L T .
I F W K - D I A L O G R E S U L T = P R O P - O K O F E N U M - D I A L O G R E S U L T T H E N
S E T P R O P - T E X T O F t x t F i l e N a m e
T O P R O P - F I L E N A M E O F o p e n F i l e D i a l o g 1 E N D - I F .
TextBoxコントロール
(Name:txtFileName)
ファイルが存在 する場合
ファイルが存在 しない場合
図 4 . 3 . 3 ( 3 ) O p e n F i l e D i a l o g ク ラ ス の 使 用 例
解 説
リ ポ ジ ト リ 段 落 に は 、O p e n F i l e D i a l o gク ラ ス へ の 参 照 が 自 動 的 に 追 加 さ れ ま す 。S h o w D i a l o gメ ソ ッ ド の 戻 り 値 の た め の 、D i a l o g R e s u l t列 挙 体 の 宣 言 と 、O p e n F i l e D i a l o gク ラ ス か ら フ ァ イ ル 名 を 受 け 取 る た め のF i l e N a m eプ ロ パ テ ィ 、 フ ァ イ ル タ イ プ を 指 定 す るF i l t e rプ ロ パ テ ィ を 宣 言 し て い ま す 。
メ ソ ッ ド のD ATA D I V I S I O Nで は 、S h o w D i a l o gメ ソ ッ ド の 戻 り 値 を 受 け 取 る た め の 変 数 を 宣 言 し て い ま す 。
メ ソ ッ ド の 手 続 き 部 で は 、 フ ァ イ ル を 開 く ダ イ ア ロ グ ボ ッ ク ス で 使 用 す る フ ィ ル タ(拡 張 子 の 指 定)の 設 定 後 、S h o w D i a l o gメ ソ ッ ド を 呼 出 し 、 O Kが ク リ ッ ク さ れ た 場 合 、 フ ァ イ ル 名 をTe x t B o xコ ン ト ロ ー ル
( t x t F i l e N a m e )の テ キ ス ト プ ロ パ テ ィ に 代 入 す る 処 理 を 記 述 し て い ま す 。