100165543.htm

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

HTM
126
字号
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.Text = _cntryName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.SubItems.Add(currency);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; }</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">&nbsp;&nbsp;&nbsp;&nbsp; public string CountryName</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get {return _cntryName;}</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; }</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">&nbsp;&nbsp;&nbsp; public string CountryAbbreviation</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get {return _cntryAbbrev;}</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; }</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">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">注意</span><span lang="EN-US">CountryList</span><span style="FONT-FAMILY: 宋体">类派生于</span><span lang="EN-US">ListViewItem</span><span style="FONT-FAMILY: 宋体">。这是因为我们只能给</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件添加基于</span><span lang="EN-US">ListViewItem</span><span style="FONT-FAMILY: 宋体">的对象。在构造函数中,给</span><span lang="EN-US">base.Text</span><span style="FONT-FAMILY: 宋体">属性传送国家名,给</span><span lang="EN-US">base.SubItems</span><span style="FONT-FAMILY: 宋体">属性添加货币值。这会在列表中显示国家名,在</span><span lang="EN-US">Details</span><span style="FONT-FAMILY: 宋体">视图的另一个单独的列中显示货币。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">接着,需要在窗体的代码中给</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件添加几个</span><span lang="EN-US">CountryItem</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">lvCountries.Items.Add(new CountryItem(&quot;United States&quot;,&quot;US&quot;,&quot;Dollar&quot;));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items[0].ImageIndex = 0;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items.Add(new CountryItem(&quot;Great Britain&quot;,&quot;GB&quot;,&quot;Pound&quot;));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items[1].ImageIndex = 1;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items.Add(new CountryItem(&quot;Canada&quot;,&quot;CA&quot;,&quot;Dollar&quot;));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items[2].ImageIndex = 2;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items.Add(new CountryItem(&quot;Japan&quot;,&quot;JP&quot;,&quot;Yen&quot;));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items[3].ImageIndex = 3;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items.Add(new CountryItem(&quot;Germany&quot;,&quot;GM&quot;,&quot;Deutch Mark&quot;));</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Items[4].ImageIndex = 4;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">这里给</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件</span><span lang="EN-US">lvCountries</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">Items</span><span style="FONT-FAMILY: 宋体">集合添加了一个新的</span><span lang="EN-US">CountryItem</span><span style="FONT-FAMILY: 宋体">。注意在把</span><span lang="EN-US">CountryItem</span><span style="FONT-FAMILY: 宋体">添加到控件中后,才设置</span><span lang="EN-US">CountryItem</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">ImageIndex</span><span style="FONT-FAMILY: 宋体">属性。有两个</span><span lang="EN-US">ImageIndex</span><span style="FONT-FAMILY: 宋体">属性,一个用于大图标,一个用于小图标</span><span lang="EN-US">(SmallImageList</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">LargeImageList</span><span style="FONT-FAMILY: 宋体">属性</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。要给两个</span><span lang="EN-US">ImageList</span><span style="FONT-FAMILY: 宋体">指定不同的图像大小,应确保以相同的顺序给</span><span lang="EN-US">ImageList</span><span style="FONT-FAMILY: 宋体">添加条目。这样,每个</span><span lang="EN-US">ImageList</span><span style="FONT-FAMILY: 宋体">的索引就表示仅尺寸不同的相同图像。在本例中,</span><span lang="EN-US">ImageList</span><span style="FONT-FAMILY: 宋体">包含我们添加的每个国家的标记图标。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">窗体的顶部是一个组合框</span><span lang="EN-US">cbView</span><span style="FONT-FAMILY: 宋体">,它列出了</span><span lang="EN-US">4</span><span style="FONT-FAMILY: 宋体">个不同</span><span lang="EN-US">View</span><span style="FONT-FAMILY: 宋体">枚举值。把这些条目添加到</span><span lang="EN-US">cbView</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">cbView.Items.Add(View.LargeIcon);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">cbView.Items.Add(View.SmallIcon);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">cbView.Items.Add(View.List);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">cbView.Items.Add(View.Details);</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">cbView.SelectedIndex = 0;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">在</span><span lang="EN-US">cbView</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">SelectedIndexChanged</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">lvCountries.View =(View) cbView. SelectedItem;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">这行代码把</span><span lang="EN-US">lvCountries</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">View</span><span style="FONT-FAMILY: 宋体">属性设置为在</span><span lang="EN-US">ComboBox</span><span style="FONT-FAMILY: 宋体">控件中选中的新值。注意需要把它转换</span><span lang="EN-US">View</span><span style="FONT-FAMILY: 宋体">类型,因为对象从</span><span lang="EN-US">cbView</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">SelectedItem</span><span style="FONT-FAMILY: 宋体">属性中返回。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">最后,必须给</span><span lang="EN-US">Column</span><span style="FONT-FAMILY: 宋体">集合添加列。这些列在</span><span lang="EN-US">Details</span><span style="FONT-FAMILY: 宋体">视图中显示。在本例中添加了两列</span><span lang="EN-US">Country Name</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Currency</span><span style="FONT-FAMILY: 宋体">。列的顺序是</span><span lang="EN-US">ListViewItem</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">Text</span><span style="FONT-FAMILY: 宋体">,然后是</span><span lang="EN-US">ListViewItem.SubItem</span><span style="FONT-FAMILY: 宋体">集合中的每一项,按照它们在集合中的顺序显示。添加列时,需要创建一个</span><span lang="EN-US">ColumnHeader</span><span style="FONT-FAMILY: 宋体">对象,设置</span><span lang="EN-US">Text</span><span style="FONT-FAMILY: 宋体">属性、可选的</span><span lang="EN-US">Width</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Alignment</span><span style="FONT-FAMILY: 宋体">属性。在创建</span><span lang="EN-US">ColumnHeader</span><span style="FONT-FAMILY: 宋体">对象后,就可以把它添加到</span><span lang="EN-US">Column</span><span style="FONT-FAMILY: 宋体">属性中。添加列的另一种方法是使用</span><span lang="EN-US">Columns.Add</span><span style="FONT-FAMILY: 宋体">方法的重写版本,它允许传送</span><span lang="EN-US">Text</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">Width</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Alignment</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">lvCountries.Column.Add(&quot;Country&quot;,100,HorizontalAlignment.Left);</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">lvCountries.Column.Add(&quot;Currency&quot;,100,HorizontalAlignment.Left);</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果把</span><span lang="EN-US">AllowColumnReorder</span><span style="FONT-FAMILY: 宋体">属性设置为</span><span lang="EN-US">true</span><span style="FONT-FAMILY: 宋体">,用户就可以拖动列标题,重新安排列的顺序。</span></p>
<p class="MsoNormal"><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">上的</span><span lang="EN-US">CheckBoxes</span><span style="FONT-FAMILY: 宋体">属性在</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">的条目旁边显示复选框,允许用户在</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件中选择多个条目。使用</span><span lang="EN-US">CheckedItems</span><span style="FONT-FAMILY: 宋体">集合可以检查哪些项目被选中。</span></p>
<p class="MsoNormal"><span lang="EN-US">Alignment</span><span style="FONT-FAMILY: 宋体">属性设置</span><span lang="EN-US">Large</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Small</span><span style="FONT-FAMILY: 宋体">图标视图中图标的对齐方式。该值可以是</span><span lang="EN-US">ListViewAlignment</span><span style="FONT-FAMILY: 宋体">枚举中的任意值,即</span><span lang="EN-US">Default</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">Left</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">Top</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">SnapToGrid</span><span style="FONT-FAMILY: 宋体">。</span><span lang="EN-US">Default</span><span style="FONT-FAMILY: 宋体">值允许用户把图标放在任意位置。在选择</span><span lang="EN-US">Left</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">Top</span><span style="FONT-FAMILY: 宋体">时,条目应与</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件的左边或顶边对齐。在选择</span><span lang="EN-US">SnapToGrid</span><span style="FONT-FAMILY: 宋体">时,条目会捕捉到</span><span lang="EN-US">ListView</span><span style="FONT-FAMILY: 宋体">控件上不可见的栅格。</span><span lang="EN-US">AutoArrange</span><span style="FONT-FAMILY: 宋体">属性可以设置为布尔值,它会根据</span><span lang="EN-US">Alignment</span><span style="FONT-FAMILY: 宋体">属性自动对齐图标。</span></p></div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100165542.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100165544.htm">下一页</a>
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165543.htm'><font color='red'>19.3.9  ListView控件</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165540.htm'>19.3.6  HelpProvider组件</a></div><div style='float:right;width:49%'>·<a href='100165541.htm'>19.3.7  ImageList组件</a></div><div style='float:left;width:49%'>·<a href='100165542.htm'>19.3.8  Label控件</a></div><div style='float:right;width:49%'>·<a href='100165544.htm'>19.3.10  Panel控件</a></div><div style='float:left;width:49%'>·<a href='100165545.htm'>19.3.11  PictureBox控件</a></div><div style='float:right;width:49%'>·<a href='100165546.htm'>19.3.12  ProgressBar控件</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

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