Previous topicNext topic
Help > 开发指南 > 编程基础 > 弹出对话框 >
InputValueBox

InputValueBox将弹出一个对话框,接受用户输入一个值或者一个区间以返回。如果正常操作点击确定返回True,如果有异常或点取消则返回False.返回False时,传入变量传出的值认为无效。

InputValueBox有两个重载,一种是针对单个输入值的。

public Boolean InputValueBox(ref Object inputVal,String Caption,String information,InputValueTypeEnum InputType);

另外一种是针对2个输入值,定义一个区间的。比如数值区间、时间区间。主要是用来获得一个区间范围,当然就只能针对数值和日期型。

public Boolean InputValueBox(ref Object inputValue1,ref Object inputValue2,String Caption,String information,InputValueTypeEnum InputType);

参数:

 参数名称  说明
 inputValue1 Object类型,要传入的默认值1,区间的开始值,最后用户设置的值也以此变量返回。
 inputValue2 Object类型,要传入的默认值2,区间的结束值,最后用户设置的值也以此变量返回。
 Caption 对话框的标题。
 information 对话框提示给用户的信息。
 InputType

 InputValueTypeEnum枚举值之一,指示用户输入的数据类型。InputValueTypeEnum型枚举包括以下可选值:

SingleString,单字符串型,适合只有一个输入值的场景。
SingleNumber,单数值型,适合只有一个输入值的场景。
SingleDateTime,单日期型,适合只有一个输入值的场景。
BetweenNumber,数值区间输入,适合只有两个输入值的场景。
BetweenDateTime,日期区间输入,适合只有两个输入值的场景。

示例1:单参数录入框

VB.Net
'为了便于将最终的结果以值的形式传递出来,这里必须定义一个Object类型,
'但是可以赋值一个初始值
Dim obj As Object=5
If Proj.InputValueBox(obj,"新增行","请输入想要新增的行数",InputValueTypeEnum.SingleNumber) Then
    If Proj.CurrentGrid IsNot Nothing Then
        Proj.CurrentGrid.DataTableHelp.DataRows.AddNew(obj)
    End If
End If

C#语言因为是强类型的,所以当获得object类型后,需要进行一下类型转换才可以正常使用。

 C#
// 为了便于将最终的结果以值的形式传递出来,这里必须定义一个Object类型,
// 但是可以赋值一个初始值
object obj = 5;
if (Proj.InputValueBox(obj, "新增行", "请输入想要新增的行数", InputValueTypeEnum.SingleNumber))
{
    if (Proj.CurrentGrid != null)
    {
        Proj.CurrentGrid.DataTableHelp.DataRows.AddNew(obj.CType<int>()); //C#语言需要对Object类型进行一下类型转换。
    }
}

示例2:2个参数录入框

VB.Net
'为了便于将最终的结果以值的形式传递出来,这里必须定义为Object类型
Dim objValue1 As Object = DateTime.Now.GetFirstDayOfMonth(0) '获得本月第一天的时间初始化给第一个参数
Dim objValue2 As Object = DateTime.Now.GetLastDayOfMonth(0) '获得本月最后一天的时间初始化给第二个参数
If Proj.InputValueBox(objValue1, objValue2, "日期筛选", "请输入要筛选的日期范围:", InputValueTypeEnum.BetweenDateTime) Then '指定日期范围输入
    If Proj.CurrentSmGrid IsNot Nothing Then
        '根据返回值计算筛选条件
        Dim strFilter As String = String.Format("{0}>=#{1}# and {0}<#{2}#", "日期", objValue1.ToString(), objValue2.ToString())
        '对表数据进行筛选
        Proj.CurrentSmGrid.TableBindingSource.Filter = strFilter
    End If
End If

 

 C#
// 为了便于将最终的结果以值的形式传递出来,这里必须定义为Object类型,
object objValue1 = DateTime.Now.GetFirstDayOfMonth(0); //获得本月第一天的时间初始化给第一个参数
object objValue2 = DateTime.Now.GetLastDayOfMonth(0);  //获得本月最后一天的时间初始化给第二个参数
if (Proj.InputValueBox(ref objValue1, ref objValue2, "日期筛选", "请输入要筛选的日期范围:", InputValueTypeEnum.BetweenDateTime)) //指定日期范围输入
{
    if(Proj.CurrentSmGrid!=null)
    {
        //根据返回值计算筛选条件
        string strFilter=string.Format("{0}>=#{1}# and {0}<#{2}#", "日期", objValue1.ToString(), objValue2.ToString());
        //对表数据进行筛选
        Proj.CurrentSmGrid.TableBindingSource.Filter=strFilter;
    }
}