IlisやFrotherの作者である狩野さんが、公開されているListBoxExを流用して、画像ビューアっぽいものを作ってみようという試みです。
Form1にListBoxExを貼り付けてる状態からスタートです。。
ListBoxExRowTextをベースにしてListBoxExRowを継承したListBoxExRowPictureを作ります。
// 次ページ表示 class ListBoxExRowPicture : ListBoxExRow { // 〜省略〜 private Image Image{ set; get; } public override void Draw(Graphics g, int x, int y, bool tinydraw, bool selected) { Font font; // 選択時背景色塗りつぶし if (selected) { //g.FillRectangle(new SolidBrush(Color.Gray), x, y, _width, _height); } int ImageWidth = (int)((double)_width * 0.2); if(this.Image == null) { g.FillRectangle(new SolidBrush(Color.Brown), x, y, ImageWidth, _height); } else { g.DrawImage(this.Image, new Rectangle(x, y, ImageWidth, _height), new Rectangle(0, 0, Image.Width, Image.Height), GraphicsUnit.Pixel); } font = new Font("Tahoma", 9, FontStyle.Bold); Size fsize = g.MeasureString(_text, font).ToSize(); g.DrawString(_text, new Font("Tahoma", 10, FontStyle.Bold), new SolidBrush(Color.DarkGray), x + ImageWidth + 10, y + (_height - fsize.Height) / 2); // イメージとかの描画もここで行う // 行を分ける線 g.DrawLine(new Pen(Color.Gray), 0, y + _height - 1, _width, y + _height - 1); }