none
form1とlistview RRS feed

  • 質問

  • おひさしぶりです。こんにちは★

    最近はほったらかしだったもので、質問にきました。

    form1にはディレクトリ開くボタン、印刷ボタン、閉じるボタンが有ります。

    form2には印刷ページになります。

    ・form1にlistviewがあり、サムネイル表示させています。サムネイル表示が非常に荒いため、form2の印刷ページではローカルそのままのファイル(jpg)を載せたいのです。

    用は、

    ・form1でlistviewで表示した画像をクリックし、印刷ボタンをクリックします。そうするとlistviewではサムネイルで表示されていますが印刷ボタンをクリックしたら印刷ページではサムネイルではない元のファイルのjpgを載せたいのです。ですが!!わたしの買ったテキスト及び、検索したサイトにヒントがないので投稿しました。

    是非ご伝授ください。。。

     

    2007年1月9日 6:52

回答

  •  美流久 さんからの引用
    でも、サムネイルの時にはフルパス使っていないですよ??これをどうやってform2のpictutureboxまでやろうかと思っています。

    あ、そうなんですか...

    dim f as  new form2

    f.show()

    で開いていましたが、それだけではpictureboxに反映しないので・・・・orzうぬぬ・・・

    まあ、PictureBox にあれこれしなさいというロジックがなければ、プログラムは何もできませんから。

    Form2 に Public なメソッドをひとつ追加してみてください。
    メソッド名は、SetPictureBoxImage とか、それなりの名前で良いでしょう。

    このメソッドの引数として必要なのは、ファイルパスだけです。
    あとはこのメソッド内で、Form2 にある PictureBox にあれこれ出来ますよね?

    このように、クラス内のものはクラス内でどうこうするようにした方が良いです。
    それを外部から呼び出したい場合は、今回ように Public メソッドなどを使います。

    2007年1月10日 7:49

すべての返信

  • 美流久さん、こんにちは。

     美流久 さんからの引用
    ・form1でlistviewで表示した画像をクリックし、印刷ボタンをクリックします。そうするとlistviewではサムネイルで表示されていますが印刷ボタンをクリックしたら印刷ページではサムネイルではない元のファイルのjpgを載せたいのです。ですが!!わたしの買ったテキスト及び、検索したサイトにヒントがないので投稿しました。

    普通に考えてサムネイル画像を表示する方が、難しいわけですが...

    印刷用のフォームでは、普通に PictureBox などのコントロールで画像を読み込むだけなのではないでしょうか?
    それとも、印刷コンポーネント内のお話をしていますか?

    2007年1月9日 6:58
  •  美流久 さんからの引用
    ・form1でlistviewで表示した画像をクリックし、印刷ボタンをクリックします。そうするとlistviewではサムネイルで表示されていますが印刷ボタンをクリックしたら印刷ページではサムネイルではない元のファイルのjpgを載せたいのです。ですが!!わたしの買ったテキスト及び、検索したサイトにヒントがないので投稿しました。

    普通に考えてサムネイル画像を表示する方が、難しいわけですが...

    印刷用のフォームでは、普通に PictureBox などのコントロールで画像を読み込むだけなのではないでしょうか?
    それとも、印刷コンポーネント内のお話をしていますか?

    >>>>>>>>>>>>>>>

    じゃんぬねっとさんこんにちは★

    largeiconの載せ方がサムネイルしかしらないので、サムネイルでやってみました^^;

    すみません補足で、form2にはpictureboxが4つおいてあります。form1でサムネイル画像を選び、印刷ボタンをクリックするとform2の印刷ページでpicturebox4つに載せたかったんです。でもさっき考えてみたらサムネイルで4つの画像をえらぶって可能なんでしょうか?

    pictureboxには4つとも違うjpgをいれたいのです(汗。

    あと、プロパティに登録しておく形式ではなくて、自分自身がファイルを開き印刷ページに好きな画像を載せる、というようにしたいのです★

    意味不明で申し訳ないです;;

    2007年1月9日 7:19
  • >>美流久さん

     美流久 さんからの引用
    すみません補足で、form2にはpictureboxが4つおいてあります。form1でサムネイル画像を選び、印刷ボタンをクリックするとform2の印刷ページでpicturebox4つに載せたかったんです。でもさっき考えてみたらサムネイルで4つの画像をえらぶって可能なんでしょうか?

    前にも 2 回ほど言ったと思いますが、それぞれバラバラで考えてください。
    バラバラで考えると、それこそ各種サイトの Tips に載っているレベルのことになります。

    モジュール レベルで考えられるレベルでないならば、関数レベルで物事を考えましょう。

    pictureboxには4つとも違うjpgをいれたいのです(汗。
    あと、プロパティに登録しておく形式ではなくて、自分自身がファイルを開き印刷ページに好きな画像を載せる、というようにしたいのです★

    PictureBox の Image に動的にイメージを送り込む方法は、どのサイトにでも多分書いてあります。
    4 つの画像を選ぶについても、OpenFileDialog を使ったサンプルを探せば良いでしょう。
    バラバラで考えますと、このように手段はすぐ思い浮かびます。(仕様がそれで良いかどうかは別ですが)

    よく、「1 つ 1 つ、確実に解決していこう」 と仰る方がいますが、こういう時に使う言葉なのでしょうね。

    それと、あなたがどの時点で躓いているのかわからないのも問題になります。
    せめて、できないところを、その都度バラバラで聞いた方が良いでしょう。

    その方が、ヒントもピンポイントに提示しやすいです。
    今どの時点で躓いているのかを提示して頂くこと、
    何を調べていてどこまでわかっているのか提示することをご提案します。

    大変だとは思いますが、美流久さんのためにもなると思います。

    2007年1月9日 7:39
  •  じゃんぬねっと さんからの引用

    4 つの画像を選ぶについても、OpenFileDialog を使ったサンプルを探せば良いでしょう。

    ここはたぶん、ListViewからサムネイルを同時に4つ選択したいという意味じゃないかな?
    であれば、可能です。ListViewからサムネイルを選択した時に、そこからどのように情報を得るのかという技術ですが、どこまで試されたのでしょうか?
    じゃんぬさんが良いことを言われていますが、一つ一つの技術がつながって、一つのアプリケーションになります。プログラム作成において、問題を切り分けることは、非常に大切です。
    2007年1月9日 10:52
    モデレータ
  • あ... MultiSelect のことでしたか。

    2007年1月9日 11:36
  • trapemiya さん

    じゃんぬ さん

    おはようございます。multiselectとはなんぞや??と思い、ツールボックスから探していたらプロパティに有ること知りました。また一つ勉強になりました。(えw

    もしや!!と思い、普段ローカルでも使っているように、複数選択したいサムネイル画像をコントロールキーで押しながら選択したい部分をクリックしてみたところ複数の選択ができたので、その次の段階をしていこうとしています。

    じゃんぬさん、パスの事で以前聞きましたが全部がひとまとめでPGしようとしていました。学習能力がない私・・・(汗

    一つ一つ丁寧にやってみます。

    解決しましたら&未解決の場合また書きますね★

    2007年1月10日 1:07
  • とばしてしまいました。。すみません

    じゃんぬさん>>


    それと、あなたがどの時点で躓いているのかわからないのも問題になります。
    せめて、できないところを、その都度バラバラで聞いた方が良いでしょう。

    その方が、ヒントもピンポイントに提示しやすいです。
    今どの時点で躓いているのかを提示して頂くこと、
    何を調べていてどこまでわかっているのか提示することをご提案します。


    サムネイルの4つ選択部分>>さきほどサムネイルの複数選択が解りました。

    ・form1でlistviewに表示しているサムネイルを選択したとき、form2ではサムネイルみたいに縮小のままの画像ではなくて、元のjpgのファイル画像でpicturebox1~picturebox4に4つそれぞれ違う画像を写したいです。

    躓いている部分とすれば・・・form1のサムネイルのファイルを選びファイル名からそのファイルの画像をform2のpictureboxに入る様にしたいんです。

    なので、サムネイルに載せている画像のファイル名パスをまず取得しようとしているんですが、system.io.path.getfilenameでやってみています。まだ、途中ですが・・・・失敗して理解深めて行きたいので、いろんなやり方でやっています;;

    やっているうちに自分が何をしたいのか分かんなくなってきますw(汗

    2007年1月10日 4:48
  • あけましておめでとうございます~。

     

    >なので、サムネイルに載せている画像のファイル名パスをまず取得しようとしているんですが、system.io.path.getfilenameでやってみています。まだ、途中ですが・・・・失敗して理解深めて行きたいので、いろんなやり方でやっています;;

    ファイル名ですか?それともファイルへのフルパスですか?

    GetFileNameはフルパスからファイル名を取得するためのものなので、ファイル名しか取れないと思います。

    フォルダを開いて、サムネイル画像を表示しているのであれば、フォルダまでのパスは取得できてないですか?

    (思い違いであればごめんなさい_| ̄|○ノ)

     

    サムネイル画像をForm1に表示しているところで、ファイルのフルパスを取得しておくと後々パス作らなくていいですね。

    おまけですが、ListViewItemのTag使うと楽ですよ(・ω・*)

     

    2007年1月10日 5:11

  • >なので、サムネイルに載せている画像のファイル名パスをまず取得しようとしているんですが、system.io.path.getfilenameでやってみています。まだ、途中ですが・・・・失敗して理解深めて行きたいので、いろんなやり方でやっています;;

    ファイル名ですか?それともファイルへのフルパスですか?

    GetFileNameはフルパスからファイル名を取得するためのものなので、ファイル名しか取れないと思います。

    フォルダを開いて、サムネイル画像を表示しているのであれば、フォルダまでのパスは取得できてないですか?

    (思い違いであればごめんなさい_| ̄|○ノ)

     

    サムネイル画像をForm1に表示しているところで、ファイルのフルパスを取得しておくと後々パス作らなくていいですね。

    おまけですが、ListViewItemのTag使うと楽ですよ(・ω・*)


    ジープさんこんにちわ★あけおめです♪

    今丁度、フルパスしていたのでびっくりしました。フォルダのパスは「開く」ボタンの所にパスが取れています。

    そう考えるともうパスは取れているんですね。今気づきました。(冷汗

    フルパスは私の置くところがだめなのか解りませんが、エラーが出てしまいます。「印刷」ボタンに

    dim p as string=system.io.path.getfullpath()なんですが()の中がいまいち理解出来ず。

    dim p as string=system.io.path.getfullpath("c:¥,*.jpg")ってだめなんですか?PCの中のjpgのパスを取りたいんです。

    あと、listviewitemのプロパティでメンバ0の所に追加してみました。

    2007年1月10日 5:30
  • 【壁】・ω・)ノ <こんにちわ

     

    >dim p as string=system.io.path.getfullpath()なんですが()の中がいまいち理解出来ず。

    まずはGetFilePathが何なのかをヘルプだかMSDNだかで調べることをオススメします。

    そこにはちゃんと関数の使いかたが書いてあるはず…

    わからなければ、GetFilePathのとこに張られてるリンクの関連項目を見ていけばわかると思われます~。

    ローカルパソコンでMSDNをインストールしていないのであれば、MSDNのHPから探せば出てきます。

     

    あと、listviewitemのプロパティでメンバ0の所に追加してみました。

    何を追加したのでしょうか…(・∀・;)

    2007年1月10日 5:49
  • GetFullPathの使い方はMSDNを見ていらっしゃいますか? ちなみにGetFullPathは、相対パスを絶対パスに変換するものです。従って、GetFullPathのカッコの中は、相対パスを表した文字列になります。なので、その文字列は普通はドライブレター(c:など)から始まることはありません。

    もうパスが取れていることにお気づきですので、GetFilesを使って、ファイルの一覧を取得して下さい。

    2007年1月10日 5:51
    モデレータ
  • Σ(・∀・;)げっ

    GetFilePathって書いてる…激しくミスh

    † λ... 申し訳ない…

    2007年1月10日 5:59
  •     System.Environment.CurrentDirectory = "c:\windows\system"
        Console.Write(System.IO.Path.GetFullPath("../.jpg"))

    としました。そしたらエラー出ませんでした。

    ジープ さん

    特に気にしていませんでしたので大丈夫ですw

    というかタイトルと全く違って申し訳ないです。。。。orz

    2007年1月10日 6:09
  • trapemiyaさん>>

    ファイル一覧なんですが、folderbrowserdialogで、一度ルート使ってフォルダからファイル開いています。ファイル一覧ってどうゆう意味になるんでしょうか??(汗

    2007年1月10日 6:25
  • >>美流久さん

     美流久 さんからの引用
    ファイルの一覧ですか・・・やってみます★

    とりあえず、今はファイルのフルパスが取得できないでいるわけですね。
    サムネイル画像を生成する時にも、フルパスは使っていますよね?
    これをどこかに退避させるという考え方はできますか?

    というかタイトルと全く違って申し訳ないです。。。。orz

    ついですが、もともとのタイトルもあまり好ましくないです。
    "form1 と listview" このタイトルでは、スレッドを開けるまでどんな質問なのか皆目検討がつかないですから。
    概要を簡潔に書くようにすると、良いです。

    2007年1月10日 6:28
  • じゃんぬねっとさん>>

    丁度入れ違いでレスしていたみたいです。フルパスはget出来ました★

    でも、サムネイルの時にはフルパス使っていないですよ??これをどうやってform2のpictutureboxまでやろうかと思っています。

    今のところ、じゃんぬさんのHPの画像部分(「bictureboxに画像を表示する」)の所を見たりチャレンジしていますが、form2に移動する場合、私だと↓

    dim f as  new form2

    f.show()

    で開いていましたが、それだけではpictureboxに反映しないので・・・・orzうぬぬ・・・

    ★タイトルですが以後気をつけます★

    2007年1月10日 7:13
  •  美流久 さんからの引用
    でも、サムネイルの時にはフルパス使っていないですよ??これをどうやってform2のpictutureboxまでやろうかと思っています。

    あ、そうなんですか...

    dim f as  new form2

    f.show()

    で開いていましたが、それだけではpictureboxに反映しないので・・・・orzうぬぬ・・・

    まあ、PictureBox にあれこれしなさいというロジックがなければ、プログラムは何もできませんから。

    Form2 に Public なメソッドをひとつ追加してみてください。
    メソッド名は、SetPictureBoxImage とか、それなりの名前で良いでしょう。

    このメソッドの引数として必要なのは、ファイルパスだけです。
    あとはこのメソッド内で、Form2 にある PictureBox にあれこれ出来ますよね?

    このように、クラス内のものはクラス内でどうこうするようにした方が良いです。
    それを外部から呼び出したい場合は、今回ように Public メソッドなどを使います。

    2007年1月10日 7:49
  • じゃんぬねっとさん>>

    なるほど!!すごくわかりやすいです。

    なんか少し賢くなった気分です^^♪

    form2にメソッド追加したり、一通りやってみます。また躓いたらご伝授お願いします★

    2007年1月10日 9:00
  • 美流久さん、喜んで頂けて私も嬉しいです。

    この考え方は、オブジェクト指向 (というよりは構造化) に必要な考え方です。
    これをわかっていないと、今後も同じような場所で躓くので、頑張ってみてください。

    また、不明な点がありましたら、どうぞ。

    2007年1月10日 10:57