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

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

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

ユーザーコントロール間の値の受け渡し


(過去ログ 6 を表示中)

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

■6901 / inTopicNo.1)  ユーザーコントロール間の値の受け渡し
  
□投稿者/ さと 二等兵(16回)-(2006/09/27(Wed) 22:16:15)

分類:[C#] 


分類:[C#] 

こんばんは、質問させて下さい。
VS.NET2003で開発しています。

前にListViewのItemをクリックし、別Formを表示するといった質問を
させて頂き、またその所で躓いています。

Form1にはTabControlがあり、そこにユーザーコントロールで作った
画面を貼り付けて画面の切り替えをしています。

やりたい事はtab2にはListViewとボタンがあり、ボタンをクリック
するとtab2のListViewで選択しているitemをtab1のListViewに表示
するといった動きです。

LisyViewでは無く、TextBoxとLabel間なら出来たのですが、ListView
ではまだ悩んでいます。

ご教授よろしくお願いします。




0
引用返信 編集キー/
■6905 / inTopicNo.2)  Re[1]: ユーザーコントロール間の値の受け渡し
□投稿者/ まどか 少将(240回)-(2006/09/28(Thu) 00:18:57)

分類:[C#] 

> やりたい事はtab2にはListViewとボタンがあり、ボタンをクリック
> するとtab2のListViewで選択しているitemをtab1のListViewに表示

表示しているということはアイテムを追加することはできていると思います。
たぶんA=Bのようなことができないので悩んでいらっしゃるのでしょう。
確かにそのようにはできません。ListViewItemがオブジェクトだからです。
この場合、表示しているのと同様にアイテムを追加してください。
そしてその内容は選ばれたアイテムを見ながら設定するということになります。

ユーザーコントロールについてですが、その中にリストビューとボタンがあり
そのユーザーコントロールがタブに貼りついているということでよいですか?
その場合、ユーザーコントロールという閉じられた世界の中にリストビューがあるので一工夫が要ります。
つまりフォームはユーザーコントロールしか見えないということです。
最終的にすることは先に述べたとおりですが、
選択するほうのユーザーコントロールは選択された情報をフォームへ通知し
フォームは通知を受け取ったらもう一方のユーザーコントロールへその情報を渡してアイテム追加の依頼をする
といった具合になるでしょう。

0
引用返信 編集キー/
■6908 / inTopicNo.3)  Re[2]: ユーザーコントロール間の値の受け渡し
□投稿者/ さと 二等兵(17回)-(2006/09/28(Thu) 03:51:19)

分類:[C#] 

まどかさん、いつも有り難う御座います!

> 表示しているということはアイテムを追加することはできていると思います。

なんとか出来ていると思います;tab2のリストビューにはデータベースから取ってきた情報を表示しています。
まどかさんの言うとおりtab1ListViewItem = tab2ListViewItemというような事が
出来ず悩んでいます。

> ユーザーコントロールについてですが、その中にリストビューとボタンがあり
> そのユーザーコントロールがタブに貼りついているということでよいですか?

はい、ただ、素人考えなのですがユーザーコントロールもクラスとして扱える物だと思っていました、そうしたらtab2からtab1へ値を渡してあげれるかなと・・・。
まだまだそういう話も認識不足の為ちゃんと話合えないかもしれません。

一旦Formに値を置いておける場所を作り、そこにtab2のリストビューの情報を預けてからtab1のリストビューに渡すといった方法でよいのでしょうか?

失礼な質問を繰り返しているかもしれませんが、どうにも手に余るような気がして・・・。もう少し頑張ってみます!



0
引用返信 編集キー/
■6909 / inTopicNo.4)  Re[3]: ユーザーコントロール間の値の受け渡し
□投稿者/ まどか 少将(241回)-(2006/09/28(Thu) 09:37:00)

分類:[C#] 

> はい、ただ、素人考えなのですがユーザーコントロールもクラスとして扱える物だと思っていました、そうしたらtab2からtab1へ値を渡してあげれるかなと・・・。

はい、あってますよ。
そこでListViewが外からは見えない概念になるということに気づけば
じゃぁユーザーコントロールクラスにインターフェースを作らなくっちゃとなるわけです。

> 一旦Formに値を置いておける場所を作り、そこにtab2のリストビューの情報を預けてからtab1のリストビューに渡すといった方法でよいのでしょうか?

基本的にはあってますが、考える基準はユーザーコントロールです。
その外側、つまり利用する側は利用するオブジェクトの仕様に従うだけです。
まず、自分がユーザーコントロールになったつもりで、かつ外側には誰もいないという状況で考えてください。
「私は選択された情報をこの形式で渡します」
「私はこういう形式の情報をくれたらアイテムへ追加します」
ともにユーザーコントロールさんの言葉です。
#これがオブジェクト指向での抽象化(クラス設計)という作業です。

今回の場合はコントロールですから、なおさら誰が貼り付けても動くものにしなければなりませんね。

0
引用返信 編集キー/
■6953 / inTopicNo.5)  Re[4]: ユーザーコントロール間の値の受け渡し
□投稿者/ さと 二等兵(18回)-(2006/09/28(Thu) 22:13:45)

分類:[C#] 

まどかさん、有り難う御座います。

まだ出来上がってはいないのですが、ListViewではなく、TextBoxで最初とは
違う方法で試してみました。

public string Message
{
set{ TextBox.Text = value; }
}
としといて、

string msg = TextBox.Text;
newForm.Message = msg;

これで値を渡してあげることが出来ました。

> そこでListViewが外からは見えない概念になるということに気づけば

きずきませんでした;ユーザーコントロールだと考える基準がユーザー
コントロールなんですね、なんだか頭がこんがらがりそうです・・・。
手元にある書籍でインターフェイスやら抽象化やらを読み直しています。

もう少しいじれば出来そうなので、助かりました。

> はい、あってますよ。

素直に嬉しかったです。まどかさんや、じゃんぬさん、中さんなど、
こちらの掲示板の上位の回答者の皆様には勝ってながら淡い憧れを
抱いています。
いつかは私もそうなりたいなぁと^^;

話は変わってしまうのですが、TECH-ED2006 Yokohamaに私も行きました。
わんくまの皆様はどこだろうと思って見ていたのですが、初めていった
もので、ロビーをうろちょろしていました。
次こそは、サインの一つでも頂こうかと狙っていますw

有り難う御座いました、また何かありましたらお願いします。

#後で、ちゃんとした物が出来上がったら報告しにきます。

0
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -