使用C# .NET 将结构数组绑定到 Windows 窗体的方法
概要
本文介绍如何向 Windows 窗体绑定结构数组。 该示例由一个 Windows 窗体构成;该窗体包含三个文本框和四个命令按钮,文本框用于显示结构成员,按钮用于浏览数组。返回页首
要求
下面列出推荐使用的硬件、软件、网络结构、技能、知识和所需的 Service Pack。- Microsoft Visual C# .NET
- 对 C# 编程概念的理解达到中等水平
设计结构
将要绑定到窗体的结构必须有成员访问器。 结构成员访问器实际等同于类中的 PROPERTY SET 和 PROPERTY GET 结构。 本文示例使用的结构有三个成员(此处仅展示一个)。还提供了一个带参数的构造函数,但它不是必需的。public struct Guitar { private string make; private string model; private short year; public Guitar(string Make, string Model, short Year) { make = Make; model = Model; year = Year; } public string Make { get { return make; } set { make = value; } } }返回页首
向数组添加结构实例
若要创建实例并将它们添加到数组中,请按下列步骤操作:- 声明该结构类型的变量。
- 声明该结构类型的数组。
- 创建该结构的实例并将它们添加到数组中。
private Guitar[] arr =new Guitar[3]; arr[0] = new Guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971);返回页首
将结构成员绑定到窗体控件
填充 ArrayList 后,可以将对象的单个属性绑定到 Windows 窗体控件。为此,请按照下列步骤操作:- 调用 Textbox DataBindings 属性的 Add 方法。
- 传递将要绑定的控件属性、数组名称和结构成员。
textBox1.DataBindings.Add("Text", arr, "Make"); textBox2.DataBindings.Add("Text", arr, "Model"); textBox3.DataBindings.Add("Text", arr, "Year");返回页首
提供浏览数组的方式
可以使用 CurrencyManager 浏览数组。 为此,请将 CurrencyManager 与窗体的 BindingContext(在此例中即结构数组)关联。private CurrencyManager currencyManager = null; currencyManager = (CurrencyManager)this.BindingContext[arr];CurrencyManager 类有一个 Position 属性,可以通过操纵该属性来迭代数组的所有成员。 通过增加或减小 Position 的当前值,可以在窗体上显示数组的不同成员。
//Move forward one element. currencyManager.Position++; //Move back one element. currencyManager.Position--; //Move to the beginning. currencyManager.Position = 0; //Move to the end. currencyManager.Position = arr.Length - 1;返回页首
分步示例
- 在 Visual C# .NET 中,新建一个 Windows 应用程序项目。默认情况下将创建 Form1。
- 将三个文本框添加到 Form1 并横向排列这些控件。
- 将四个按钮添加到 Form1 并横向排列这些控件。
- 将 Button1 的 Text 属性更改为 Next。
- 将 Button2 的 Text 属性更改为 Previous。
- 将 Button3 的 Text 属性更改为 First。
- 将 Button4 的 Text 属性更改为 Last。
- 将下面的代码添加到 Form1 类:
public struct Guitar { private string make; private string model; private short year; public Guitar(string Make, string Model, short Year) { make=Make; model=Model; year=Year; } public string Make { get { return make; } set { make = value; } } public string Model { get { return model; } set { model = value; } } public short Year { get { return year; } set { year = value; } } } private Guitar[] arr = new Guitar[3]; private CurrencyManager currencyManager = null;
- 将下面的代码添加到窗体的构造函数中,使之位于 InitializeComponent 调用之后(代码设计者已在此处插入了“TODO:Add any constructor code after InitializeComponent call”这一注释):
arr[0] = new Guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971); currencyManager = (CurrencyManager)this.BindingContext[arr]; textBox1.DataBindings.Add("Text", arr, "Make"); textBox2.DataBindings.Add("Text", arr, "Model"); textBox3.DataBindings.Add("Text", arr, "Year");
- 切换以查看“窗体设置器”。
- 双击 Next 并将下面的代码添加到 button1_Click 事件:
currencyManager.Position++;
- 双击 Previous 并将下面的代码添加到 button2_Click 事件:
currencyManager.Position--;
- 双击 First 并将下面的代码添加到 button3_Click 事件:
currencyManager.Position = 0;
- 双击 Last 并将下面的代码添加到 button4_Click 事件:
currencyManager.Position = arr.Length - 1;
- 生成并运行该项目。
- 单击这些命令按钮以显示不同的数组元素。注意,如果愿意,您可以编辑这些对象的值。
转载请注明文章来自:程序猴(http://www.chengxuhou.com/)
posted on 2013-09-14 07:46 程序猴chengxuhou.com 阅读(1365) 评论(0) 编辑 收藏 举报