• 締切済み

c# listview、sidebarについて

listviewとsaidebarについてお聞きします。 listviewやsaidebarにimagelistの画像を表示させたいのですが どのように表記したら良いでしょうか? pictureboxの場合は picturebox1.image=imagelist1.images[0] で表示できましたが、listviewやsidebarではエラーになります。 宜しくお願いいたします。

みんなの回答

回答No.2

 こんばんは。  リストビューのバックグラウンド(背景)にイメージを出したいのであるならば、 //タイルにして並べる listView1.BackgroundImageTiled = true; listView1.BackgroundImage = imgList.Images[0];  で出来る筈です。  サイドバーの方ですが、デスクトップサイドバーで大当たりならば、FindWindow()API辺りで見つけ出して、横槍を入れるしかなさそうです。  http://www.souya.biz/blog/?p=300  http://www.forest.impress.co.jp/article/2008/01/31/xptovistasp.html

inuoyogi7
質問者

お礼

回答ありがとうございます。 添付サイト参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

saidebarは分かりませんが、 listviewでのサンプルが以下のように。 .NET TIPS ListViewコントロールでサムネイル画像を一覧表示するには? http://www.atmarkit.co.jp/fdotnet/dotnettips/336listviewimage/listviewimage.html 参考にならなかったらすみません。

inuoyogi7
質問者

お礼

回答ありがとうございます。 添付サイト参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Imagelist の使い回しについて

    現在ListviewとImagelistを使って同じカテゴリの画像を表示させるものを作成しているのですが、画像が多いを読み込みに時間がかかるので、一度読み込んだImagelistは使い回しができないか試しているのですがうまくいきません・・・ 試した方法なのですが、初回は普通に「Imagelist1」に読み込んで画像が多いもの(例えばImagelist1.Images.Countが20以上)の場合、Imagelistのコントロール?を配列(MyImageList(index))で作成してそれにコピー、次回はそのコピーしたものを表示するようにしてうまくいった(表示できた)と思ったのですが、一度「ImageList1.Images.Clear()」をするとなぜか関係ないはずのMyImageList(index)の方まで消えてしまうようです・・・なぜなのでしょうか? 色々試したのですが、どうしてもうまくいきません。Imagelistはこういう使い方はできないのでしょうか? うまい使い回し(保存・維持)方法があったら教えてください。 VBは2008です。

  • C#2005 Imagelistの余白の除去について

    お世話になります。 ListviewにImagelistを代入し、表示するものを作成しております。 枠のサイズは100×100で、実際のjpeg画像は約100×75です。 しかしながら、画像以外の箇所の色指定もしくは透過色を指定したいのですが、変更されません。 以下にサンプルコードと画面サンプルを登録させていただきます。 // 幅w、高さhのImageオブジェクトを作成 Image createThumbnail(Image image, int w, int h) { Bitmap canvas = new Bitmap(w, h); Graphics g = Graphics.FromImage(canvas); g.FillRectangle(new SolidBrush(Color.White), 0, 0, w, h); float fw = (float)w / (float)image.Width; float fh = (float)h / (float)image.Height; float scale = Math.Min(fw, fh); fw = image.Width * scale; fh = image.Height * scale; g.DrawImage(image, (w - fw) / 2, (h - fh) / 2, fw, fh); g.Dispose(); return canvas; } private void button2_Click(object sender, EventArgs e) { string imageDir = @"C:\thumbnailTest\Image"; // 画像ディレクトリ string[] jpgFiles = System.IO.Directory.GetFiles(imageDir, "*.jpg"); int width = 100; int height = 100; imageList1.ImageSize = new Size(width, height); listView1.LargeImageList = imageList1; imageList1.TransparentColor = Color.Transparent; for (int i = 0; i < jpgFiles.Length; i++) { Image original = Bitmap.FromFile(jpgFiles[i]); Image thumbnail = createThumbnail(original, width, height); imageList1.ColorDepth = ColorDepth.Depth24Bit; imageList1.Images.Add(thumbnail); listView1.Items.Add(jpgFiles[i], i); original.Dispose(); thumbnail.Dispose(); } } お手数ですが、ご教授いただきたく宜しくお願い申し上げます。

  • VB2010 ListView 使い方

    VB2010でListViewを使っています。かなり順調にプログラムが出来ているのですが、トラブルに遭遇しました。 Form1でDATAを入力して、Form2とForm3でそのDATAをListViewを使って表示しています。 そして、Form2のListViewをForm4に簡素化した雛形にして、ListViewを使って表示させています。 同様に、Form3のListViewをForm5に簡素化した雛形にして、ListViewを使って表示させています。 Form2からForm4は問題なく表示されますが、Form3からForm5はエラーとなります。 エラーは次のところで生じます。 ListView1.Items(2).SubItems.Add(Form3.ListView1.Items(1).SubItems(2)) エラーメッセージは次のようです。 「'1' の InvalidArgument=Value は 'index' に対して有効ではありません。」 また、次のようにコーディングしてみると、 ListView1.Items(2).SubItems.Add(Form3.Label2.Text) 「Labl2」と表示されるだけです。Label2の情報は表示されません。 単純にDATAを移すだけなのに、1つは出来て、もう1つは出来ないというのが分かりません。 どこに問題があるのでしょうか。 かなり悩んでいますが、解決策が見出せません。 ご教授いただける方が居られましたら、宜しくお願い申し上げます。

  • ListViewについて

    いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。  各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか?  ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、  データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で  クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。  Iで、選択している行をIIで選択状態にすることはできたのですが、  Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に  ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。

  • All-in-One Sidebarでのエラー

    Firefox 30.0で使えるアドオンのうちのひとつである「All-in-One Sidebar 0.7.2.2」で、 ダウンロードなど全部サイドバーで表示していますが、「ダウンロード」を表示しようとすると、 「アドレスの書式が正しくありません」とサイドバーに表示されてしまい、ダウンロードの状況を見ることが出来ません。他の機能は普通にサイドバーで見れるのですが、「ダウンロード」だけが見ることが出来ません。どなたかこのエラーを解消する方法を教えてくれませんか? 一応ですが下に使っているバージョンや症状などを載せときます。どうかよろしくお願いします 使っているFirefoxのバージョン   : 30.0 All-in-One Sidebarのバージョン  : 0.7.2.2 All-in-One Sidebar でのエラー   : ダウンロードをサイドバーで見ようとすると「アドレスの書式が正しくありません」というエラーが起きてしまいます All-in-One Sidebarでのダウンロード設定 :  サイドバーで開くように設定してあります

  • VB.NET リストビュー内で移動

    いつもお世話になっております。 ListViewとImageListを組み合わせ画像一覧表示できるように プログラムをしたのですが、 その際にドラッグ&ドロップでListView内の画像を移動(並び替え)を行いたいのですが、そのような方法はあるのでしょうか。 ListViewからListViewの移動は行えたのですが、一つのListView内での 移動が検索してもわからず投稿致しました。 ご教授お願い致します。

  • C# ListView内の検索機能について

    C#にて次のようなアプリを作成しています。 まず、MainであるForm1に、ListViewと<追加>ボタンがあります。そのボタンを押下すると入力Form(Form2)が表示されます。Form2ではListViewに追加したい項目を入力し、Form2内の<リスト追加>ボタンを押下のタイミングでForm1のListViewにその項目が追加されていきます。 MainのForm1には<検索>ボタンと検索キーワード入力テキストが用意されていて、ボタン押下のタイミングでForm1内のListViewの項目と照らし合わせ、同じ項目があれば、その項目をForm3のListViewに追加/表示させようと考えています。 この"検索"の機能が実装できません。 string keyWord = textBox1.Text; ListViewItem foundItem = listView1.FindItemWithText(keyWord, true, 0, true); if (foundItem != null) { fm3 = new Form3(); fm3.listView1.TopItem = foundItem; } fm3.Show(); 上記のように考えていますが、うまくいきません。 エラーはありません。 どうにか検索機能を実装させるために、どうか皆さんアドバイスのほど、よろしくお願いいたします。

  • ストアアプリ開発 C# ListViewについて

    ストアアプリ開発 C#初心者です。 サーバーからデータ取得後、 ListViewにデータを追加したいのですがよくわかりません。 ListViewに表示させたいのは日付、タイトル、画像です。 xaml↓ <ListView Grid.Row="1" x:Name="ListView1"></ListView> C# foreach (var item in blog_list){ ListViewItem addItem = new ListViewItem(); addItem.Tag = item.GetObject().GetNamedString("id"); addItem.Content = item.GetObject().GetNamedString("name"); ListView1.Items.Add(addItem); } 本当に初心者で申し訳ないのですがわかりやすい 解説等してるサイトありましたら教えてください。

  • C# PictureBoxで使用した元画像を削除できない

    現在PictureBoxに表示させた画像を、PictureBoxを定義しているFormを閉じた瞬間削除しようと考えています。 例) メインFormからPictureBoxを定義しているSubFormを表示します。 PictureBoxに、ローカルマシンにある任意のファイルをImageとして表示させます。 pictureBox1.Image = Image.FromFile(@"C:xxx.jpg"); このFormを閉じた後、PictureBoxで表示していたファイルを削除したいのですが、「他のユーザが使用しているため、削除できません」というエラーが発生して削除が実行できません。 ガベージが実行されていないからか?と考え、Formを閉じるときに以下の処理を行いました。 pictureBox1.Image = null; pictureBox1.Dispose(); それでも結果は変わりませんでした。 メインFormからサブFormとして行った場合のみ、本現象が発生します。 メインFormが閉じられれば、その直後からファイル削除を実行できます。 どうか、よろしくお願いいたします。

  • 【C#】GraphicsのhDcについて

    C#でアプリケーションを作成しています。 PictureBoxに読み込んだ画像を画像処理ライブラリにGraphicsのhDcを渡し、処理をさせたいのですが、 Bitmap bmp = new Bitmap("ファイル名"); pictureBox1.Image = bmp; Graphics g = Graphics.fromImage(pictureBox1.Image); IntPtr hdc = g.GetHdc(); というふうに作った[hdc]を渡すと真っ黒な画像が表示されてしまいます。 ピクチャーボックス1のPaintイベント pictureBox1_Paint(object sender, PaintEventArgs e) { // pictureBox1.Imageには上と同じ画像を読み込み済み IntPtr hdc = e.Graphics.GetHdc(); } というふうに作った[hdc]を渡すと、正常に処理された画像が表示されます。 質問なのですが、PictureBox1.Imageから作ったGraphicsとPaintEventArgs.Graphicsはどのような差があるのでしょうか? また、PaintEventArgsを使わず同じようなGraphicsを作るにはどうしたらいいでしょうか? 至らない説明で申し訳ありませんが、ご助言をよろしくお願いします。