DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB.NETで画像を全画面に表示するには

環境/言語:[Windows XP, VB.NET, .NET Framework 1.0]
分類:[.NET]

はじめまして、tulipです。
VB.NET 2002 で、画像を全画面に表示したいのですが、やり方がわからなくて、
ご存知の方教えていただけないでしょうか?
思うには、PictureBoxのサイズを全画面サイズに設定し、そのフォームの枠をなくす方法で、表示する画像のサイズを PctureBoxSizeMode.StretchImage と設定すればいいかなと思いますが、具体的にどうすればいいでしょうか?
また、正規なやり方があれば教えていただけないでしょうか?
よろしくお願いいたします。
■No11720に返信(tulipさんの記事)
>〜と設定すればいいかなと思いますが、具体的にどうすればいいでしょうか?
まず、使用するオブジェクトに利用できそうなプロパティが無いか?全て調べて下さい。
PictureBox は必要無いでしょう。Form の設定のみでも可能と思われます。例えば、
Me.WindowState = FormWindowState.Maximized
Me.BackgroundImage = Me.ImageList1.Images(0)
Me.FormBorderStyle = FormBorderStyle.None
>また、正規なやり方があれば教えていただけないでしょうか?
いくらでもやり方はあるのでそんな物は無いと思います。
この投稿はマルチポストです。

●マルチポストされている場所
http://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx01/index.cgi?m=res&bnum=1511&num=1511

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
るしぇさん、
どうも教えていただきありがとうございます。

> まず、使用するオブジェクトに利用できそうなプロパティが無いか?全て調べて下さい。
フォームのプロパティのところを調べたら、確かに教えていただいた3項目が全部ありますね。すみません、どこを調べたらいいのか見当がつかなかったんです。

> Me.WindowState = FormWindowState.Maximized
> Me.BackgroundImage = Me.ImageList1.Images(0)
> Me.FormBorderStyle = FormBorderStyle.None

で、上記の記述をコピー、ペストしてコンパイルしようとしたんですが、Me.ImageList1.の部分がエラーと出るんです。なんで、この三項目を全部プロパティ画面から設定して、実行してみたんですが、指定した画像ストレッチされて全画面に表示されるのではなく、元の画像サイズで連続表示され全画面を埋め尽くすよになりますよね。これでいいんですが、画像と画像の間がなぜか空白があって(何本かの横線縦線が表示される)、これをなくす方法はありますか?

また、imagelist オブジェクトをフォームに追加し(このオブジェクトについても初めてしりました、超初心者ですみません)、リストに表示したい画像を追加したら、エラーがでなくなり、実行してみたんですが、今度は元の画像サイズよりもっと小さく画面が分割され、いっぱい縦横線が表示されるんです。
どうすればいいでしょうか?

なにとぞよろしくお願いいたします。
■No11742に返信((報告)さんの記事)
> この投稿はマルチポストです。

すみません、初めての投稿で失礼なことをしちゃったようです。
まったくいい加減な気持ちはなかったんです。
なかなか教えてくださる方がいなくて、あせて別の掲示板に同じ内容の質問をしたんです。
以降こんなことないように気をつけます。
これからもよろしくお願いいたします。
では、せめてどこで続けるのか決めて、フィードバックしておきましょう。
そのまま放置されてしまうのが情報の共有という概念上、問題があるのです。
断りのないマルチポストが、嫌われる理由について考えて欲しいです。
こんにちは。

>これでいいんですが、画像と画像の間がなぜか空白があって(何本かの横線縦線が表示される)、これをなくす方法はありますか?

画像自体に隙間か枠のようなものがあるではないでしょうか?
■No11754に返信(antさんの記事)

> 画像自体に隙間か枠のようなものがあるではないでしょうか?

あ、そういうことですね、肉眼ではわからなかったんで、気づきませんでした。
いろいろ調べてみたら、画像作成時のバグでした。

レス下さったるしぇさん、ant さん、どうもありがとうございました。
解決済み!
■No11750に返信((報告)さんの記事)
> では、せめてどこで続けるのか決めて、フィードバックしておきましょう。
> そのまま放置されてしまうのが情報の共有という概念上、問題があるのです。
> 断りのないマルチポストが、嫌われる理由について考えて欲しいです。

昨日いわれてすぐもう一つの掲示板に行ってみました。早速じゃんぬねっとさんよりクロスポストリンクが張られて下さってましたので、ありがたくこれでOKとおもったんですが、やはりだめですか?
わかりました、そちらの方の投稿を削除しておきます。
■No11763に返信(tulipさんの記事)
>指定した画像ストレッチされて全画面に表示されるのではなく、元の画像サイズで
>連続表示され全画面を埋め尽くすよになりますよね。これでいいんですが〜

>いろいろ調べてみたら、画像作成時のバグでした。

はい。特にサンプルは一番単純に実現する方法で、最小限の機能で紹介してあります。
>いくらでもやり方はあるので〜
と書いたように、画像の加工については色々な手段があります。最初の質問で
>PctureBoxSizeMode.StretchImage と設定すればいいかなと思いますが
と書かれてますから、当然プログラム側でストレッチとかしたい場合の方法は
頭にありますよね?画像データの必要無い部分の切り取りなども含めて何か
加工したいならまずは PctureBox を使ってみるので良いと思います。
[VBレスキュー(花ちゃん) VB.NET .NET Tips - PictureBox上での画像表示操作色々]
http://www.bcap.co.jp/hanafusa/dotnet/zu01.htm
[DOBON.NET .NET Tips - サムネールイメージの作成]
http://dobon.net/vb/dotnet/graphics/thumbnail.html

サンプルで提供したコードで BackgroundImage ImageList1.Images(0)
質問での PctureBoxSizeMode.StretchImage などをヘルプで熟読し、
どんなデータ型がやり取りされているかまで気を配れば、ポイントは
[Image クラス]
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemdrawingimageclasstopic.asp
である事くらいは既にお気づきの事でしょう。…であればWEB上の
サンプルを見つけるのも造作も無い事。

もし、まだキーワードを取りあえず上げたのみで、いわれるがままに
サンプルを実行したのみで、上げられたキーワードがどんなものか
説明できないレベルであれば、よく調べられる事をお勧めします。

あと、解決したなら解決済み!チェックつけて下さい。

るしぇさん、
いろいろご教授頂き、どうもありがとうございます。
おっしゃっていることじっくり理解して自分の物にします。

> あと、解決したなら解決済み!チェックつけて下さい。
この投稿は質問の枝とマルチポストという2つの枝に分かれてまして、質問の枝には解決済みをチェックしたんですが、こちらではチェックしてないです。
なんか解決済み!ってチェックするのもおかしいかなって勝手に思ったりして、、、これでチェックしておきます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板