タブにファイルを表示する

指定したディレクトリにおいて拡張子がicoである画像ファイルを、タブを表すタブコントロールに表示するプログラム。

import System.Drawing
import System.Windows.Forms
import System.IO

from System.Drawing import *
from System.Windows.Forms import *
from System.IO import *

class MainForm(Form):
    def __init__(self):
        self.InitializeComponent()
   
    def InitializeComponent(self):
        self.SuspendLayout()
        #
        # MainForm
        #
        self.ClientSize = System.Drawing.Size(300, 200)
        self.Name = "MainForm"
        self.Text = "test"
        self.ResumeLayout(False)
       
        tc = TabControl()
       
        dir = "D:\\Temp"
        fls = Directory.GetFiles(dir, "*.ico")
        pb = list()
        tp = list()
        for i in range(len(fls)):
            pb.append(PictureBox())
            tp.append(TabPage())
           
        for k in range(len(fls)):
            pb[k].Image = Image.FromFile(fls[k])
            tp[k].Text = str(fls[k])
            tp[k].Controls.Add(pb[k])
            tc.Controls.Add(tp[k])
           
        tc.Parent = self

ディレクトリ中のファイルを得るために、DirectoryクラスのGetFiles()メソッドを使用する。ファイル名を得る際にはicoファイルだけに絞り込む。得られたファイル数だけ、それぞれのタブのページを表すタブページを用意する。
次に、タブページに画像を読み込んだPictureBoxを追加する。さらにこのタブページをタブコントロールに追加する。

動かすときは以下のファイルも同じProjectに入れておく。

import clr
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Drawing')
clr.AddReference('System.IO')

from System.Windows.Forms import Application
import MainForm

Application.EnableVisualStyles()
form = MainForm.MainForm()
Application.Run(form)

実行例は以下の通り。