本入门教程中的所有案例均已测试通过,具体参考入门1中的使用方法。
01 入门1
02 入门2
03 布局管理1
04 布局管理2
05 菜单栏1
06 菜单栏2
07 工具栏
08 基本控件1
09 基本控件2
10 基本控件3
11 基本控件4
12 高级控件1
13 高级控件2
14 对话框1
15 对话框2
16 拖拽功能
17 绘图1
18 绘图2
19 绘图3
20 绘图4
21 进度条
22 游戏——贪吃蛇
目标:创建一个列表框,并添加选项
本案中,创建了一个列表框,并在其中添加了一些名字,当单击某个名字时,状态栏显示该名字。可用于展示读取少量外部数据后并展示。
# encoding: utf-8
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import Application, Form, StatusBar
from System.Windows.Forms import ListBox, DockStyle
from System.Drawing import Size
class IForm(Form):
def __init__(self):
self.Text = "ListBox"
lb = ListBox()
lb.Parent = self
lb.Items.Add("Jessica")
lb.Items.Add("Rachel")
lb.Items.Add("Angelina")
lb.Items.Add("Amy")
lb.Items.Add("Jennifer")
lb.Items.Add("Scarlett")
lb.Dock = DockStyle.Fill
lb.SelectedIndexChanged += self.OnChanged
self.s b = StatusBar()
self.s b.Parent = self
self.Size = Size(220, 220)
self.CenterToScreen()
def OnChanged(self, sender, event):
self.s b.Text = sender.SelectedItem
Application.Run(IForm())
效果展示:
目标:创建ListView,列表视图
本案中创建了一个ListView,该控件的列表是多行多列的列表。 采用的是actresses字典来梳理数据。
# encoding: utf-8
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import Application, Form, StatusBar
from System.Windows.Forms import ListView, View, ColumnHeader
from System.Windows.Forms import ListViewItem, DockStyle, SortOrder
from System.Drawing import Size
class IForm(Form):
def __init__(self):
self.Text = 'ListBox'
actresses = { 'Jessica Alba' : '1981', 'Angelina Jolie' : '1975', 'Natalie Portman' : '1981', 'Rachel Weiss' : '1971', 'Scarlett Johansson' : 1984 }
name = ColumnHeader()
name.Text = 'Name'
name.Width = -1
year = ColumnHeader()
year.Text = 'Year'
self.SuspendLayout()
lv = ListView()
lv.Parent = self
lv.FullRowSelect = True
lv.GridLines = True
lv.AllowColumnReorder = True
lv.Sorting = SortOrder.Ascending
lv.Columns.AddRange((name, year))
lv.ColumnClick += self.OnColumnClick
for act in actresses.keys():
item = ListViewItem()
item.Text = act
item.SubItems.Add(str(actresses[act]))
lv.Items.Add(item)
lv.Dock = DockStyle.Fill
lv.Click += self.OnChanged
self.s b = StatusBar()
self.s b.Parent = self
lv.View = View.Details
self.ResumeLayout()
self.Size = Size(350, 300)
self.CenterToScreen()
def OnChanged(self, sender, event):
name = sender.SelectedItems[0].SubItems[0].Text
born = sender.SelectedItems[0].SubItems[1].Text
self.s b.Text = name + ', ' + born
def OnColumnClick(self, sender, event):
if sender.Sorting == SortOrder.Ascending:
sender.Sorting = SortOrder.Descending
else:
sender.Sorting = SortOrder.Ascending
Application.Run(IForm())
效果展示:
完整的本地电子版本参阅入门1的其他。