100165626.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 201 行 · 第 1/3 页

HTM
201
字号
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">22-16</span><span style="FONT-FAMILY: 宋体">显示了把一个</span><span lang="EN-US">Binding</span><span style="FONT-FAMILY: 宋体">添加到控件中的情况。绑定把控件链接到数据源上,存储在</span><span lang="EN-US">Form(</span><span style="FONT-FAMILY: 宋体">或控件本身</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">BindingContext</span><span style="FONT-FAMILY: 宋体">中。数据源内部的改变会反映到控件上,控件中的改变也会反映到数据源上。</span></p>
<h4 style="FTEL: 21.45pt"><span lang="EN-US">2. Binding</span><span style="FONT-FAMILY: 黑体">类</span></h4>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">这个类把控件的一个属性链接到数据源的一个成员上。在改变该成员时,控件的属性会更新,以反映这个改变。反之亦然,如果文本框中的文本被更新,这个改变也会反映到数据源上。</span></p>
<p align="center"><span lang="EN-US"><img height="366" src="22/image016.gif" width="273" alt="" /></span></p>
<p style="FTEL: 8.15pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 22-16</span></p>
<p class="MsoNormal"><a ftel="Binding"><span style="FONT-FAMILY: 宋体">可以把任何列绑定到控件的任何属性上,例如,可以把列绑定到一个文本框中,也可以把另一个列绑定到文本框的颜色上。可以把控件的属性绑定到完全不同的数据源上,例如,单元格的颜色可以在一个颜色表中定义,而实际的数据可以在另一个表中定义。</span></a></p>
<h4 style="FTEL: 21.45pt"><span lang="EN-US">3. CurrencyManager</span><span style="FONT-FAMILY: 黑体">和</span><span lang="EN-US">PropertyManager </span></h4>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">在创建</span><span lang="EN-US">Binding</span><span style="FONT-FAMILY: 宋体">对象时,如果这是第一次绑定数据源中的数据,就会创建对应的</span><span lang="EN-US">CurrencyManager </span><span style="FONT-FAMILY: 宋体">或</span> <span lang="EN-US">PropertyManager</span><span style="FONT-FAMILY: 宋体">对象。这个类的作用是定义当前记录在数据源中的位置,在改变当前的记录时,需要调整所有的</span><span lang="EN-US">ListBindings</span><span style="FONT-FAMILY: 宋体">。图</span><span lang="EN-US">22-17</span><span style="FONT-FAMILY: 宋体">显示了</span><span lang="EN-US">Products</span><span style="FONT-FAMILY: 宋体">表中的两个字段,包含一种通过跟踪栏控件在记录之间移动的方式。</span></p>
<p align="center"><span lang="EN-US"><img height="105" src="22/image017.jpg" width="319" alt="" /></span></p>
<p style="FTEL: 8.15pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 22-17</span></p>
<p class="MsoNormal"><span lang="EN-US">ScrollingDataBinding</span><span style="FONT-FAMILY: 宋体">示例的代码如下所示:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">using System;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Windows.Forms;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Data;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Data.SqlClient;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">public class ScrollingDataBinding : System.Windows.Forms.Form</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private Button retrieveButton;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private TextBox textName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private TextBox textQuan;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private TrackBar trackBar;</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private DataSet ds;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">应用程序在</span><span lang="EN-US">ScrollingDataBinding</span><span style="FONT-FAMILY: 宋体">构造函数中创建窗口以及该窗口中的所有控件:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public ScrollingDataBinding()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ClientSize = new System.Drawing.Size(464, 253);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Text = &quot;09_ScrollingDataBinding&quot;;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;this.retrieveButton = new Button();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.Location = new System.Drawing.Point(4, 4);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.Size = new System.Drawing.Size(75, 23);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.TabIndex = 1;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.Anchor = AnchorStyles.Top | AnchorStyles.Left;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.Text = &quot;Retrieve&quot;;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retrieveButton.Click += new System.EventHandler</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (this.retrieveButton_Click);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(this.retrieveButton);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.textName = new TextBox();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.Location = new System.Drawing.Point(4, 31);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.Text = &quot;Please click retrieve...&quot;;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.TabIndex = 2;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.Anchor = AnchorStyles.Top | AnchorStyles.Left | </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnchorStyles.Right ;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.Size = new System.Drawing.Size(456, 20);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textName.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(this.textName);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.textQuan = new TextBox();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.Location = new System.Drawing.Point(4, 55);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.Text = &quot;&quot;;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.TabIndex = 3;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.Anchor = AnchorStyles.Top | AnchorStyles.Left | </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnchorStyles.Top;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.Size = new System.Drawing.Size(456, 20);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textQuan.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(this.textQuan);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.trackBar = new TrackBar();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.BeginInit();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.Dock = DockStyle.Bottom ;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.Location = new System.Drawing.Point(0, 275);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.TabIndex = 4;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.Size = new System.Drawing.Size(504, 42);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trackBar.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Controls.Add(this.trackBar);</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; }</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">单击</span><span lang="EN-US">Retrieve</span><span style="FONT-FAMILY: 宋体">按钮后,事件处理程序就会从</span><span lang="EN-US">Products</span><span style="FONT-FAMILY: 宋体">表中选择所有的记录,并把它们保存到私有数据集</span><span lang="EN-US">ds</span><span style="FONT-FAMILY: 宋体">中:</span></p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?