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

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

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

Re[5]: ピクチャボックスでの画像表示位置


(過去ログ 32 を表示中)

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

■15927 / inTopicNo.1)  ピクチャボックスでの画像表示位置
  
□投稿者/ れれれ (53回)-(2008/03/25(Tue) 18:10:06)

分類:[C#] 

お世話になっていますれれれです。

さっそく質問なのですが、
ピクチャボックス上に画像を表示させる場合にいつも左上に合わせて表示されるのですが、パワーポイントみたいにピクチャボックス上に好きな位置に複数の画像を貼り付けるにはどうすればいいのでしょうか?

画像をピクチャボックスに追加するときに新たなピクチャボックスを自動生成できれば動かせるかもと考えています。

(http://bbs.wankuma.com/index.cgi?mode=al2&namber=8378&KLOG=21を読んでレイヤを取り入れるべきでしょうか?)
引用返信 編集キー/
■15936 / inTopicNo.2)  Re[1]: ピクチャボックスでの画像表示位置
□投稿者/ 出水 (16回)-(2008/03/25(Tue) 20:37:55)
drawImageを使っていれば、左上指定が必須なのでわかりそうですが…

とりあえず、Paintのイベントの中でこんな感じで書けばいいです
e.Graphics.DrawImage(bmp, new Point(100,100));

引用返信 編集キー/
■15955 / inTopicNo.3)  Re[2]: ピクチャボックスでの画像表示位置
□投稿者/ ま (3回)-(2008/03/26(Wed) 02:15:51)
2008/03/26(Wed) 02:24:38 編集(投稿者)
2008/03/26(Wed) 02:16:50 編集(投稿者)

<pre><pre>■No15936 (出水 さん) に返信
> drawImageを使っていれば、左上指定が必須なのでわかりそうですが…
> 
> とりあえず、Paintのイベントの中でこんな感じで書けばいいです
> e.Graphics.DrawImage(bmp, new Point(100,100));
> 

Panelの子コントロールとしてPictureBoxを配置すればOKかな、たぶん。
VBで悪いのだが。。。
public class PicturePanel : Inherits Panel

   public sub AddImage(imageFile as String, pos As Point)
     dim pic as new PictureBox
     pic.backgroundImage = Image.FromFile(imageFile)
     pic.Size = pic.backgroundImage.Size
     pic.Location = pos
     me.controls.add( pic )
     
   end sub
end class

C#だと、たぶんこうなる。
public class PicturePanel : Panel
{
   public void AddImage(string imageFile, Point pos)
   {
     PictureBox pic = new PictureBox();
     pic.backgroundImage = Image.FromFile(imageFile);
     pic.Size = pic.backgroundImage.Size;
     pic.Location = pos;
     this.controls.add( pic );

}

で、

form_load  で 
dim pb as new PicturePanel
pb.size = new Size(400, 400)

me.controls.add(pb)
pb.AddImage("C:\images\xxx.jpg", new Point(100, 100))
pb.AddImage("C:\images\yyy.jpg", new Point(200, 100))
pb.AddImage("C:\images\zzz.jpg", new Point(300, 100))

てな感じ。VB を C# に読み直せます?




イメージ同士の奥行き(z-Index)はどうやって指定すんのかな?不要?
</pre></pre>

引用返信 編集キー/
■15991 / inTopicNo.4)  Re[3]: ピクチャボックスでの画像表示位置
□投稿者/ れれれ (54回)-(2008/03/26(Wed) 15:13:10)
2008/03/26(Wed) 15:13:29 編集(投稿者)
No15955 (ま さん) に返信
        
        PicturePanel pb = new PicturePanel();
        private void button_add_image_Click(object sender, EventArgs e)
        {
            this.Controls.Add(pb);
            pb.AddImage(@"//画像アドレス//", new Point(100, 100));   
      
        }
    public class PicturePanel : Panel
    {
        public void AddImage(string imageFile, Point pos)
        {
            PictureBox pic = new PictureBox();
            pic.BackgroundImage = Image.FromFile(imageFile);
            pic.Size = pic.BackgroundImage.Size;
            pic.Location = pos;
            this.Controls.Add(pic);

        }
    }

このように書いてみたのですがプログラム自体は問題なく終了するのですが画像が表示されません。
どうすればいいでしょうか?

引用返信 編集キー/
■16011 / inTopicNo.5)  Re[4]: ピクチャボックスでの画像表示位置
□投稿者/ Jitta on the way (67回)-(2008/03/26(Wed) 18:33:13)
No15991 (れれれ さん) に返信

レイアウトをどうたらこうたらってコマンドはいらないのかな?
自動生成されるコード参照
引用返信 編集キー/
■16025 / inTopicNo.6)  Re[5]: ピクチャボックスでの画像表示位置
□投稿者/ ま (4回)-(2008/03/27(Thu) 00:32:50)
No16011 (Jitta on the way さん) に返信
> ■No15991 (れれれ さん) に返信
>
> レイアウトをどうたらこうたらってコマンドはいらないのかな?
> 自動生成されるコード参照

レイアウトをどーたらこーたらは何も指定しないときは「タイル」だったかと。

    PicturePanel pb = new PicturePanel();
private void button_add_image_Click(object sender, EventArgs e)
{
this.Controls.Add(pb);
pb.AddImage(@"//画像アドレス//", new Point(100, 100));

}

というか、フォームがどういう構造なのか分からんのですが、ボタンクリックイベント
内でインスタンス変数の「パネル」をAddするのはどんなものかと。クリック毎に同じ
変数バカバカ追加しても意味無いです。

サイズ指定してないから見えないのですよ。

No.15955 を読み直して足りない部分を追加してちょ。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -