C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 別フォームのclickイベント


(過去ログ 53 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■29376 / inTopicNo.1)  別フォームのclickイベント
  
□投稿者/ わさわさ (1回)-(2008/12/09(Tue) 09:44:07)

分類:[.NET 全般] 

2008/12/09(Tue) 09:47:36 編集(投稿者)

初めまして、よろしくお願いします。
開発環境:vb.net 2005

form1(親)とform2(子)があり、form1のボタンクリックイベントで
showdialogでform2を表示するようにしています。
↑この時2,3値を渡しています。
そして、ここからが本題なのですが
form2でデータを入力、閉じるボタンを押した時me.hide()をし、
form1の実行ボタンを押したときに(form1のDB出力処理&)form2のボタンクリックイベント(DB出力処理)
をしたいのです。

form1の方でform2での処理を実行できればいいのですが、form2での入力がdatagridview(DB出力にdatasetを使っていません。)で行っているので
今回のような方法で、と思いました。

またタイトルとは異なりますが、datagridviewの入力した値を渡す方法をできたら教えてもらいたいです。

ややこしい説明ではありますが何卒よろしくお願い致します。


文書に間違った記述があったので修正しました。
引用返信 編集キー/
■29377 / inTopicNo.2)  Re[1]: 別フォームのclickイベント
□投稿者/ aetos (35回)-(2008/12/09(Tue) 09:50:26)
No29376 (わさわさ さん) に返信

> そして、ここからが本題なのですが
> form2でデータを入力、閉じるボタンを押した時me.hide()をし、
> form1の実行ボタンを押したときに(form1のDB出力処理&)form2のボタンクリックイベント(DB出力処理)
> をしたいのです。

その時、form2 は非表示になっているんですよね。
なんか不自然だと思いませんか?

DB出力処理は Form に書かないで、別のクラスに切り出した方がいいと思います。
引用返信 編集キー/
■29381 / inTopicNo.3)  Re[2]: 別フォームのclickイベント
□投稿者/ わさわさ (2回)-(2008/12/09(Tue) 10:05:45)
No29377 (aetos さん) に返信

> その時、form2 は非表示になっているんですよね。
> なんか不自然だと思いませんか?
>
> DB出力処理は Form に書かないで、別のクラスに切り出した方がいいと思います。

返信有難う御座います。

仮にtestというクラスをform2に作り、それをform1で呼び出して実行するということでしょうか?
その場合、form2のDB出力はどのように行えばよいのでしょうか…?
引用返信 編集キー/
■29382 / inTopicNo.4)  Re[1]: 別フォームのclickイベント
□投稿者/ やじゅ (846回)-(2008/12/09(Tue) 10:14:32)
やじゅ さんの Web サイト
No29376 (わさわさ さん) に返信
> form2でデータを入力、閉じるボタンを押した時me.hide()をし、
> form1の実行ボタンを押したときに(form1のDB出力処理&)form2のボタンクリックイベント(DB出力処理)
> をしたいのです。
>

一応、PerformClickメソッドがありますけど
http://dobon.net/vb/dotnet/control/performclick.html

Clickイベントハンドラの内容をメソッドとして独立させ、
そのメソッドを呼び出すようにした方がいいですね。

とはいえ、ここに引っかかってるわけではないよね、きっと・・・

引用返信 編集キー/
■29385 / inTopicNo.5)  Re[2]: 別フォームのclickイベント
□投稿者/ わさわさ (3回)-(2008/12/09(Tue) 10:25:13)
No29382 (やじゅ さん) に返信
> 一応、PerformClickメソッドがありますけど
> http://dobon.net/vb/dotnet/control/performclick.html
>
> Clickイベントハンドラの内容をメソッドとして独立させ、
> そのメソッドを呼び出すようにした方がいいですね。

返信有難う御座います。

> とはいえ、ここに引っかかってるわけではないよね、きっと・・・
いえ、引っかかっています…

(独立させたメソッド名:method)
dim rei as new プロジェクト名.form2
call rei.method
→この次に何を書いたらいいのか…さっぱりです
引用返信 編集キー/
■29406 / inTopicNo.6)  Re[3]: 別フォームのclickイベント
□投稿者/ やじゅ (849回)-(2008/12/09(Tue) 12:18:17)
やじゅ さんの Web サイト
2008/12/09(Tue) 12:35:25 編集(投稿者)

No29385 (わさわさ さん) に返信
> (独立させたメソッド名:method)
> dim rei as new プロジェクト名.form2
> call rei.method
> →この次に何を書いたらいいのか…さっぱりです

form2のボタンの処理を、メソッドに分けたわけですね。
だから

form2内
Sub Button_Click
call rei.method
End Sub

Public Sub method
DB出力処理
End Sub


form1の実行ボタン
Sub ExecuteButton_Click
'form1のDB処理
call Regist

'form2のDB処理
'dim rei as new プロジェクト名.form2
'ここでnewしてしまうと、form2の入力内容での更新があやうい
call rei.method

'→この次に何を書いたらいいのか…さっぱりです
'更新が完了しました。などのメッセージ出力とか
End Sub

で、何が分からないですか?
引用返信 編集キー/
■29414 / inTopicNo.7)  Re[4]: 別フォームのclickイベント
□投稿者/ わさわさ (4回)-(2008/12/09(Tue) 13:35:06)
No29406 (やじゅ さん) に返信
> 2008/12/09(Tue) 12:35:25 編集(投稿者)
>
> form1の実行ボタン
> Sub ExecuteButton_Click
> 'form1のDB処理
> call Regist

↑このregistとは…何の事を指しているのでしょうか?
引用返信 編集キー/
■29424 / inTopicNo.8)  Re[3]: 別フォームのclickイベント
□投稿者/ わさわさ (5回)-(2008/12/09(Tue) 16:46:38)
form2
private sub フォーム2の実行ボタン(byval sender〜)
 excute()
end sub

private sub excute()
 処理
end sub

public sub bg()
excute()
end sub

form1
'宣言
shared fc as windows.forms.control
dim gbl as プロジェクト名.form2

private sub フォーム1の実行ボタン
 gbl.bg()
end sub

private sub form2呼び出しボタン
 gbl = new プロジェクト名.form2
end sub

public shared sub test (byval f as windows.forms.control)
 fc = f
end sub

でできました。
質問に答えてくださった方々どうも有難う御座いました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -