十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
DomainUpDown 控件在外观上都是由一个文本框和一对可以上下移动列表的箭头组成 如下图一所示
创新互联专注于山阳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供山阳营销型网站建设,山阳网站制作、山阳网页设计、山阳网站官网定制、小程序制作服务,打造山阳网络公司原创品牌,更为您提供山阳网站排名全网营销落地服务。
图一 控件外观
其功能类似于组合框 您可以将任何类型的数据放入列表 同时在文本框中显示单个字符串值 让用户可以通过单击上箭头和下箭头来浏览数据
在工具箱中 它的图标显示如下图二所示
图二 工具箱中的DomainUpDown 控件
DomainUpDown 控件的主要属性为 Items ReadOnly Wrap
一 改变文字显示与上下箭头的方向
我们可以通过 TextAlign 属性来改变控件中的文本对齐方式 通过 UpDownAlign 属性改变它的上下按钮对齐方式
示例 在DomainUpDown 控件 Text 属性中输入 即文本框显示的字符 把 TextAlign 属性 设置为Center UpDownAlign 属性设置为Left 显示效果如下图三所示
图三 改变DomainUpDown 控件显示外观
二 ReadOnly 属性
ReadOnly 属性用于设置用户是否只能使用向上或向下按钮更改文本 默认值为False 如果为False 则用户可以在文本框中进行输入 如果为True 则文本输入框变为灰色 用户只能通过Up Down按钮来选择列表 且当用户使用键盘键入的时候 控件自动完成匹配 如假设列表中存在下面三个字符串的项 aa b 控件ReadOnly 属性为True 则当我们在文本框中键入 时候 控件将自动匹配字符串 如下图四所示
图四 DomainUpDown 自动匹配用户输入
三 为DomainUpDown 控件添加\删除列表项
通过 字符串集合编辑器 编辑
我们可以在设计视图中为 DomainUpDown 控件添加或者删除列表项 步骤如下
在 属性 窗口中找到 Items 属性 单击属性后的 按钮 弹出 字符串集合编辑器 然后进行编辑 注意每行为一个项
使用代码添加\删除
可以使用 Items 集合的 Add 方法将项添加到项列表的末尾 使用 Insert 方法将项插入到列表中的指定位置
可以使用 Items 集合的 Remove 方法按照名称移除项 使用 RemoveAt 方法按照项的位置移除项
示例代码如下
在控件列表尾部添加一个字符串 cccc
DomainUpDown Items Add( cccc )
把字符串 cccc 插入到索引位置 (提示 索引是从 开始)
DomainUpDown Items Insert( cccc )
删除列表中的字符串为 cccc 的项
DomainUpDown Items Remove( cccc )
删除列表中索引位置为 的项
DomainUpDown Items RemoveAt( )
使用Clear方法清除DomainUpDown 控件的所有项
DomainUpDown Items Clear()
四 DomainUpDown 控件的其它属性
Sorted 属性 指示项集合是否排序 当 Sorted 设置为 true 时 将按字母顺序对集合排序 默认为False
Wrap 属性 当 Wrap 设置为 true 时 如果达到了集合中的最后一项并继续滚动 则列表将从第一项重新开始 看起来像是连续的
lishixinzhi/Article/program/net/201311/11362
处理数据行(DataRow)
Windows窗体中的数据绑定列表框和组合框很节省时间 典型的代码如下(假定已经建立了SqlDataAdapter或者其它部件获取数据)
Dim ds As New DataSet() SqlDataAdapter Fill(ds Customers ) ListBox DataSource = ds Tables( Customers ) ListBox DisplayMember = CompanyName ListBox ValueMember = CustomerID
在这种情况下 代码使用Northwind数据库的顾客记录工作 DisplayMember属性设置为你希望用户在列表框中看到的记录字段 它是customers表的CompanyName 通常ValueMember属性设置为数据表中的一个键字段 对于customer来说是CustomerID 一旦用户选择了列表框中的一行 很容易使用列表框的SelectedValue属性获得键字段
MsgBox(ListBox SelectedValue)
但是有可能需要一个与被选择项相关的整个数据行对象的引用 例如 如果被选择的行需要被删除 就不知道键了 你需要一个数据行的引用以使用Delete方法
典型的Visual Basic开发者通常这样想 我已经得到了该行的键了 我将编写一些逻辑来查找使用该键的行 这样可以实现 但是有更好的实现方法 可以使用一行代码获取与列表框中选项关联的数据行
Dim dr As DataRow = CType(ListBox SelectedItem DataRowView) Row
通常该逻辑不会凭直觉出现 即使对经验丰富的开发者 为了解释这是怎样实现的 我把上面的一行拆成几行 下面的代码与上面代码的功能相同
Dim drv As DataRowView drv = CType(ListBox SelectedItem DataRowView) Dim dr As DataRow dr = drv Row
DataRowView类是数据行的包装 它被多个Windows窗体控件使用 它使得显示与控件中的数据行相关的数据更加容易 当列表框被数据绑定到数据表时(假定列表框中的有些行当前被选定了) 列表框的SelectedItem属性保存了一个DataRowView对象
这意味着我们能把列表框的SelectedItem属性转换到DataRowView对象 这就是上面代码中的第二行实现的 接着DataRowView暴露一个Row属性 它指向被包装的数据行 上面的代码声明了一个数据行并设置了Row属性
转换对象的类型以访问它的接口的技术在Visual Basic 中不是经常使用 但是在Visual Basic NET中这是经常的 有了上面的例子后 大多数有经验的开发者迅速跟上了这种技术
数据行的引用(dr)可用于用任何方式维护行 访问数据行中的任何特定字段是可行的 行中的数据可以被改变 能使数据行的Delete方法把该行标识为删除 或者从数据表的行集合中删除该行 下面的代码标识删除了一行
dr Delete()
lishixinzhi/Article/program/net/201311/12974
VB.NET可选参数的默认值必须是一个常数表达式。
过程定义中跟在可选参数后的每个参数也都必须是可选的。
下面的语法显示带VB.NET可选参数的过程声明:
Sub sub name(ByVal parameter 1 As data type 1,
Optional ByVal parameter 2 As data type 2 = default value)
调用带VB.NET可选参数的过程
过程在运行时无法检测到给定的参数是否已被省略,或者调用代码是否已显式提供默认值。如果需要弄清楚这一点,可以设置一个不可能的值作为默认值。下面的过程定义了可选参数 office,并测试其默认值 QJZ 以查看它在调用中是否已被省略:
Visual Basic
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.WriteLine("office not supplied -- using Headquarters")
office = "Headquarters" End If
' Insert code to notify headquarters or specified office.
End Sub
如果可选参数是像 String 这样的引用类型,只要它不是该变量所预期的值,就可以使用 Nothing 作为默认值。
VB.NET可选参数和重载
定义带可选参数的过程的另一种方法是使用重载。如果有一个可选参数,可以定义过程的两个重载版本,一个接受此参数,另一个则不带参数。此方法随可选参数数目的增加而变得更复杂。然而,这样做的优点是可以完全确定调用程序是否提供了每个VB.NET可选参数。