URL から画像を読み込んで、それを DataGridView のセル (列ヘッダーではなく) に配置するにはどうすればよいですか? 画像を含む行は、Web サービスからの検索に基づいて実行時にビューに追加されます。この特定の目的に対する答えが見つかりません...助けてください!
まずはPictureBoxを使ってみました。イベントが Web サービスから受信されると、結果をループして行を追加します。各行には画像が含まれます。
// Add image
System.Windows.Forms.PictureBox picEventImage = new System.Windows.Forms.PictureBox();
picEventImage.Image = global::MyEventfulQuery.Properties.Resources.defaultImage;
picEventImage.ImageLocation = Event.ImageUrl;
this.dgvEventsView.Controls.Add(picEventImage);
picEventImage.Location = this.dgvEventsView.GetCellDisplayRectangle(1, i, true).Location;
画像は完全にロードされますが、ビューから切り離されているように見えます。つまり、スクロールしても画像が移動せず、新しいデータでビューを更新すると、画像がハングアップします...悪いです。
だから私は他の投稿からのヒントを試しました:
Image image = Image.FromFile(Event.ImageUrl);
DataGridViewImageCell imageCell = new DataGridViewImageCell();
imageCell.Value = image;
this.dgvEventsView[1, i] = imageCell;
しかし、「URI 形式はサポートされていません」というエラーが表示されました。
- 画像の使い方が間違っていますか?
- Image の代わりに URL 画像に使用できる別のクラスはありますか?
- または、カスタム コントロール (PictureBox を含む) を作成して DataGridView セルに追加するしかありませんか?