摘要:[原文作者]: Kit George
[原文链接]: LINQ Cookbook, Recipe 1: Change the font for all labels on a windows form
我们打算启动一个LINQ“菜谱”项目,并逐步将它完成。这个项目的目的是为你在编程和用查询时遇到的一些特殊情况提供解决的方案。我再也想不出一个更好的方式,来关联你能利用LINQ所做的每件事情了。
这个系列项目主要是为您展示LINQ可以做到的各式各样的事情。像任何一本好菜谱一样,我们将为这本菜谱做分类,那样你之后就可以很容易地查询。但是不要希望一个特定的“菜谱”会有大量的描述,尽管它会包含重现步骤。请尽管向我们要求任何你想要看到的菜谱,而我们将尽可能多地创造新的。
材料:
- Visual Studio 2008 (Beta2 或更高版本)
类别:
- LINQ-To-Objects,LINQ with Windows Forms,LINQ with controls,Label
制作方法:
- 打开 Visual Studio 2008,点击“文件/新建项目”,找到并双击“Windows窗体应用程序”图标。
- 增加窗体的大小,使其足够容纳一定数量的控件。
- 从工具箱中拖放几个控件到窗体上,确保至少添加3-4个标签控件。
o 我个人比较喜欢的是两个分组控件(GroupBox),在文本框(TextBox)前放两个标签(Label)(标签在分组控件之上),并在每个分组控件中放一对单选框(RadioButton)控件。这样可以确保测试递归代码。
- 添加一个按钮到窗体上并把它的Text属性改为“Go”。双击这个按钮,然后修改事件处理代码并添加下面的方法:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each label In GetLabels(Me)
label.Font = New Font("Comic Sans MS", 12, _
FontStyle.Bold Or FontStyle.Underline)
Next
End Sub
Private Function GetLabels(ByVal sourceControl As Control) _
As IEnumerable(Of Control)
If sourceControl.Controls.Count > 0 Then
Dim labels = From cont As Control In sourceControl.Controls _
Where TypeOf......[
阅读全文]