<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>.NET Component のお勉強（自分用めも）</title><link>http://blogs.wankuma.com/naoko/category/750.aspx</link><description>.NET Component のお勉強（自分用めも）</description><managingEditor>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>TreeView（System.Windows.Forms.TreeView）</title><link>http://blogs.wankuma.com/naoko/archive/2007/05/23/77830.aspx</link><pubDate>Wed, 23 May 2007 14:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/05/23/77830.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/77830.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/05/23/77830.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/77830.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/77830.aspx</trackback:ping><description>&lt;p&gt;
TreeView が大好きなお客さん多いですね。&lt;br&gt;
Windows のアプリケーション の UI に近いものを表現できるゆえ、&lt;br&gt;
直観的な操作が可能だから、ってとこですかね。&lt;br&gt;
&lt;br&gt;
しかしながら TreeView に Node を追加していく作業って&lt;br&gt;
メタ的なっていうか再帰的な考えができないとなかなか難しいとこでして&lt;br&gt;
Windows 駆け出しプログラマの人が結構つまづいてるんじゃないかなぁと思ったり。&lt;br&gt;
&lt;br&gt;
かく言うワタシも久々に TreeView と格闘したので&lt;br&gt;
ヘンなところで悩んじゃったなぁ。&lt;br&gt;
その割にはいつもながらに出来の悪いプログラムですみませぬ。。。&lt;br&gt;
&lt;br&gt;
ちなみに DataBase の取得元のテーブルはこんな感じです。&lt;br&gt;
&lt;IMG height=317 alt="スキーマ" src="http://naoko.wankuma.com/blogimage/dialy/TreeView02.jpg" width=413 border=0&gt;&lt;br&gt;
&lt;IMG height=254 alt="データ" src="http://naoko.wankuma.com/blogimage/dialy/TreeView03.jpg" width=321 border=0&gt;&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.treeview(VS.80).aspx" target="_blank" title="TreeView クラス"&gt;TreeView クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/ch6etkw4(VS.80).aspx" target="_blank" title="TreeView コントロール (Windows フォーム)"&gt;TreeView コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
http://blogs.wankuma.com/opml.aspx から取得したものを TreeView に描画&lt;br&gt;
&lt;IMG height=300 alt="TreeView" src="http://naoko.wankuma.com/blogimage/dialy/TreeView01.jpg" width=300 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; TreeViewTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TreeViewTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabControl()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(tabCtrl)
        tabCtrl.Dock = DockStyle.Fill
&lt;br&gt;
        &lt;span class="rem"&gt;'' データベースから&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dbTabpage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"DB"&lt;/span&gt;)
        tabCtrl.TabPages.Add(dbTabpage)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dbTreeView &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView = &lt;span class="kwrd"&gt;New&lt;/span&gt; TreeView()
        dbTabpage.Controls.Add(dbTreeView)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; dbTreeView
            .Dock = DockStyle.Fill
            &lt;span class="rem"&gt;' TreeView の幅全体を選択したように表示するか否か&lt;/span&gt;
            .FullRowSelect = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="rem"&gt;' Focus を失っても強調表示したままにするか否か&lt;/span&gt;
            .HideSelection = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="rem"&gt;' ハイパーリンク表示するか否か&lt;/span&gt;
            .HotTracking = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Indent = 25
            .ItemHeight = 25
            &lt;span class="rem"&gt;' ラベル編集を可能にするか否か&lt;/span&gt;
            .LabelEdit = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="rem"&gt;' ノード間の線を表示するか否か&lt;/span&gt;
            .ShowLines = &lt;span class="kwrd"&gt;False&lt;/span&gt;
&lt;br&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .AfterSelect, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; DBtree_AfterSelect
            .BeginUpdate()
            &lt;span class="rem"&gt;' 描画&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateTreeFromDataBase(dbTreeView)
            .EndUpdate()
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;'' ファイルシステムから&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; fileTabpage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"File"&lt;/span&gt;)
        tabCtrl.TabPages.Add(fileTabpage)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; fileTreeView &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView = &lt;span class="kwrd"&gt;New&lt;/span&gt; TreeView()
        fileTabpage.Controls.Add(fileTreeView)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; fileTreeView
            .Dock = DockStyle.Fill
            .CheckBoxes = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .AfterSelect, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; Filetree_AfterSelect
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="rem"&gt;' 描画&lt;/span&gt;
        fileTreeView.BeginUpdate()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateTreeFromFileSystem(fileTreeView, &lt;span class="str"&gt;"C:\Windows"&lt;/span&gt;)
        fileTreeView.EndUpdate()
&lt;br&gt;
        &lt;span class="rem"&gt;'' XML ファイルから&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; xmlTabpage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"XML"&lt;/span&gt;)
        tabCtrl.TabPages.Add(xmlTabpage)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; xmlTreeView &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView = &lt;span class="kwrd"&gt;New&lt;/span&gt; TreeView()
        xmlTabpage.Controls.Add(xmlTreeView)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; imgLst &lt;span class="kwrd"&gt;As&lt;/span&gt; ImageList = &lt;span class="kwrd"&gt;New&lt;/span&gt; ImageList()
        imgLst.Images.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; Image() {My.Resources.wankuma, My.Resources.blackwankuma})
        &lt;span class="kwrd"&gt;With&lt;/span&gt; xmlTreeView
            .ImageList = imgLst
            .Dock = DockStyle.Fill
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .AfterSelect, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; Xmltree_AfterSelect
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="rem"&gt;' 描画&lt;/span&gt;
        fileTreeView.BeginUpdate()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CrerateTreeFromOpml(xmlTreeView)
        fileTreeView.EndUpdate()
&lt;br&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DBtree_AfterSelect(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeViewEventArgs)
        Console.WriteLine(&lt;span class="str"&gt;"Action:"&lt;/span&gt; &amp;amp; e.Action.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"Node:"&lt;/span&gt; &amp;amp; e.Node.Text)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Filetree_AfterSelect(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeViewEventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; fileNode &lt;span class="kwrd"&gt;As&lt;/span&gt; FileSystemNode = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(e.Node, FileSystemNode)
        Console.WriteLine(&lt;span class="str"&gt;"Attributes:"&lt;/span&gt; &amp;amp; fileNode.Info.Attributes.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"CreationTime:"&lt;/span&gt; &amp;amp; fileNode.Info.CreationTime.ToString(&lt;span class="str"&gt;"yyyy/MM/dd HH:mm;ss"&lt;/span&gt;))
        Console.WriteLine(&lt;span class="str"&gt;"LastAccessTime:"&lt;/span&gt; &amp;amp; fileNode.Info.LastAccessTime.ToString(&lt;span class="str"&gt;"yyyy/MM/dd HH:mm;ss"&lt;/span&gt;))
        Console.WriteLine(&lt;span class="str"&gt;"LastWriteTime:"&lt;/span&gt; &amp;amp; fileNode.Info.LastWriteTime.ToString(&lt;span class="str"&gt;"yyyy/MM/dd HH:mm;ss"&lt;/span&gt;))
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Xmltree_AfterSelect(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeViewEventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; node &lt;span class="kwrd"&gt;As&lt;/span&gt; OpmlNode = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(e.Node, OpmlNode)
        Console.WriteLine(&lt;span class="str"&gt;"Name:"&lt;/span&gt; &amp;amp; node.Text)
        Console.WriteLine(&lt;span class="str"&gt;"Url:"&lt;/span&gt; &amp;amp; node.Url)
        Console.WriteLine(&lt;span class="str"&gt;"Rss:"&lt;/span&gt; &amp;amp; node.Rss)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="rem"&gt;'' Database&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CreateTreeFromDataBase(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; tree &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView)
        &lt;span class="kwrd"&gt;Const&lt;/span&gt; CONNECTION_STRING &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = _
        &lt;span class="str"&gt;"Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;"&lt;/span&gt;
        &lt;span class="kwrd"&gt;Const&lt;/span&gt; SQL &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = _
        &lt;span class="str"&gt;"SELECT    dbo.Table1.ID AS ParentID, "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"          dbo.Table1.NAME AS ParentName, "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"          SubTable.ID AS ChildID, "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"          SubTable.NAME AS ChildName "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"FROM      dbo.Table1 SubTable LEFT OUTER JOIN "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"          dbo.Table1 ON SubTable.PARENT_ID = dbo.Table1.ID "&lt;/span&gt; &amp;amp; _
        &lt;span class="str"&gt;"ORDER BY  dbo.Table1.ID, SubTable.ID; "&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' DataBase から値の取得&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; treeDt &lt;span class="kwrd"&gt;As&lt;/span&gt; DataTable = &lt;span class="kwrd"&gt;New&lt;/span&gt; DataTable()
        Using con &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlClient.SqlConnection = _
        &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlClient.SqlConnection(CONNECTION_STRING)
            con.Open()
            &lt;span class="kwrd"&gt;Try&lt;/span&gt;
                Using adapter &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlClient.SqlDataAdapter = _
                &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlClient.SqlDataAdapter(SQL, con)
&lt;br&gt;
                    adapter.Fill(treeDt)
                &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
            &lt;span class="kwrd"&gt;Finally&lt;/span&gt;
                &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; con &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt; con.Close()
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
&lt;br&gt;
        &lt;span class="rem"&gt;' TreeView に描画&lt;/span&gt;
        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; row &lt;span class="kwrd"&gt;As&lt;/span&gt; DataRow &lt;span class="kwrd"&gt;In&lt;/span&gt; treeDt.Rows
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; node &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeNode = &lt;span class="kwrd"&gt;New&lt;/span&gt; TreeNode()
            node.Tag = Convert.ToInt32(row(&lt;span class="str"&gt;"ChildID"&lt;/span&gt;))
            node.Text = Convert.ToString(row(&lt;span class="str"&gt;"ChildName"&lt;/span&gt;))
&lt;br&gt;
            &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;TypeOf&lt;/span&gt; (row(&lt;span class="str"&gt;"ParentID"&lt;/span&gt;)) &lt;span class="kwrd"&gt;Is&lt;/span&gt; DBNull &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                &lt;span class="rem"&gt;' root の時&lt;/span&gt;
                tree.Nodes.Add(node)
            &lt;span class="kwrd"&gt;Else&lt;/span&gt;
                &lt;span class="rem"&gt;' root 以外の時&lt;/span&gt;
                &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_FoundNode = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;
                &lt;span class="kwrd"&gt;Me&lt;/span&gt;.FindTreeNode(Convert.ToInt32(row(&lt;span class="str"&gt;"ParentID"&lt;/span&gt;)), tree.Nodes)
                &lt;span class="kwrd"&gt;Dim&lt;/span&gt; parent &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeNode = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_FoundNode
                parent.Nodes.Add(node)
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_FoundNode &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeNode
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; FindTreeNode(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; tagData &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; nodes &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeNodeCollection)
        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; node &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeNode &lt;span class="kwrd"&gt;In&lt;/span&gt; nodes
            &lt;span class="kwrd"&gt;If&lt;/span&gt; Convert.ToInt32(node.Tag) = tagData &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_FoundNode = node
            &lt;span class="kwrd"&gt;ElseIf&lt;/span&gt; node.Nodes.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                &lt;span class="kwrd"&gt;Me&lt;/span&gt;.FindTreeNode(tagData, node.Nodes)
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="rem"&gt;'' FileSystem&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CreateTreeFromFileSystem(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; tree &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; rootPath &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rootNode &lt;span class="kwrd"&gt;As&lt;/span&gt; FileSystemNode = &lt;span class="kwrd"&gt;New&lt;/span&gt; FileSystemNode(&lt;span class="kwrd"&gt;New&lt;/span&gt; System.IO.DirectoryInfo(rootPath))
        tree.Nodes.Add(rootNode)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rootFiles &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;() = System.IO.Directory.GetFiles(rootPath)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; directries &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;() = System.IO.Directory.GetDirectories(rootPath)
&lt;br&gt;
        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; rootDirectory &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;In&lt;/span&gt; directries
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dirNode &lt;span class="kwrd"&gt;As&lt;/span&gt; FileSystemNode = &lt;span class="kwrd"&gt;New&lt;/span&gt; FileSystemNode(&lt;span class="kwrd"&gt;New&lt;/span&gt; System.IO.DirectoryInfo(rootDirectory))
            rootNode.Nodes.Add(dirNode)
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dirFiles &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;() = System.IO.Directory.GetFiles(rootDirectory)
            &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; subfile &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;In&lt;/span&gt; dirFiles
                dirNode.Nodes.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; FileSystemNode(&lt;span class="kwrd"&gt;New&lt;/span&gt; System.IO.FileInfo(subfile)))
            &lt;span class="kwrd"&gt;Next&lt;/span&gt;
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; rootFile &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;In&lt;/span&gt; rootFiles
            rootNode.Nodes.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; FileSystemNode(&lt;span class="kwrd"&gt;New&lt;/span&gt; System.IO.FileInfo(rootFile)))
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="rem"&gt;'' Xml&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CrerateTreeFromOpml(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; tree &lt;span class="kwrd"&gt;As&lt;/span&gt; TreeView)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rootNode &lt;span class="kwrd"&gt;As&lt;/span&gt; OpmlNode = _
        &lt;span class="kwrd"&gt;New&lt;/span&gt; OpmlNode(&lt;span class="str"&gt;"わんくま"&lt;/span&gt;, &lt;span class="str"&gt;"http://blogs.wankuma.com/"&lt;/span&gt;, &lt;span class="str"&gt;"http://blogs.wankuma.com/MainFeed.aspx"&lt;/span&gt;)
        rootNode.ImageIndex = 0
        tree.Nodes.Add(rootNode)
&lt;br&gt;
        Using reader &lt;span class="kwrd"&gt;As&lt;/span&gt; Xml.XmlTextReader = &lt;span class="kwrd"&gt;New&lt;/span&gt; Xml.XmlTextReader(&lt;span class="str"&gt;"D:\opml.xml"&lt;/span&gt;)
            &lt;span class="kwrd"&gt;While&lt;/span&gt; reader.Read
                &lt;span class="kwrd"&gt;If&lt;/span&gt; reader.Name = &lt;span class="str"&gt;"outline"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; node &lt;span class="kwrd"&gt;As&lt;/span&gt; OpmlNode = _
                    &lt;span class="kwrd"&gt;New&lt;/span&gt; OpmlNode(reader.GetAttribute(&lt;span class="str"&gt;"title"&lt;/span&gt;), _
                                 reader.GetAttribute(&lt;span class="str"&gt;"htmlUrl"&lt;/span&gt;), _
                                 reader.GetAttribute(&lt;span class="str"&gt;"xmlUrl"&lt;/span&gt;))
                    node.ImageIndex = 1
                    rootNode.Nodes.Add(node)
                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;
&lt;br&gt;
&lt;span class="rem"&gt;'' FileSystemInfo を持てるように拡張した TreeNode&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; FileSystemNode
    &lt;span class="kwrd"&gt;Inherits&lt;/span&gt; TreeNode
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_info &lt;span class="kwrd"&gt;As&lt;/span&gt; System.IO.FileSystemInfo
&lt;br&gt;
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; info &lt;span class="kwrd"&gt;As&lt;/span&gt; System.IO.FileSystemInfo)
        &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Text = info.Name
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_info = info
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Info() &lt;span class="kwrd"&gt;As&lt;/span&gt; System.IO.FileSystemInfo
        &lt;span class="kwrd"&gt;Get&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_info
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;
&lt;br&gt;
&lt;span class="rem"&gt;'' わんくま OPML 用&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; OpmlNode
    &lt;span class="kwrd"&gt;Inherits&lt;/span&gt; TreeNode
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_url &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_rss &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Url() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Get&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_url
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Rss() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Get&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_rss
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; name &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; url &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; rss &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
        &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Text = name
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_url = url
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_rss = rss
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/77830.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>TrackBar（System.Windows.Forms.TrackBar）</title><link>http://blogs.wankuma.com/naoko/archive/2007/05/15/76824.aspx</link><pubDate>Tue, 15 May 2007 11:36:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/05/15/76824.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/76824.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/05/15/76824.aspx#Feedback</comments><slash:comments>645</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/76824.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/76824.aspx</trackback:ping><description>&lt;P&gt;TrackBar って業務アプリケーションでどういうときに使うんだろう。。。&lt;BR&gt;全く思い浮かびませんでした。&lt;BR&gt;無理やり考えてみると、画面の文字サイズを変えるプロパティ画面みたいなところとか？&lt;BR&gt;&lt;BR&gt;■参考文献&lt;BR&gt;&lt;A title="TrackBar クラス" href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.trackbar(vs.80).aspx" target=_blank&gt;TrackBar クラス&lt;/A&gt;&lt;BR&gt;&lt;A title="TrackBar コントロール (Windows フォーム)" href="http://msdn2.microsoft.com/ja-jp/library/9z8yazex(VS.80).aspx" target=_blank&gt;TrackBar コントロール (Windows フォーム)&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;■実行画像&lt;BR&gt;R・G・B の各つまみを動かすと Form の背景色が変わります～（なんという貧弱な発想のプログラム。。。orz）&lt;BR&gt;&lt;IMG height=300 alt=TrackBar src="http://naoko.wankuma.com/blogimage/dialy/TrackBar01.jpg" width=300 border=0&gt;&lt;BR&gt;&lt;BR&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Class&lt;/SPAN&gt; TrackBarTest
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; m_rTrackBar &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; TrackBar &lt;SPAN class=rem&gt;'R&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; m_gTrackBar &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; TrackBar &lt;SPAN class=rem&gt;'G&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; m_bTrackBar &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; TrackBar &lt;SPAN class=rem&gt;'B&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; m_statusStrip &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; StatusStrip
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; TrackBarTest_Load(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.&lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.EventArgs) &lt;SPAN class=kwrd&gt;Handles&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;MyBase&lt;/SPAN&gt;.Load
        &lt;SPAN class=rem&gt;'' 赤&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_rTrackBar = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; TrackBar()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_rTrackBar)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_rTrackBar
            .BeginInit()
            .Dock = DockStyle.Bottom
            .BackColor = Color.Red
            &lt;SPAN class=rem&gt;' 最小・最大&lt;/SPAN&gt;
            .Minimum = 0
            .Maximum = 255
            &lt;SPAN class=rem&gt;' TrackBar の向き&lt;/SPAN&gt;
            .Orientation = Orientation.Horizontal &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' 方向キーやマウスでの移動させた時の増減する値&lt;/SPAN&gt;
            .SmallChange = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' PageUp/PageDown または 側の TrackBar をクリックしたときに増減する値&lt;/SPAN&gt;
            .LargeChange = 10 &lt;SPAN class=rem&gt;' 既定値 5&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' 目盛り間のデルタ&lt;/SPAN&gt;
            .TickFrequency = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .TickStyle = TickStyle.BottomRight &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .Value = &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.BackColor.R
            .EndInit()
            &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; .Scroll, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; TrackBar_Scroll
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;'' 緑&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_gTrackBar = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; TrackBar()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_gTrackBar)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_gTrackBar
            .BeginInit()
            .Dock = DockStyle.Bottom
            .BackColor = Color.Green
            .Minimum = 0
            .Maximum = 255
            .Orientation = Orientation.Horizontal &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .SmallChange = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .LargeChange = 10 &lt;SPAN class=rem&gt;' 既定値 5&lt;/SPAN&gt;
            .TickFrequency = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .TickStyle = TickStyle.TopLeft &lt;SPAN class=rem&gt;' 既定値 BottomRight&lt;/SPAN&gt;
            .Value = &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.BackColor.G
            .EndInit()
            &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; .Scroll, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; TrackBar_Scroll
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;'' 青&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_bTrackBar = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; TrackBar()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_bTrackBar)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_bTrackBar
            .BeginInit()
            .Dock = DockStyle.Bottom
            .BackColor = Color.Blue
            .Minimum = 0
            .Maximum = 255
            .Orientation = Orientation.Horizontal &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .SmallChange = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .LargeChange = 10 &lt;SPAN class=rem&gt;' 既定値 5&lt;/SPAN&gt;
            .TickFrequency = 1 &lt;SPAN class=rem&gt;' 既定値&lt;/SPAN&gt;
            .TickStyle = TickStyle.Both &lt;SPAN class=rem&gt;' 既定値 BottomRight&lt;/SPAN&gt;
            .Value = &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.BackColor.B
            .EndInit()
            &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; .Scroll, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; TrackBar_Scroll
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_statusStrip = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; StatusStrip()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_statusStrip)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_statusStrip
            .Dock = DockStyle.Bottom
            .Items.Add(&lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripLabel())
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; TrackBar_Scroll(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; EventArgs)
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.BackColor = System.Drawing.Color.FromArgb(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_rTrackBar.Value, _
                                                     &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_gTrackBar.Value, _
                                                     &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_bTrackBar.Value)
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_statusStrip.Items(0).Text = &lt;SPAN class=str&gt;"R:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_rTrackBar.Value.ToString() &amp;amp; _
                                         &lt;SPAN class=str&gt;" G:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_gTrackBar.Value.ToString() &amp;amp; _
                                         &lt;SPAN class=str&gt;" B:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.m_bTrackBar.Value.ToString()
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;End Class&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/76824.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>ToolTip（System.Windows.Forms.ToolTip）</title><link>http://blogs.wankuma.com/naoko/archive/2007/05/14/76710.aspx</link><pubDate>Mon, 14 May 2007 11:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/05/14/76710.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/76710.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/05/14/76710.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/76710.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/76710.aspx</trackback:ping><description>&lt;p&gt;
使っているようで実はあまり使っていない ToolTip です。
.NET Framework1.1 の時、要望があれば適宜使っていたような。&lt;br&gt;
IsBaloon でかっちょいい吹き出し型のやつが簡単に実装できる様になっているのはいいですねぇ。&lt;br&gt;
&lt;br&gt;
入力ガイド等を表示してアクセシビリティを UP、ですかね。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.tooltip(vs.80).aspx" target="_blank" title="ToolTip クラス"&gt;ToolTip クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/he23h308(VS.80).aspx" target="_blank" title="ToolTip コンポーネント (Windows フォーム)"&gt;ToolTip コンポーネント (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
今回はすべてデザイナで配置。&lt;br&gt;
&lt;IMG height=300 alt="ToolTip" src="http://naoko.wankuma.com/blogimage/dialy/ToolTip01.jpg" width=300 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; ToolTipTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ToolTipTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolTip1
            .Active = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;' 既定値&lt;/span&gt;
            .AutomaticDelay = 1000 &lt;span class="rem"&gt;' 既定値 500 ミリ秒&lt;/span&gt;
            &lt;span class="rem"&gt;' ポインタが静止している時のツールヒントの表示時間&lt;/span&gt;
            .AutoPopDelay = 20000 &lt;span class="rem"&gt;' 既定値 AutomaticDelay &amp;#215; 10&lt;/span&gt;
            &lt;span class="rem"&gt;' ツール ヒントが表示されるまでに経過する時間&lt;/span&gt;
            .InitialDelay = 100 &lt;span class="rem"&gt;' 既定値 AutomaticDelay&lt;/span&gt;
            &lt;span class="rem"&gt;' コントロールを移動した先でツールヒント ウィンドウが表示されるまでに経過する必要のある時間&lt;/span&gt;
            .ReshowDelay = 100 &lt;span class="rem"&gt;' 既定値 AutomaticDelay / 5&lt;/span&gt;
&lt;br&gt;
            .BackColor = Color.LightYellow
            .ForeColor = Color.Salmon
&lt;br&gt;
            &lt;span class="rem"&gt;' Baloon 表示にする&lt;/span&gt;
            .IsBalloon = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="rem"&gt;' 対象のコントロールが非アクティブな状態でも表示するか&lt;/span&gt;
            .ShowAlways = &lt;span class="kwrd"&gt;False&lt;/span&gt; &lt;span class="rem"&gt;' 既定値&lt;/span&gt;
            &lt;span class="rem"&gt;' 「&amp;amp;」を除外するか否か&lt;/span&gt;
            .StripAmpersands = &lt;span class="kwrd"&gt;False&lt;/span&gt; &lt;span class="rem"&gt;' 既定値&lt;/span&gt;
            &lt;span class="rem"&gt;' 表示するアイコンの種類&lt;/span&gt;
            .ToolTipIcon = ToolTipIcon.Info &lt;span class="rem"&gt;' 既定値 ToolTipIcon.None&lt;/span&gt;
            .ToolTipTitle = &lt;span class="str"&gt;"これはタイトルです"&lt;/span&gt;
            &lt;span class="rem"&gt;' アニメーション効果を利用するか否か&lt;/span&gt;
            .UseAnimation = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;' 既定値&lt;/span&gt;
            &lt;span class="rem"&gt;' フェード効果を利用するか否か&lt;/span&gt;
            .UseFading = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;' 既定値&lt;/span&gt;
&lt;br&gt;
            &lt;span class="rem"&gt;' ToolTip を設定&lt;/span&gt;
            .SetToolTip(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.TextBox1, &lt;span class="str"&gt;"これは&amp;amp;てきすとぼっくす"&lt;/span&gt;)
            .SetToolTip(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1, &lt;span class="str"&gt;"これは&amp;amp;こんぼぼっくす"&lt;/span&gt;)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ToolTip1_Popup(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Windows.Forms.PopupEventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; ToolTip1.Popup
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"Popup"&lt;/span&gt;)
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"AssociatedControl:"&lt;/span&gt; &amp;amp; e.AssociatedControl.Name)
        Console.WriteLine(&lt;span class="str"&gt;"AssociatedWindow:"&lt;/span&gt; &amp;amp; e.AssociatedWindow.Handle.ToInt32.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"IsBalloon:"&lt;/span&gt; &amp;amp; e.IsBalloon.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"ToolTipSize(w,h):("&lt;/span&gt; &amp;amp; e.ToolTipSize.Width.ToString() &amp;amp; &lt;span class="str"&gt;","&lt;/span&gt; &amp;amp; e.ToolTipSize.Height.ToString() &amp;amp; &lt;span class="str"&gt;")"&lt;/span&gt;)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; text &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolTip1.GetToolTip(e.AssociatedControl)
        Console.WriteLine(&lt;span class="str"&gt;"text:"&lt;/span&gt; &amp;amp; text)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Class&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/76710.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>ToolStripConainer（System.Windows.Forms.ToolStripConainer）</title><link>http://blogs.wankuma.com/naoko/archive/2007/05/11/76405.aspx</link><pubDate>Fri, 11 May 2007 12:03:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/05/11/76405.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/76405.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/05/11/76405.aspx#Feedback</comments><slash:comments>55</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/76405.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/76405.aspx</trackback:ping><description>&lt;p&gt;
上下左右のパネルは ToolStripPanel オブジェクトで&lt;br&gt;
真ん中のは ToolStripContentPanel オブジェクトらしいです。&lt;br&gt;
MenuStrip と StatusStrip と ToolStrip が配置できますよー。&lt;br&gt;
そのくらい。&lt;br&gt;
&lt;br&gt;
UI のデザインの種類が多くなったかな、位にしか個人的にはとらえておりませぬ。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.toolstripcontainer(vs.80).aspx" target="_blank" title="ToolStripContainer クラス"&gt;ToolStripContainer クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/ms229623(VS.80).aspx" target="_blank" title="ToolStripContainer コントロール (Windows フォーム)"&gt;ToolStripContainer コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
今回は全部コードで配置しました。&lt;br&gt;
&lt;IMG height=300 alt="ToolStripConainer" src="http://naoko.wankuma.com/blogimage/dialy/ToolStripConainer01.jpg" width=300 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; ToolStripContainerTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_container &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripContainer
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ToolStripContainerTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_container = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripContainer()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_container)
&lt;br&gt;
        &lt;span class="rem"&gt;' 上用&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mnuStrip &lt;span class="kwrd"&gt;As&lt;/span&gt; MenuStrip = &lt;span class="kwrd"&gt;New&lt;/span&gt; MenuStrip()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mnuStripMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripButton(&lt;span class="str"&gt;"This is MenuStrip"&lt;/span&gt;)
        mnuStrip.Items.Add(mnuStripMenu)
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; mnuStripMenu.Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; menuOnClick
&lt;br&gt;
        &lt;span class="rem"&gt;' 左用&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; toolstripLeft &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStrip = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStrip()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; toolstripLeftMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripButton(&lt;span class="str"&gt;"This is ToolStrip(L)"&lt;/span&gt;)
        toolstripLeft.Items.Add(toolstripLeftMenu)
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; toolstripLeftMenu.Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; menuOnClick
&lt;br&gt;
        &lt;span class="rem"&gt;' 右用&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; toolstripRight &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStrip = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStrip()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; toolstripRightMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripButton(&lt;span class="str"&gt;"This is ToolStrip(R)"&lt;/span&gt;)
        toolstripRight.Items.Add(toolstripRightMenu)
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; toolstripRightMenu.Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; menuOnClick
&lt;br&gt;
        &lt;span class="rem"&gt;' 下用&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; ststrip &lt;span class="kwrd"&gt;As&lt;/span&gt; StatusStrip = &lt;span class="kwrd"&gt;New&lt;/span&gt; StatusStrip()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; ststripMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripButton(&lt;span class="str"&gt;"This is StatusStrip"&lt;/span&gt;, My.Resources.wankuma)
        ststrip.Items.Add(ststripMenu)
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; ststripMenu.Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; menuOnClick
&lt;br&gt;
        &lt;span class="rem"&gt;' 真ん中用&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; pic &lt;span class="kwrd"&gt;As&lt;/span&gt; PictureBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; PictureBox()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; pic
            .Image = My.Resources.中さん
            .SizeMode = PictureBoxSizeMode.Zoom
            .Dock = DockStyle.Fill
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .DoubleClick, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; pictureBox_DoubleClick
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_container
            .Dock = DockStyle.Fill
            &lt;span class="rem"&gt;' 各 Strip の配置 と 左右の背景色の変更&lt;/span&gt;
            .TopToolStripPanel.Controls.Add(mnuStrip)
            .LeftToolStripPanel.Controls.Add(toolstripLeft)
            .LeftToolStripPanel.BackColor = Color.LightSalmon
            .RightToolStripPanel.Controls.Add(toolstripRight)
            .RightToolStripPanel.BackColor = Color.LightBlue
            .BottomToolStripPanel.Controls.Add(ststrip)
&lt;br&gt;
            &lt;span class="rem"&gt;' 真ん中に PictureBox の配置&lt;/span&gt;
            .ContentPanel.Controls.Add(pic)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; pictureBox_DoubleClick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_container
            .TopToolStripPanelVisible = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .LeftToolStripPanelVisible = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .RightToolStripPanelVisible = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .BottomToolStripPanelVisible = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; menuOnClick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tstripButton &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ToolStripButton)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; pnl &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripPanel = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(tstripButton.Owner.Parent, ToolStripPanel)
&lt;br&gt;
        pnl.Visible = &lt;span class="kwrd"&gt;False&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;'' 以下でも同じ&lt;/span&gt;
        &lt;span class="rem"&gt;'Select Case pnl.Dock&lt;/span&gt;
        &lt;span class="rem"&gt;'    Case DockStyle.Top&lt;/span&gt;
        &lt;span class="rem"&gt;'        Me.m_container.TopToolStripPanelVisible = False&lt;/span&gt;
        &lt;span class="rem"&gt;'    Case DockStyle.Left&lt;/span&gt;
        &lt;span class="rem"&gt;'        Me.m_container.LeftToolStripPanelVisible = False&lt;/span&gt;
        &lt;span class="rem"&gt;'    Case DockStyle.Right&lt;/span&gt;
        &lt;span class="rem"&gt;'        Me.m_container.RightToolStripPanelVisible = False&lt;/span&gt;
        &lt;span class="rem"&gt;'    Case DockStyle.Bottom&lt;/span&gt;
        &lt;span class="rem"&gt;'        Me.m_container.BottomToolStripPanelVisible = False&lt;/span&gt;
        &lt;span class="rem"&gt;'End Select&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/76405.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>ToolStrip（System.Windows.Forms.ToolStrip）</title><link>http://blogs.wankuma.com/naoko/archive/2007/05/09/76033.aspx</link><pubDate>Wed, 09 May 2007 12:55:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/05/09/76033.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/76033.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/05/09/76033.aspx#Feedback</comments><slash:comments>1126</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/76033.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/76033.aspx</trackback:ping><description>&lt;p&gt;
ToolStrip 何とかってこの一連の勉強で一杯触りましたよね。&lt;br&gt;
てか、もうおなかいっぱい。。。&lt;br&gt;
&lt;br&gt;
しかし、ちゃんとドキュメントをしらみつぶしに読んでくと&lt;br&gt;
結構いろいろあって、しばらくぶりの更新なのに疲れてしまいました。&lt;br&gt;
なので、今回もテキトーなプログラムを書いてみました。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.toolstrip(vs.80).aspx" target="_blank" title="ToolStrip クラス"&gt;ToolStrip クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/5daaw6hf(VS.80).aspx" target="_blank" title="ToolStrip コントロール (Windows フォーム)"&gt;ToolStrip コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/fadw9ex2(VS.80).aspx" target="_blank" title="ToolStrip コントロールのアーキテクチャ"&gt;ToolStrip コントロールのアーキテクチャ&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
ToolStrip だけデザイナ上で配置してあります。&lt;br&gt;
&lt;IMG height=300 alt="Timer" src="http://naoko.wankuma.com/blogimage/dialy/ToolStrip01.jpg" width=400 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; ToolStripTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ToolStripTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
        &lt;span class="rem"&gt;' Button の配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; btn &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripButton()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(btn)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; btn
            .Text = &lt;span class="str"&gt;"AllowItemReorder"&lt;/span&gt;
            .CheckOnClick = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;' トグルボタンの外観にする&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; Button_Click
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ComboBox の配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dockCmb &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripComboBox()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(dockCmb)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; dockCmb
            &lt;span class="rem"&gt;' AutoComplete を有効にしてみる&lt;/span&gt;
            .AutoCompleteMode = AutoCompleteMode.SuggestAppend
            .AutoCompleteSource = AutoCompleteSource.ListItems
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() { _
                            DockStyle.Bottom, _
                            DockStyle.Fill, _
                            DockStyle.Left, _
                            DockStyle.None, _
                            DockStyle.Right, _
                            DockStyle.Top})
            .Overflow = ToolStripItemOverflow.Never
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; DockComboBox_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' もいっこ ComboBox&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; layoutStyleCmb &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripComboBox()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(layoutStyleCmb)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; layoutStyleCmb
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() { _
                            ToolStripLayoutStyle.Flow, _
                            ToolStripLayoutStyle.HorizontalStackWithOverflow, _
                            ToolStripLayoutStyle.StackWithOverflow, _
                            ToolStripLayoutStyle.Table, _
                            ToolStripLayoutStyle.VerticalStackWithOverflow})
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; LayoutStyleComboBox_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ToolStripSplitButton・ToolStripLabel の配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; splitButton &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripSplitButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripSplitButton()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(splitButton)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rendermodeCustomLabel &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripLabel = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripLabel()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; rendermodeCustomLabel
            .Text = ToolStripRenderMode.Custom.ToString()
            .Tag = ToolStripRenderMode.Custom
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rendermodeManagerRenderModeLabel &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripLabel = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripLabel()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; rendermodeManagerRenderModeLabel
            .Text = ToolStripRenderMode.ManagerRenderMode.ToString()
            .Tag = ToolStripRenderMode.ManagerRenderMode
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rendermodeProfessionalLabel &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripLabel = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripLabel()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; rendermodeProfessionalLabel
            .Text = ToolStripRenderMode.Professional.ToString()
            .Tag = ToolStripRenderMode.Professional
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rendermodeSystemLabel &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripLabel = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripLabel()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; rendermodeSystemLabel
            .Text = ToolStripRenderMode.System.ToString()
            .Tag = ToolStripRenderMode.System
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; splitButton
            .Text = &lt;span class="str"&gt;"RenderMode"&lt;/span&gt;
            .DropDownItems.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripLabel() { _
                                   rendermodeCustomLabel, _
                                   rendermodeManagerRenderModeLabel, _
                                   rendermodeProfessionalLabel, _
                                   rendermodeSystemLabel})
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .ButtonClick, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; SplitButton_ButtonClick
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .DropDownItemClicked, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; SplitButton_DropDownItemClicked
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ToolStripSeparator の配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; separator &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripSeparator = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripSeparator()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(separator)
&lt;br&gt;
        &lt;span class="rem"&gt;' ToolStripDropDownButton の配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dropDownButton &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripDropDownButton = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripDropDownButton()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Items.Add(dropDownButton)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; dropDownButton
            .Text = &lt;span class="str"&gt;"ToolStripDropDownButton"&lt;/span&gt;
            .DropDownItems.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripItem() { _
                                    &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripTextBox(), _
                                    &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripMenuItem(&lt;span class="str"&gt;"MenuItem"&lt;/span&gt;), _
                                    &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripStatusLabel(&lt;span class="str"&gt;"StatusLabel"&lt;/span&gt;), _
                                    &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripProgressBar()})
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1
            .Dock = DockStyle.Left
            &lt;span class="rem"&gt;' Margin を自分で設定する&lt;/span&gt;
            .AutoSize = &lt;span class="kwrd"&gt;False&lt;/span&gt;
            .Margin = &lt;span class="kwrd"&gt;New&lt;/span&gt; Padding(2, 0, 2, 0)
            &lt;span class="rem"&gt;' Tab での移動を可能にする&lt;/span&gt;
            .TabStop = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .AllowMerge = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(400, &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Height)
&lt;br&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Button_Click(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; btn &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripButton = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ToolStripButton)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.AllowItemReorder = btn.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DockComboBox_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dockCmb &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ToolStripComboBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Dock = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(dockCmb.SelectedItem, DockStyle)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; LayoutStyleComboBox_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; layoutStyleCmb &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ToolStripComboBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.LayoutStyle = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(layoutStyleCmb.SelectedItem, ToolStripLayoutStyle)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; SplitButton_ButtonClick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        MessageBox.Show(&lt;span class="str"&gt;"SplitButton がクリックされました"&lt;/span&gt;)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; SplitButton_DropDownItemClicked(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripItemClickedEventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; clickedItem &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripItem = e.ClickedItem
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rendermode &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripRenderMode = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(clickedItem.Tag, ToolStripRenderMode)
        &lt;span class="kwrd"&gt;If&lt;/span&gt; rendermode = ToolStripRenderMode.Custom &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Renderer = &lt;span class="kwrd"&gt;New&lt;/span&gt; MyCustomRenderer()
        &lt;span class="kwrd"&gt;Else&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.Renderer = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ToolStrip1.RenderMode = rendermode
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;
&lt;br&gt;
&lt;span class="rem"&gt;''' &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;''' カスタム描画クラス&lt;/span&gt;
&lt;span class="rem"&gt;''' &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; MyCustomRenderer
    &lt;span class="kwrd"&gt;Inherits&lt;/span&gt; ToolStripRenderer
&lt;br&gt;
    &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Overrides&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; OnRenderToolStripBackground(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Windows.Forms.ToolStripRenderEventArgs)
        &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.OnRenderToolStripBackground(e)
        Using brush &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Drawing.Drawing2D.LinearGradientBrush _
                       = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Drawing2D.LinearGradientBrush(e.ToolStrip.ClientRectangle, Color.White, Color.SkyBlue, 0.0F)
            e.Graphics.FillRectangle(brush, e.AffectedBounds)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;
&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/76033.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>Timer（System.Windows.Forms.Timer）</title><link>http://blogs.wankuma.com/naoko/archive/2007/04/27/73451.aspx</link><pubDate>Fri, 27 Apr 2007 11:05:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/04/27/73451.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/73451.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/04/27/73451.aspx#Feedback</comments><slash:comments>24</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/73451.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/73451.aspx</trackback:ping><description>&lt;p&gt;
Timer かぁ。。。 VB6 の時に時計表示機能位しか業務で使ったことないなぁ。&lt;br&gt;
&lt;br&gt;
VB6 の時の Timer と、.NET Framework 上における System.Windows.Forms.Timer の違いは&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/zffx82xt(vs.80).aspx" target="_blank" title="Timer コントロール (Visual Basic 6.0 ユーザー向け)"&gt;Timer コントロール (Visual Basic 6.0 ユーザー向け)&lt;/a&gt; にまとめられています。&lt;br&gt;
&lt;br&gt;
タイマーの制限事項については、以下にあります。&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/xy0zeach(VS.80).aspx" target="_blank" title="Windows フォームの Timer コンポーネントの Interval プロパティの制限"&gt;Windows フォームの Timer コンポーネントの Interval プロパティの制限&lt;/a&gt;&lt;br&gt;
Interval に設定できる値は 1 分強 (約 64.8 秒)が MAX なんですねぇ。&lt;br&gt;
そんなにでかい値をセットしようとしたことがないから知らんかったー。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.timer(vs.80).aspx" target="_blank" title="Timer クラス"&gt;Timer クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/h1c2h276(VS.80).aspx" target="_blank" title="Timer コンポーネント (Windows フォーム)"&gt;Timer コンポーネント (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
わっ。こういうの、もうさんざん見あきてますね。&lt;br&gt;
&lt;IMG height=300 alt="Timer" src="http://naoko.wankuma.com/blogimage/dialy/Timer01.jpg" width=300 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; TimerTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_timeLabel &lt;span class="kwrd"&gt;As&lt;/span&gt; Label = &lt;span class="kwrd"&gt;New&lt;/span&gt; Label()
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TimerTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_timeLabel)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_timeLabel
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 10)
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Font = &lt;span class="kwrd"&gt;New&lt;/span&gt; Font(.Font.FontFamily, 18.0F, FontStyle.Regular)
            .BorderStyle = BorderStyle.Fixed3D
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; startButton &lt;span class="kwrd"&gt;As&lt;/span&gt; Button = &lt;span class="kwrd"&gt;New&lt;/span&gt; Button
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(startButton)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; startButton
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 100)
            .Text = &lt;span class="str"&gt;"Start"&lt;/span&gt;
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; StartButton_Click
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; stopButton &lt;span class="kwrd"&gt;As&lt;/span&gt; Button = &lt;span class="kwrd"&gt;New&lt;/span&gt; Button
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(stopButton)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; stopButton
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(100, 100)
            .Text = &lt;span class="str"&gt;"Stop"&lt;/span&gt;
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Click, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; StopButton_Click
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Timer1
            .Interval = 1000 &lt;span class="rem"&gt;' 1 秒ごとに Tick イベントを発生させる&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Timer1_Tick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; Timer1.Tick
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.DisplayTime(&lt;span class="str"&gt;"Tick"&lt;/span&gt;)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; StartButton_Click(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Timer1.Start()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.DisplayTime(&lt;span class="str"&gt;"Start"&lt;/span&gt;)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; StopButton_Click(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Timer1.&lt;span class="kwrd"&gt;Stop&lt;/span&gt;()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.DisplayTime(&lt;span class="str"&gt;"Stop"&lt;/span&gt;)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DisplayTime(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; eventName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_timeLabel.Text = DateTime.Now.ToString(&lt;span class="str"&gt;"yyyy/MM/dd HH:mm:ss"&lt;/span&gt;) &amp;amp; _
                      ControlChars.NewLine &amp;amp; _
                      &lt;span class="str"&gt;"Enabled:"&lt;/span&gt; &amp;amp; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Timer1.Enabled.ToString() &amp;amp; _
                      ControlChars.NewLine &amp;amp; _
                      &lt;span class="str"&gt;"Event:"&lt;/span&gt; &amp;amp; eventName
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/73451.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>TextBox（System.Windows.Forms.TextBox）</title><link>http://blogs.wankuma.com/naoko/archive/2007/04/26/73298.aspx</link><pubDate>Thu, 26 Apr 2007 12:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/04/26/73298.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/73298.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/04/26/73298.aspx#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/73298.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/73298.aspx</trackback:ping><description>&lt;p&gt;
うーん。&lt;br&gt;
何も書くようなことがないなぁ。。。&lt;br&gt;
とりあえず、プロパティを動的に変更してみるサンプルを作成してみました。&lt;br&gt;
&lt;br&gt;
「ユーザーに入力できませんよ」という意志を伝えるとき、&lt;br&gt;
Enabled = False にする方と、ReadOnly = True にする場合とがあるのですが&lt;br&gt;
ワタシは ReadOnly = True 派かなぁ。&lt;br&gt;
特に理由はなくて、単純な好みで言ってますが。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.textbox(vs.80).aspx" target="_blank" title="TextBox クラス"&gt;TextBox クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/sbxka1kb(VS.80).aspx" target="_blank" title="TextBox コントロール (Windows フォーム)"&gt;TextBox コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
こんな感じで設定できます。カーソルを最後に持っていくか否か についてはちょっと周りとは違いますが。&lt;br&gt;
&lt;IMG height=350 alt="TextBox" src="http://naoko.wankuma.com/blogimage/dialy/TextBox01.jpg" width=300 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; TextBoxTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_textBox &lt;span class="kwrd"&gt;As&lt;/span&gt; TextBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; TextBox()
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_moveCursor &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt; = &lt;span class="kwrd"&gt;False&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TextBoxTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabControl()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(tabCtrl)
        tabCtrl.Dock = DockStyle.Fill
        tabCtrl.TabPages.Clear()
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; textBoxSettingTabPage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"設定"&lt;/span&gt;)
        tabCtrl.TabPages.Add(textBoxSettingTabPage)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; textBoxTabPage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"TextBox"&lt;/span&gt;)
        tabCtrl.TabPages.Add(textBoxTabPage)
        textBoxTabPage.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Dock = DockStyle.Top
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Text = &lt;span class="str"&gt;"ふじことエデンは楽しい友達"&lt;/span&gt;
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Enter, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TextBox_Enter
        &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Leave, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TextBox_Leave
&lt;br&gt;
        &lt;span class="rem"&gt;' Enter 入力を受け付けるか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; acceptsReturnChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(acceptsReturnChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; acceptsReturnChkBox
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 10)
            .Text = &lt;span class="str"&gt;"AcceptsReturn"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.AcceptsReturn
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; AcceptsReturnChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' Tab 入力を受け付けるか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; acceptsTabChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(acceptsTabChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; acceptsTabChkBox
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 35)
            .Text = &lt;span class="str"&gt;"AcceptsTab"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.AcceptsTab
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; AcceptsTabChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' BorderStyle の設定&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; borderStyleCombo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ComboBox()
        textBoxSettingTabPage.Controls.Add(borderStyleCombo)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; borderStyleCombo
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 60)
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() {BorderStyle.Fixed3D, BorderStyle.FixedSingle, BorderStyle.None})
            .SelectedItem = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.BorderStyle
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; BorderStyleCombo_SelectecIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' Focus を失った時に選択された文字をそのままにするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hideSelectionChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(hideSelectionChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; hideSelectionChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 85)
            .Text = &lt;span class="str"&gt;"HideSelection"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.HideSelection
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; HideSelectionChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' 複数行にするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; multilineChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(multilineChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; multilineChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 110)
            .Text = &lt;span class="str"&gt;"Multiline"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Multiline
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; MultilineChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' 文字をマスクするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; passwordCharChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(passwordCharChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; passwordCharChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 135)
            .Text = &lt;span class="str"&gt;"PasswordChar"&lt;/span&gt;
            .Checked = (&lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.PasswordChar &amp;lt;&amp;gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;)
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; PasswordCharChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' 読み取り専用にするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; readonlyChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(readonlyChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; readonlyChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 160)
            .Text = &lt;span class="str"&gt;"ReadOnly"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.&lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; ReadonlyChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ショートカットを使用可能にするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; shortcutsEnabledChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(shortcutsEnabledChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; shortcutsEnabledChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 185)
            .Text = &lt;span class="str"&gt;"ShortcutsEnabled"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.ShortcutsEnabled
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; ShortcutsEnabled_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' カーソルを最後に持っていくか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; moveCursorChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(moveCursorChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; moveCursorChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 210)
            .Text = &lt;span class="str"&gt;"カーソルを最後に持っていくか否か"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_moveCursor
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; MoveCursorChkBox_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' 既定のパスワード文字を表示するか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; useSystemPasswordCharChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(useSystemPasswordCharChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; useSystemPasswordCharChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 235)
            .Text = &lt;span class="str"&gt;"UseSystemPassword"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.UseSystemPasswordChar
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; UseSystemPasswordChar_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ワードラップするか否か&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; wordWrapChkBox &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; CheckBox()
        textBoxSettingTabPage.Controls.Add(wordWrapChkBox)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; wordWrapChkBox
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; Point(10, 260)
            .Text = &lt;span class="str"&gt;"WordWrap"&lt;/span&gt;
            .Checked = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.WordWrap
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CheckedChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; WordWrap_CheckedChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' AutoComplete の設定&lt;/span&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox
            .AutoCompleteMode = AutoCompleteMode.Suggest
            .AutoCompleteSource = AutoCompleteSource.CustomSource
            .AutoCompleteCustomSource.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;() {&lt;span class="str"&gt;"ふじこ"&lt;/span&gt;, &lt;span class="str"&gt;"エデン"&lt;/span&gt;, &lt;span class="str"&gt;"オット"&lt;/span&gt;})
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.Width, 350)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; AcceptsReturnChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.AcceptsReturn = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; AcceptsTabChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.AcceptsTab = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; BorderStyleCombo_SelectecIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cmb &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ComboBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.BorderStyle = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(cmb.SelectedItem, BorderStyle)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; HideSelectionChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.HideSelection = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; MultilineChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;If&lt;/span&gt; chk.Checked &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Dock = DockStyle.Fill
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.ScrollBars = ScrollBars.Both
        &lt;span class="kwrd"&gt;Else&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Dock = DockStyle.Top
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.ScrollBars = ScrollBars.None
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Multiline = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; PasswordCharChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;If&lt;/span&gt; chk.Checked &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="rem"&gt;' PasswordChar に何か値を設定すれば勝手にマスクされる&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.PasswordChar = &lt;span class="str"&gt;"@"&lt;/span&gt;c
        &lt;span class="kwrd"&gt;Else&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.PasswordChar = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ReadonlyChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.&lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ShortcutsEnabled_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.ShortcutsEnabled = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; MoveCursorChkBox_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_moveCursor = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TextBox_Enter(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_moveCursor &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="rem"&gt;' 文字の最後にカーソルを持っていく&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.SelectionLength = 0
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.SelectionStart = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.TextLength + 1
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; UseSystemPasswordChar_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.UseSystemPasswordChar = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; WordWrap_CheckedChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chk &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, CheckBox)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.WordWrap = chk.Checked
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TextBox_Leave(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; inputedText &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;() = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_textBox.Lines
        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; text &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;In&lt;/span&gt; inputedText
            Console.WriteLine(text)
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/73298.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>TableLayoutPanel（System.Windows.Forms.TableLayoutPanel）</title><link>http://blogs.wankuma.com/naoko/archive/2007/04/25/73097.aspx</link><pubDate>Wed, 25 Apr 2007 12:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/04/25/73097.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/73097.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/04/25/73097.aspx#Feedback</comments><slash:comments>84</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/73097.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/73097.aspx</trackback:ping><description>&lt;p&gt;
こいつも存在は知ってるけど使う機会がなかったです。&lt;br&gt;
Panel を継承して、IExtenderProvider を実装しているのか。へー。&lt;br&gt;
&lt;br&gt;
で、&lt;a href="http://msdn2.microsoft.com/ja-jp/library/ms171689(VS.80).aspx" target="_blank" title="TableLayoutPanel コントロールの推奨される手順"&gt;TableLayoutPanel コントロールの推奨される手順&lt;/a&gt; を眺めているとイロイロと非おススメ事項があるのが解ります。&lt;br&gt;
・単純な画面には TableLayoutPanel 使ってもあまり有効ではない。&lt;br&gt;
・PropertyGrid 等の画面は一般的に 1 個のでっかいコントロールを画面に張り付けるので、&lt;br&gt;
　ほかのコントロールの入る余地がないから意味ない。&lt;br&gt;
・Dock プロパティは Fill にするべからず（メリットないから）&lt;br&gt;
・入れ子にするべからず（パフォーマンスの低下）&lt;br&gt;
・ビジュアル継承するべからず（パフォーマンスの低下）&lt;br&gt;
&lt;br&gt;
じゃあ、どんな画面に向いてるのかっていうと&lt;br&gt;
・フォームが複数の部分から成り、それぞれを比例的にサイズ変更する必要があるレイアウト。&lt;br&gt;
　→具体的にはどんなの？ちょっとイメージが湧きませんでした。&lt;br&gt;
・レイアウトが動的に生成される場合&lt;br&gt;
・ローカライズ等で文字幅が変わる可能性がある場合&lt;br&gt;
&lt;br&gt;
あんまり使い道ないじゃん...&lt;br&gt;
じゃ、MS のサンプル見てみよう！ということで &lt;a href="http://msdn2.microsoft.com/ja-jp/library/d4d31tbk(VS.80).aspx" target="_blank" title="方法 : データ入力用のサイズ変更可能な Windows フォームを作成する"&gt;方法 : データ入力用のサイズ変更可能な Windows フォームを作成する&lt;/a&gt; を実行した画像をのっけてみました。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.tablelayoutpanel(vs.80).aspx" target="_blank" title="TableLayoutPanel クラス"&gt;TableLayoutPanel クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/3a1tbfwd(VS.80).aspx" target="_blank" title="TableLayoutPanel コントロール (Windows フォーム)"&gt;TableLayoutPanel コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
方法 : データ入力用のサイズ変更可能な Windows フォームを作成する のフォーム。今回はみんな画像がでっかくてスミマセン。。。&lt;br&gt;
&lt;IMG height=372 alt="TableLayoutPanel サンプル" src="http://naoko.wankuma.com/blogimage/dialy/TableLayoutPanel01.jpg" width=650 border=0&gt;&lt;br&gt;
上記フォームを縮小したところ&lt;br&gt;
&lt;IMG height=261 alt="TableLayoutPanel サンプル縮小" src="http://naoko.wankuma.com/blogimage/dialy/TableLayoutPanel02.jpg" width=428 border=0&gt;&lt;br&gt;
自分でいじくってみた画面&lt;br&gt;
&lt;IMG height=400 alt="TableLayoutPanel" src="http://naoko.wankuma.com/blogimage/dialy/TableLayoutPanel03.jpg" width=400 border=0&gt;&lt;br&gt;
&lt;br&gt;
■ユーザーコントロールのコード&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="rem"&gt;'' 自身の Anchor または Dock を設定可能なユーザーコントロール&lt;/span&gt;
&amp;lt; &lt;span class="kwrd"&gt;Global&lt;/span&gt;.Microsoft.VisualBasic.CompilerServices.DesignerGenerated() &amp;gt; _
Partial &lt;span class="kwrd"&gt;Class&lt;/span&gt; TableLayoutPanelChild
    &lt;span class="kwrd"&gt;Inherits&lt;/span&gt; System.Windows.Forms.UserControl
&lt;br&gt;
    &lt;span class="rem"&gt;'UserControl はコンポーネント一覧をクリーンアップするために dispose をオーバーライドします。&lt;/span&gt;
    &amp;lt; System.Diagnostics.DebuggerNonUserCode() &amp;gt; _
    &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Overrides&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Dispose(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; disposing &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;)
        &lt;span class="kwrd"&gt;Try&lt;/span&gt;
            &lt;span class="kwrd"&gt;If&lt;/span&gt; disposing &lt;span class="kwrd"&gt;AndAlso&lt;/span&gt; components IsNot &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                components.Dispose()
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Finally&lt;/span&gt;
            &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Dispose(disposing)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="rem"&gt;'Windows フォーム デザイナで必要です。&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; components &lt;span class="kwrd"&gt;As&lt;/span&gt; System.ComponentModel.IContainer
&lt;br&gt;
    &lt;span class="rem"&gt;'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。&lt;/span&gt;
    &lt;span class="rem"&gt;'Windows フォーム デザイナを使用して変更できます。  &lt;/span&gt;
    &lt;span class="rem"&gt;'コード エディタを使って変更しないでください。&lt;/span&gt;
    &amp;lt; System.Diagnostics.DebuggerStepThrough() &amp;gt; _
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; InitializeComponent()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1 = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Windows.Forms.ComboBox
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2 = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Windows.Forms.ComboBox
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.SuspendLayout()
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="rem"&gt;'ComboBox1&lt;/span&gt;
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.FormattingEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Point(3, 3)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.Name = &lt;span class="str"&gt;"ComboBox1"&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Size(121, 20)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.TabIndex = 0
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="rem"&gt;'ComboBox2&lt;/span&gt;
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.FormattingEnabled = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.Location = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Point(3, 29)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.Name = &lt;span class="str"&gt;"ComboBox2"&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Size(121, 20)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.TabIndex = 1
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="rem"&gt;'TableLayoutPanelChild&lt;/span&gt;
        &lt;span class="rem"&gt;'&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.AutoScaleDimensions = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.SizeF(6.0!, 12.0!)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Name = &lt;span class="str"&gt;"TableLayoutPanelChild"&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Size(129, 52)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ResumeLayout(&lt;span class="kwrd"&gt;False&lt;/span&gt;)
&lt;br&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
    &lt;span class="kwrd"&gt;Friend&lt;/span&gt; &lt;span class="kwrd"&gt;WithEvents&lt;/span&gt; ComboBox1 &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Windows.Forms.ComboBox
    &lt;span class="kwrd"&gt;Friend&lt;/span&gt; &lt;span class="kwrd"&gt;WithEvents&lt;/span&gt; ComboBox2 &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Windows.Forms.ComboBox
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TableLayoutPanelChild_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.Add(AnchorStyles.Bottom)
            .Items.Add(AnchorStyles.Left)
            .Items.Add(AnchorStyles.None)
            .Items.Add(AnchorStyles.Right)
            .Items.Add(AnchorStyles.Top)
            .SelectedItem = .Anchor
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.Add(DockStyle.Bottom)
            .Items.Add(DockStyle.Fill)
            .Items.Add(DockStyle.Left)
            .Items.Add(DockStyle.None)
            .Items.Add(DockStyle.Right)
            .Items.Add(DockStyle.Top)
            .SelectedItem = .Dock
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ComboBox1_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; ComboBox1.SelectedIndexChanged
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Anchor = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox1.SelectedItem, AnchorStyles)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ComboBox2_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; ComboBox2.SelectedIndexChanged
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Dock = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.ComboBox2.SelectedItem, DockStyle)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;■Form のコード&lt;br&gt;&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; TableLayoutPanelTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; m_table &lt;span class="kwrd"&gt;As&lt;/span&gt; TableLayoutPanel
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TableLayoutPanelTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; children &lt;span class="kwrd"&gt;As&lt;/span&gt; List(Of TableLayoutPanelChild) = &lt;span class="kwrd"&gt;New&lt;/span&gt; List(Of TableLayoutPanelChild)
        children.AddRange(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateChildren(4, Color.LightSalmon))
        children.AddRange(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateChildren(4, Color.LightYellow))
        children.AddRange(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateChildren(4, Color.LightGreen))
        children.AddRange(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.CreateChildren(4, Color.LightBlue))
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; context &lt;span class="kwrd"&gt;As&lt;/span&gt; ContextMenuStrip = &lt;span class="kwrd"&gt;New&lt;/span&gt; ContextMenuStrip()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; menuItem &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolStripComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolStripComboBox()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; menuItem
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.Add(TableLayoutPanelCellBorderStyle.Inset)
            .Items.Add(TableLayoutPanelCellBorderStyle.InsetDouble)
            .Items.Add(TableLayoutPanelCellBorderStyle.None)
            .Items.Add(TableLayoutPanelCellBorderStyle.Outset)
            .Items.Add(TableLayoutPanelCellBorderStyle.OutsetDouble)
            .Items.Add(TableLayoutPanelCellBorderStyle.OutsetPartial)
            .Items.Add(TableLayoutPanelCellBorderStyle.&lt;span class="kwrd"&gt;Single&lt;/span&gt;)
            .SelectedItem = TableLayoutPanelCellBorderStyle.Inset
&lt;br&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; CellBorderStyleCombo_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        context.Items.Add(menuItem)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_table = &lt;span class="kwrd"&gt;New&lt;/span&gt; TableLayoutPanel()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_table)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_table
            .Anchor = &lt;span class="kwrd"&gt;CType&lt;/span&gt;((((System.Windows.Forms.AnchorStyles.Top &lt;span class="kwrd"&gt;Or&lt;/span&gt; System.Windows.Forms.AnchorStyles.Bottom) _
                    &lt;span class="kwrd"&gt;Or&lt;/span&gt; System.Windows.Forms.AnchorStyles.Left) _
                    &lt;span class="kwrd"&gt;Or&lt;/span&gt; System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            .ContextMenuStrip = context
            .CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset
            .Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(250, 250)
            .AutoSize = &lt;span class="kwrd"&gt;True&lt;/span&gt;
&lt;br&gt;
            &lt;span class="rem"&gt;' 列&lt;/span&gt;
            .ColumnCount = 4
            .ColumnStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; ColumnStyle())
            .ColumnStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; ColumnStyle(SizeType.Percent, 50.0F))
            .ColumnStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; ColumnStyle())
            .ColumnStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; ColumnStyle(SizeType.Percent, 50.0F))
&lt;br&gt;
            &lt;span class="rem"&gt;' 行&lt;/span&gt;
            .RowCount = 4
            .RowStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; RowStyle())
            .RowStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; RowStyle(SizeType.Percent, 50.0F))
            .RowStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; RowStyle())
            .RowStyles.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; RowStyle(SizeType.Percent, 50.0F))
&lt;br&gt;
            &lt;span class="rem"&gt;' Cell に 子コントロールを埋め込む&lt;/span&gt;
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; itemIndex &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0
            &lt;span class="kwrd"&gt;For&lt;/span&gt; columnIndex &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0 &lt;span class="kwrd"&gt;To&lt;/span&gt; .ColumnCount - 1
                &lt;span class="kwrd"&gt;For&lt;/span&gt; rowIndex &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0 &lt;span class="kwrd"&gt;To&lt;/span&gt; .RowCount - 1
                    .Controls.Add(children(itemIndex), columnIndex, rowIndex)
                    itemIndex += 1
                &lt;span class="kwrd"&gt;Next&lt;/span&gt;
            &lt;span class="kwrd"&gt;Next&lt;/span&gt;
&lt;br&gt;
            &lt;span class="rem"&gt;' セルの再描画&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .CellPaint, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; CellPaint
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(500, 500)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CellPaint(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TableLayoutCellPaintEventArgs)
        Console.WriteLine(&lt;span class="str"&gt;"CellPaint("&lt;/span&gt; &amp;amp; e.Column.ToString() &amp;amp; _
                          &lt;span class="str"&gt;","&lt;/span&gt; &amp;amp; e.Row.ToString() &amp;amp; &lt;span class="str"&gt;")"&lt;/span&gt;)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CellBorderStyleCombo_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="rem"&gt;' セルの境界線スタイルを変更&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.m_table.CellBorderStyle = _
        &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(&lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ToolStripComboBox).SelectedItem, TableLayoutPanelCellBorderStyle)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; CreateChildren(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; count &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; setColor &lt;span class="kwrd"&gt;As&lt;/span&gt; Color) &lt;span class="kwrd"&gt;As&lt;/span&gt; List(Of TableLayoutPanelChild)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lst &lt;span class="kwrd"&gt;As&lt;/span&gt; List(Of TableLayoutPanelChild) = &lt;span class="kwrd"&gt;New&lt;/span&gt; List(Of TableLayoutPanelChild)
        &lt;span class="kwrd"&gt;For&lt;/span&gt; counter &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0 &lt;span class="kwrd"&gt;To&lt;/span&gt; count - 1
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; child &lt;span class="kwrd"&gt;As&lt;/span&gt; TableLayoutPanelChild = &lt;span class="kwrd"&gt;New&lt;/span&gt; TableLayoutPanelChild()
            &lt;span class="kwrd"&gt;If&lt;/span&gt; (counter + 1) &lt;span class="kwrd"&gt;Mod&lt;/span&gt; 2 = 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                child.BackColor = setColor
            &lt;span class="kwrd"&gt;Else&lt;/span&gt;
                child.BackColor = color.White
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
            lst.Add(child)
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; lst
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/73097.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>TabControl（System.Windows.Forms.TabControl）</title><link>http://blogs.wankuma.com/naoko/archive/2007/04/24/72812.aspx</link><pubDate>Tue, 24 Apr 2007 12:36:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/04/24/72812.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/72812.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/04/24/72812.aspx#Feedback</comments><slash:comments>258</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/72812.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/72812.aspx</trackback:ping><description>&lt;p&gt;
また間があいちゃいました。&lt;br&gt;
TabControl も、この一連の勉強の中で無理やり盛り込んだ感があるので&lt;br&gt;
いまさらという感じもしないではないですが、一応。&lt;br&gt;
&lt;br&gt;
HotTrack プロパティがびみょー。&lt;br&gt;
強調表示されると書いてありますが、私の環境だと色が青っぽくなってるかな？&lt;br&gt;
そう言われればそうかな？&lt;br&gt;
色は「ローカル コンピュータのシステム カラーによって決まります。」とあるので&lt;br&gt;
コントロールパネル→画面→デザイン→テーマで設定されている色&lt;br&gt;
が適用されているわけですね。ふむふむ。&lt;br&gt;
&lt;br&gt;
ということは、システムカラーを変えたくないけど、ここは好きな色にしたいという場合は&lt;br&gt;
継承して自分で実装するしかないみたいです。&lt;br&gt;
&lt;br&gt;
■参考文献&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.tabcontrol(vs.80).aspx" target="_blank" title="TabControl クラス"&gt;TabControl クラス&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/ja-jp/library/4akwf92a(VS.80).aspx" target="_blank" title="TabControl コントロール (Windows フォーム)"&gt;TabControl コントロール (Windows フォーム)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
■実行画像&lt;br&gt;
なんだか TabControl ではないように見えますが、一応 SplitContainer の下のほうにあるのは TabControl です。&lt;br&gt;
&lt;IMG height=400 alt="TabControl" src="http://naoko.wankuma.com/blogimage/dialy/TabControl01.jpg" width=250 border=0&gt;&lt;br&gt;
&lt;br&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; TabControlTest
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControlTest_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
&lt;br&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Size = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(250, 400)
        &lt;span class="rem"&gt;' SplitContainer を配置&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; splitCntner &lt;span class="kwrd"&gt;As&lt;/span&gt; SplitContainer = &lt;span class="kwrd"&gt;New&lt;/span&gt; SplitContainer()
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Controls.Add(splitCntner)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; splitCntner
            .Dock = DockStyle.Fill
            .SplitterWidth = 5
            .SplitterDistance = 80
            .BorderStyle = BorderStyle.Fixed3D
            .Orientation = Orientation.Horizontal
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        splitCntner.Dock = DockStyle.Fill
&lt;br&gt;
        &lt;span class="rem"&gt;' DrawMode を動的に変える&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; drawModeCombo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ComboBox()
        splitCntner.Panel1.Controls.Add(drawModeCombo)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; drawModeCombo
            .Dock = DockStyle.Top
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() {TabDrawMode.Normal, TabDrawMode.OwnerDrawFixed})
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; OnDrawModeCombo_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' Appearance を動的に変える&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; appearanceCombo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ComboBox()
        splitCntner.Panel1.Controls.Add(appearanceCombo)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; appearanceCombo
            .Dock = DockStyle.Top
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() {TabAppearance.Buttons, TabAppearance.FlatButtons,TabAppearance.Normal})
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; OnappearanceCombo_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' Alignment を動的に変える&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; alignmentCombo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;New&lt;/span&gt; ComboBox()
        splitCntner.Panel1.Controls.Add(alignmentCombo)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; alignmentCombo
            .Dock = DockStyle.Top
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;() {TabAlignment.Bottom, TabAlignment.Left, TabAlignment.Right, TabAlignment.top})
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .SelectedIndexChanged, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; OnAlignmentCombo_SelectedIndexChanged
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="rem"&gt;' ImageList の設定&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; imgLst &lt;span class="kwrd"&gt;As&lt;/span&gt; ImageList = &lt;span class="kwrd"&gt;New&lt;/span&gt; ImageList()
        &lt;span class="kwrd"&gt;With&lt;/span&gt; imgLst
            .ImageSize = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(20, 20)
            .Images.Add(My.Resources.wankuma.ToString(), My.Resources.wankuma)
            .Images.Add(My.Resources.blackwankuma.ToString(), My.Resources.blackwankuma)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabControl()
        splitCntner.Panel2.Controls.Add(tabCtrl)
        &lt;span class="kwrd"&gt;With&lt;/span&gt; tabCtrl
            .Dock = DockStyle.Fill
            .Alignment = TabAlignment.Left
            .DrawMode = TabDrawMode.Normal
            .Appearance = TabAppearance.Normal
            .ImageList = imgLst
            .Multiline = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .ShowToolTips = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            .ItemSize = &lt;span class="kwrd"&gt;New&lt;/span&gt; Size(100, 100) &lt;span class="rem"&gt;' タブの大きさを設定（通常は自動調整）&lt;/span&gt;
            .HotTrack = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="rem"&gt;' マウスをタブに置いたときにテキストの強調&lt;/span&gt;
&lt;br&gt;
            &lt;span class="rem"&gt;' DrawMode が OwnerDraw 時&lt;/span&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .DrawItem, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TabControl_DrawItem
&lt;br&gt;
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Deselected, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TabControl_Deselected
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Deselecting, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TabControl_Deselecting
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Selected, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TabControl_Selected
            &lt;span class="kwrd"&gt;AddHandler&lt;/span&gt; .Selecting, &lt;span class="kwrd"&gt;AddressOf&lt;/span&gt; TabControl_Selecting
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="rem"&gt;' ToolTip の設定&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tip &lt;span class="kwrd"&gt;As&lt;/span&gt; ToolTip = &lt;span class="kwrd"&gt;New&lt;/span&gt; ToolTip()
        tip.SetToolTip(tabCtrl, &lt;span class="str"&gt;"ToolTip"&lt;/span&gt;)
&lt;br&gt;
        drawModeCombo.SelectedItem = tabCtrl.DrawMode
        appearanceCombo.SelectedItem = tabCtrl.Appearance
        alignmentCombo.SelectedItem = tabCtrl.Alignment
&lt;br&gt;
        &lt;span class="rem"&gt;' TabPage の追加&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; wankumaPage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"wankuma"&lt;/span&gt;)
        wankumaPage.ImageIndex = 0
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; blackWankumaPage &lt;span class="kwrd"&gt;As&lt;/span&gt; TabPage = &lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage(&lt;span class="str"&gt;"blackWankuma"&lt;/span&gt;)
        blackWankumaPage.ImageIndex = 1
        &lt;span class="kwrd"&gt;With&lt;/span&gt; tabCtrl.TabPages
            .Clear()
            .AddRange(&lt;span class="kwrd"&gt;New&lt;/span&gt; TabPage() {wankumaPage, blackWankumaPage})
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControl_DrawItem(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; DrawItemEventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, TabControl)
&lt;br&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; rect &lt;span class="kwrd"&gt;As&lt;/span&gt; Rectangle = tabCtrl.GetTabRect(e.Index)
        &lt;span class="rem"&gt;'背景の描画&lt;/span&gt;
        Using brush &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Drawing.Drawing2D.LinearGradientBrush _
                       = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Drawing.Drawing2D.LinearGradientBrush(rect, Color.White, Color.LightCoral, 0.0F)
            e.Graphics.FillRectangle(brush, rect)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
&lt;br&gt;
        &lt;span class="rem"&gt;'文字の描画&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; format &lt;span class="kwrd"&gt;As&lt;/span&gt; StringFormat = &lt;span class="kwrd"&gt;New&lt;/span&gt; StringFormat()
        format.LineAlignment = StringAlignment.Center
        format.Alignment = StringAlignment.Far
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; text &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = tabCtrl.TabPages(e.Index).Text
        Using valueBrush &lt;span class="kwrd"&gt;As&lt;/span&gt; SolidBrush = &lt;span class="kwrd"&gt;New&lt;/span&gt; SolidBrush(SystemColors.ControlText)
            e.Graphics.DrawString(text, tabCtrl.TabPages(e.Index).Font, valueBrush, rect)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; OnDrawModeCombo_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; combo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ComboBox)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; drawMode &lt;span class="kwrd"&gt;As&lt;/span&gt; TabDrawMode = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.SelectedItem, TabDrawMode)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; splitCntner &lt;span class="kwrd"&gt;As&lt;/span&gt; SplitContainer = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.Parent.Parent, SplitContainer)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(splitCntner.Panel2.Controls(0), TabControl)
        tabCtrl.DrawMode = drawMode
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; OnAppearanceCombo_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; combo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ComboBox)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; appearance &lt;span class="kwrd"&gt;As&lt;/span&gt; TabAppearance = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.SelectedItem, TabAppearance)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; splitCntner &lt;span class="kwrd"&gt;As&lt;/span&gt; SplitContainer = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.Parent.Parent, SplitContainer)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(splitCntner.Panel2.Controls(0), TabControl)
        tabCtrl.Appearance = appearance
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; OnAlignmentCombo_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; combo &lt;span class="kwrd"&gt;As&lt;/span&gt; ComboBox = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(sender, ComboBox)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; alignment &lt;span class="kwrd"&gt;As&lt;/span&gt; TabAlignment = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.SelectedItem, TabAlignment)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; splitCntner &lt;span class="kwrd"&gt;As&lt;/span&gt; SplitContainer = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(combo.Parent.Parent, SplitContainer)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabCtrl &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControl = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(splitCntner.Panel2.Controls(0), TabControl)
        tabCtrl.Alignment = alignment
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="rem"&gt;'' Deselect/Select&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControl_Deselected(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControlEventArgs)
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c) &amp;amp; ControlChars.NewLine &amp;amp; &lt;span class="str"&gt;"Deselected"&lt;/span&gt; &amp;amp; ControlChars.NewLine &amp;amp; StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"Action:"&lt;/span&gt; &amp;amp; e.Action.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"TabPage:"&lt;/span&gt; &amp;amp; e.TabPage.Text)
        Console.WriteLine(&lt;span class="str"&gt;"TabPageIndex:"&lt;/span&gt; &amp;amp; e.TabPageIndex.ToString())
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControl_Deselecting(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControlCancelEventArgs)
        &lt;span class="rem"&gt;'e.Cancel = True キャンセル可能&lt;/span&gt;
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c) &amp;amp; ControlChars.NewLine &amp;amp; &lt;span class="str"&gt;"Deselecting"&lt;/span&gt; &amp;amp; ControlChars.NewLine &amp;amp; StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"Action:"&lt;/span&gt; &amp;amp; e.Action.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"TabPage:"&lt;/span&gt; &amp;amp; e.TabPage.Text)
        Console.WriteLine(&lt;span class="str"&gt;"TabPageIndex:"&lt;/span&gt; &amp;amp; e.TabPageIndex.ToString())
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControl_Selected(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControlEventArgs)
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c) &amp;amp; ControlChars.NewLine &amp;amp; &lt;span class="str"&gt;"Selected"&lt;/span&gt; &amp;amp; ControlChars.NewLine &amp;amp; StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"Action:"&lt;/span&gt; &amp;amp; e.Action.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"TabPage:"&lt;/span&gt; &amp;amp; e.TabPage.Text)
        Console.WriteLine(&lt;span class="str"&gt;"TabPageIndex:"&lt;/span&gt; &amp;amp; e.TabPageIndex.ToString())
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;br&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabControl_Selecting(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; TabControlCancelEventArgs)
        &lt;span class="rem"&gt;'e.Cancel = True キャンセル可能&lt;/span&gt;
        Console.WriteLine(StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c) &amp;amp; ControlChars.NewLine &amp;amp; &lt;span class="str"&gt;"Selecting"&lt;/span&gt; &amp;amp; ControlChars.NewLine &amp;amp; StrDup(10, &lt;span class="str"&gt;"="&lt;/span&gt;c))
        Console.WriteLine(&lt;span class="str"&gt;"Action:"&lt;/span&gt; &amp;amp; e.Action.ToString())
        Console.WriteLine(&lt;span class="str"&gt;"TabPage:"&lt;/span&gt; &amp;amp; e.TabPage.Text)
        Console.WriteLine(&lt;span class="str"&gt;"TabPageIndex:"&lt;/span&gt; &amp;amp; e.TabPageIndex.ToString())
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;span class="kwrd"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/72812.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>なおこ(・∀・) &lt;naoko@wankuma.com&gt;</dc:creator><title>StatusStrip（System.Windows.Forms.StatusStrip）</title><link>http://blogs.wankuma.com/naoko/archive/2007/04/06/70397.aspx</link><pubDate>Fri, 06 Apr 2007 10:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/naoko/archive/2007/04/06/70397.aspx</guid><wfw:comment>http://blogs.wankuma.com/naoko/comments/70397.aspx</wfw:comment><comments>http://blogs.wankuma.com/naoko/archive/2007/04/06/70397.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naoko/comments/commentRss/70397.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naoko/services/trackbacks/70397.aspx</trackback:ping><description>&lt;P&gt;専業主婦には新年度なんて全然関係ないんですが、&lt;BR&gt;なんだか春はだるくてうだうだしてたら blog の更新を忘れていました。&lt;BR&gt;来週は来週で &lt;A href="http://www.wankuma.com/seminar/20070414tokyo6/Default.aspx" target=_blank tilte="わんくま同盟 東京勉強会 #6"&gt;勉強会&lt;/A&gt; の準備があるので、うだうだ遊んだり勉強したりするペースも落ちそうな感じがします。&lt;BR&gt;&lt;BR&gt;StatusStrip はあまり使う機会がなかったですけど&lt;BR&gt;StatusBar よりもでざいなでちょちょっといじると簡単に実装できちゃうのはよさげな感じっすね。&lt;BR&gt;自前のコントロールをぶち込むのも楽な感じ。&lt;BR&gt;&lt;BR&gt;ToolStripDropDownButton と ToolStripSplitButton&lt;BR&gt;で一見なにが違うのか全然わからんかったんですが、&lt;BR&gt;よくよく見ると異なるコントロールである事が解りました。&lt;BR&gt;&lt;BR&gt;■参考文献&lt;BR&gt;&lt;A title="StatusStrip クラス" href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.statusstrip(VS.80).aspx" target=_blank&gt;StatusStrip クラス&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;■実行画像&lt;BR&gt;100 % になると黒いわんくまさんではなく通常のわんくまさんになります。&lt;BR&gt;&lt;IMG height=300 alt=SoundPlayer src="http://naoko.wankuma.com/blogimage/dialy/StatusStrip01.jpg" width=300 border=0&gt;&lt;BR&gt;&lt;BR&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Class&lt;/SPAN&gt; StatusStripTest
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Const&lt;/SPAN&gt; LABEL_NAME &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;String&lt;/SPAN&gt; = &lt;SPAN class=str&gt;"statusLabel"&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Const&lt;/SPAN&gt; PROGRESS_NAME &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;String&lt;/SPAN&gt; = &lt;SPAN class=str&gt;"statusProgressBar"&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Const&lt;/SPAN&gt; IMAGE_NAME &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;String&lt;/SPAN&gt; = &lt;SPAN class=str&gt;"statusImage"&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; StatusStripTest_Load(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.&lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.EventArgs) &lt;SPAN class=kwrd&gt;Handles&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;MyBase&lt;/SPAN&gt;.Load
&lt;BR&gt;
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1
            &lt;SPAN class=rem&gt;' オーバーフロー機能をサポート&lt;/SPAN&gt;
            .CanOverflow = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' ToolTip を表示する&lt;/SPAN&gt;
            .ShowItemToolTips = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' コンテナの端から端まで拡大する&lt;/SPAN&gt;
            .Stretch = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' Label の追加&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusLabel &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripStatusLabel = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripStatusLabel()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items.Add(statusLabel)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; statusLabel
            .Name = LABEL_NAME
            .AutoToolTip = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            .Text = &lt;SPAN class=kwrd&gt;String&lt;/SPAN&gt;.Empty
            .ToolTipText = &lt;SPAN class=str&gt;"進捗状況"&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' ProgressBar の追加&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusProgressBar &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripProgressBar = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripProgressBar()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items.Add(statusProgressBar)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; statusProgressBar
            .Name = PROGRESS_NAME
            .Value = 0
            .Minimum = 0
            .Maximum = 100
            .AutoToolTip = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            .ToolTipText = &lt;SPAN class=str&gt;"プログレスバーですよー"&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
        &lt;SPAN class=rem&gt;' 無駄に非同期の仕事をさせる&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; bk &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.ComponentModel.BackgroundWorker = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; System.ComponentModel.BackgroundWorker()
        bk.WorkerReportsProgress = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; bk.DoWork, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; BackgroundWorker1_DoWork
        &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; bk.ProgressChanged, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; BackgroundWorker1_ProgressChanged
        &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; bk.RunWorkerCompleted, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; BackgroundWorker1_RunWorkerCompleted
        bk.RunWorkerAsync()
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' Image の追加(カスタムコントロール。別にこんなん作らなくったって Label とかできますが。。。)&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusImage &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripImage = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripImage()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items.Add(statusImage)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; statusImage
            .Name = IMAGE_NAME
            .PictureBox.Image = My.Resources.blackwankuma
            .ToolTipText = &lt;SPAN class=str&gt;"イメージですよー"&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' DropDown の追加&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusDropDown &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripDropDownButton = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripDropDownButton()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items.Add(statusDropDown)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; statusDropDown
            .Text = &lt;SPAN class=str&gt;"ドロップダウンー"&lt;/SPAN&gt;
            .AutoToolTip = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            .ToolTipText = &lt;SPAN class=str&gt;"ドロップダウンー"&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' マージンを非表示にする&lt;/SPAN&gt;
            &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(.DropDown, ToolStripDropDownMenu).ShowImageMargin = &lt;SPAN class=kwrd&gt;False&lt;/SPAN&gt;
            .DropDownItems.AddRange(&lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripItem() { _
                                    &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripLabel(&lt;SPAN class=str&gt;"eden"&lt;/SPAN&gt;), _
                                    &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripLabel(&lt;SPAN class=str&gt;"fujiko"&lt;/SPAN&gt;)})
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' SplitButton の追加&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusSplitButton &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripSplitButton = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripSplitButton()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items.Add(statusSplitButton)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; statusSplitButton
            .Text = &lt;SPAN class=str&gt;"SplitButton"&lt;/SPAN&gt;
            .AutoToolTip = &lt;SPAN class=kwrd&gt;True&lt;/SPAN&gt;
            .ToolTipText = &lt;SPAN class=str&gt;"SplitButton"&lt;/SPAN&gt;
            .TextImageRelation = TextImageRelation.ImageBeforeText
            &lt;SPAN class=rem&gt;' マージンを非表示にする&lt;/SPAN&gt;
            &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(.DropDown, ToolStripDropDownMenu).ShowImageMargin = &lt;SPAN class=kwrd&gt;False&lt;/SPAN&gt;
            .DropDownItems.AddRange(&lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripItem() { _
                                         &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripButton(&lt;SPAN class=str&gt;"eden"&lt;/SPAN&gt;, My.Resources.えでんさん), _
                                         &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ToolStripButton(&lt;SPAN class=str&gt;"fujiko"&lt;/SPAN&gt;, My.Resources.ふじこちゃん)})
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=rem&gt;' GlipStyle や LayoutStyle を動的に変えてみる&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; glipStyleCombo &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ComboBox = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ComboBox()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(glipStyleCombo)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; glipStyleCombo
            .Location = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; Point(10, 10)
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.Add(ToolStripGripStyle.Hidden)
            .Items.Add(ToolStripGripStyle.Visible)
            .SelectedItem = &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.GripStyle
&lt;BR&gt;
            &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; .SelectedIndexChanged, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; GlipStyleComboBox_SelectedIndexChanged
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
&lt;BR&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; layoutStyleCombo &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ComboBox = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; ComboBox()
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.Controls.Add(layoutStyleCombo)
        &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt; layoutStyleCombo
            .Location = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; Point(10, 30)
            .Size = &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; Size(200, .Size.Height)
            .DropDownStyle = ComboBoxStyle.DropDownList
            .Items.Add(ToolStripLayoutStyle.Flow)
            .Items.Add(ToolStripLayoutStyle.HorizontalStackWithOverflow)
            .Items.Add(ToolStripLayoutStyle.StackWithOverflow)
            .Items.Add(ToolStripLayoutStyle.Table)
            .Items.Add(ToolStripLayoutStyle.VerticalStackWithOverflow)
            .SelectedItem = &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.LayoutStyle
&lt;BR&gt;
            &lt;SPAN class=kwrd&gt;AddHandler&lt;/SPAN&gt; .SelectedIndexChanged, &lt;SPAN class=kwrd&gt;AddressOf&lt;/SPAN&gt; LayoutStyleComboBox_SelectedIndexChanged
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;With&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; GlipStyleComboBox_SelectedIndexChanged(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; EventArgs)
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; selectedGrip &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripGripStyle = &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(sender, ComboBox).SelectedItem, ToolStripGripStyle)
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.GripStyle = selectedGrip
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; LayoutStyleComboBox_SelectedIndexChanged(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; EventArgs)
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; selectedLayout &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripLayoutStyle = &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(sender, ComboBox).SelectedItem, ToolStripLayoutStyle)
        &lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.LayoutStyle = selectedLayout
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;'' 無駄な非同期のお仕事関連&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; BackgroundWorker1_DoWork(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.&lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.ComponentModel.DoWorkEventArgs)
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; bk &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.ComponentModel.BackgroundWorker = _
        &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(sender, System.ComponentModel.BackgroundWorker)
        &lt;SPAN class=kwrd&gt;For&lt;/SPAN&gt; counter &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Integer&lt;/SPAN&gt; = 0 &lt;SPAN class=kwrd&gt;To&lt;/SPAN&gt; 100
            System.Threading.Thread.Sleep(100)
            bk.ReportProgress(counter)
        &lt;SPAN class=kwrd&gt;Next&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; BackgroundWorker1_ProgressChanged(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.ComponentModel.ProgressChangedEventArgs)
        &lt;SPAN class=rem&gt;' 状況の表示&lt;/SPAN&gt;
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusProgressBar &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripProgressBar = &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items(PROGRESS_NAME), ToolStripProgressBar)
        statusProgressBar.Value = e.ProgressPercentage
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusLabel &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripStatusLabel = &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items(LABEL_NAME), ToolStripStatusLabel)
        statusLabel.Text = e.ProgressPercentage.ToString() &amp;amp; &lt;SPAN class=str&gt;" %"&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; BackgroundWorker1_RunWorkerCompleted(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Object&lt;/SPAN&gt;, &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; System.ComponentModel.RunWorkerCompletedEventArgs)
        &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Not&lt;/SPAN&gt; e.Cancelled &lt;SPAN class=kwrd&gt;AndAlso&lt;/SPAN&gt; e.&lt;SPAN class=kwrd&gt;Error&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Is&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Nothing&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;
            &lt;SPAN class=rem&gt;' 100 % になったら、イメージの差し替え&lt;/SPAN&gt;
            &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; statusImage &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; ToolStripImage = &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;Me&lt;/SPAN&gt;.StatusStrip1.Items(IMAGE_NAME), ToolStripImage)
            statusImage.PictureBox.Image = My.Resources.wankuma
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Class&lt;/SPAN&gt;
&lt;BR&gt;
&lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Class&lt;/SPAN&gt; ToolStripImage
    &lt;SPAN class=kwrd&gt;Inherits&lt;/SPAN&gt; ToolStripControlHost
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;ReadOnly&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Property&lt;/SPAN&gt; PictureBox() &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; PictureBox
        &lt;SPAN class=kwrd&gt;Get&lt;/SPAN&gt;
            &lt;SPAN class=kwrd&gt;Return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;DirectCast&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;MyBase&lt;/SPAN&gt;.Control, PictureBox)
        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Get&lt;/SPAN&gt;
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Property&lt;/SPAN&gt;
&lt;BR&gt;
    &lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt;()
        &lt;SPAN class=kwrd&gt;MyBase&lt;/SPAN&gt;.&lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt;(&lt;SPAN class=kwrd&gt;New&lt;/SPAN&gt; PictureBox())
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;End Class&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naoko/aggbug/70397.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>