- PR -

VS2005でデータの取得をしたい

投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-04-14 15:38
初心者です。よろしくお願いします。

VS2005
VisualBasic
Windowsアプリケーション
でやっています。

Form1,Form2とあって
Form1には作成したビューをデータソースから、DataGridViewでDrag&Dropして
Form2にはビューの子ノードであるテーブルを、詳細でDrag&Dropしています。

Form1のビューで行を選択したとき
Form1からForm2を開いたら、
Form2のテーブルで選択した行が反映されている、というのを作りたいのですが
方法がよく分かりません。

下手な文章で申し訳ありませんが、よろしくお願いします。



じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-14 15:49
引用:

nobuさんの書き込み (2006-04-14 15:38) より:

Form1のビューで行を選択したとき
Form1からForm2を開いたら、
Form2のテーブルで選択した行が反映されている、というのを作りたいのですが


Form1 のテーブルで選択した行が、Form2 のテーブルに反映されている、ですよね?
Form1 で選択された行のキーさえ取得すれば、Form2 ではそのキーで抽出した結果を展開できますよね?

実際、どこで躓いているのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-04-14 16:48
すみません、書き方がおかしかったです。

> Form2のテーブルで選択した行が反映されている、というのを作りたいのですが

Form2にはデータソースからテーブルの詳細をDrag&Dropしているだけで、
具体的にはLabelとtextBoxが並んでいます。(詳細はデフォルトのままです)

この状態ですと、Form1からForm2を開いたら
Form1でどの行を選択してもForm2では先頭行が表示されて、
指定した行の内容が表示されず、困っています。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-14 17:20
ちょっとまだ理解できていないかもしれませんが。(>_<)

引用:

nobuさんの書き込み (2006-04-14 16:48) より:

Form2にはデータソースからテーブルの詳細をDrag&Dropしているだけで、
具体的にはLabelとtextBoxが並んでいます。(詳細はデフォルトのままです)

この状態ですと、Form1からForm2を開いたら
Form1でどの行を選択してもForm2では先頭行が表示されて、
指定した行の内容が表示されず、困っています。


何もしてなければ、nobu さんの言うデフォルトのままになるでしょうね。
Label と TextBox であれば、表示させるものを渡せば後は Text に適用するだけですよね?

繰り返しになりますが、どこで躓いているのでしょうか?
Form1 から Form2 へデータの渡し方がわからないだけでしょうか?

それと、Form2 ってモードレスで Form1 と同期を取ったりする仕様ですか?
たとえば、Form1 で行を切り替えると表示中の Form2 も更新しますか?
それとも、モーダルで開いているので考慮しなくて良しですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-04-14 17:38
じゃんぬねっとさん度々すみません。

> Form1 から Form2 へデータの渡し方がわからないだけでしょうか?

まさしくこれです。データの渡し方がよくわかりません。

> それと、Form2 ってモードレスで Form1 と同期を取ったりする仕様ですか?
> たとえば、Form1 で行を切り替えると表示中の Form2 も更新しますか?

モードレスですのでこの同期を取ったりする仕様にしたいです。

すみませんうまく説明できずに...

よろしくお願いします。


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-14 18:04
引用:

nobuさんの書き込み (2006-04-14 17:38) より:

まさしくこれです。データの渡し方がよくわかりません。


以下のような実装で良いです。(手抜きですが、イメージは掴めると思います)
  1. Form2 に Set 用のメソッドかプロパティを用意
  2. Form1 で Form2 を開ける際に、先に用意したプロパティかメソッドを使ってデータを渡す。
    この場合のデータは Me.DataGridView1.CurrentRow から取得できる。
    (データの詰め込み方は、配列でもコレクションでも独自の型でも、とりあえずどれでも良いです)
  3. 渡されたデータを用いて Form2 で Label や TextBox の Text にセットする。
もっと型を明示化したり、イベントの選定をした方が良いです。

引用:

モードレスですのでこの同期を取ったりする仕様にしたいです。


これはとりあえず、後回しにしましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-04-17 14:35
レス遅くなってすいません。

> Form2 に Set 用のメソッドかプロパティを用意

ということでしたので宣言で
  Private aaa As String
とし、コードは

Public Property Name() As String
Get
Return aaa
End Get
Set(ByVal Value As String)
aaa = Value
End Set
End Property

としましたが、警告で(このメソッドは'Overloads'に宣言されていなければなりません)
となりました。書き方がおかしいのでしょうか?あと

> 先に用意したプロパティかメソッドを使ってデータを渡す。

のコードの書き方がどうしてもわかりません。どこか参考リンクなどありませんでしょうか...
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2006-04-17 15:01
msoです。


引用:

nobuさんの書き込み (2006-04-17 14:35) より:


としましたが、警告で(このメソッドは'Overloads'に宣言されていなければなりません)
となりました。書き方がおかしいのでしょうか?あと

> 先に用意したプロパティかメソッドを使ってデータを渡す。

のコードの書き方がどうしてもわかりません。どこか参考リンクなどありませんでしょうか...




何かFormクラスを継承したクラスを継承してますか??


スキルアップ/キャリアアップ(JOB@IT)