textbox或combobox保持前几次输入的记录

qsjnl 2014-04-14 04:33:02
大家好!我想实现textbox或combobox下拉框提示前几次输入的结果。
用textbox绑定配置文件,
LibsDatabase.Properties.Settings.Default.Name = textBoxName.Text.Trim();LibsDatabase.Properties.Settings.Default.Save();

能实现保持最近一次输入的数据并显示在textbox上。
可是我想实现前几次的。
我一个思路是Properties.Settings的type设置成list,可是不知道怎么设置。
如果能保持前几次输入的记录,并智能提示,是不是要用combobox,textbox不知道怎么有下拉框。
谢谢!
...全文
518 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
双木宝宝 2014-04-15
  • 打赏
  • 举报
回复
如果是打开软件之后有效,关闭软件之后失效,可以使用List进行临时存储,在TextBox或者ComBoBox的EditEnd事件里使用List的Add方法即可。 如果需要关闭软件,下次继续打开,需要保存到数据库或者临时文件中,可以自定义规则(比如ini文件)也可以使用XML之类的,同样也是在EditEnd事件中写就好了。
吉尔伽美什 2014-04-15
  • 打赏
  • 举报
回复
引用 6 楼 qsjnl 的回复:
引用 3 楼 wind_cloud2011 的回复:
或保存到文本文件里,
谢谢你,是个办法哦。就是觉得文本文件不和程序一起,有点不方便。。。整不出来就试试文本文件。
在程序中创建一个XML文档来保存最近一个的数据,这样的话是“跟程序一起的”
wind_cloud2011 2014-04-14
  • 打赏
  • 举报
回复
文本文件与程序在同一个目录下阿,最好是做成数据库,一个查询语句就搞定
qsjnl 2014-04-14
  • 打赏
  • 举报
回复
引用 3 楼 wind_cloud2011 的回复:
或保存到文本文件里,
谢谢你,是个办法哦。就是觉得文本文件不和程序一起,有点不方便。。。整不出来就试试文本文件。
qsjnl 2014-04-14
  • 打赏
  • 举报
回复
引用 2 楼 liubei68 的回复:
winform还是webform?
winform~
qsjnl 2014-04-14
  • 打赏
  • 举报
回复
引用 1 楼 wind_cloud2011 的回复:
要用combobox,是将输入的内容写入到数据库,使用时,是从数据库读取最近几次的内容,就是最新的记录。
没有数据库,前几次输入的,我只会将最近一次的保存到配置文件中去
wind_cloud2011 2014-04-14
  • 打赏
  • 举报
回复
或保存到文本文件里,
吉尔伽美什 2014-04-14
  • 打赏
  • 举报
回复
winform还是webform?
wind_cloud2011 2014-04-14
  • 打赏
  • 举报
回复
要用combobox,是将输入的内容写入到数据库,使用时,是从数据库读取最近几次的内容,就是最新的记录。
vs2015+数据库,需要建的数据表如下: 1. “考试成绩管理系统用户登录”功能 具体要求: (1) 按照图示排列相应的控件,控件名称自定义,其中,界面中的图片可以不加; (2) 当输入正确的用户名和密码时,登录到主系统,如图所示,并且用户名或密码输入不正确时系统有所提示;当单击【取消】按钮时,用户名和密码被清空; (3) 程序中用到的数据库名为SCOREINFO,数据表名为userinfo,数据表结构如下图所示: (4) 数据表中的用户名和密码如下图。 2. 点击主窗体的“密码修改”菜单,完成“密码修改”功能,程序运行如下图所示: 具体要求: (1)此题必须使用数据库连接完成,原始密码必须为数据表里原有的数据,不使用数据库完成的为0分。 (2)需要建立数据库SCOREINFO及数据表userinfo,表的结构及数据第一部分的内容: (3)要有“原始密码输入错误”、“原始密码不能为空”及“两次输入密码不一致”的错误提示; (4)当单击【保存】按钮,新密码被更新到数据表中,不能更新的为0分; (5)单击【关闭】按钮,窗口关闭。 (6)3个Label;3个TextBox;2个Button 3. 完成“成绩查询”功能,程序运行如下图所示: 具体要求: (1) 按照图示排列相应的控件,界面下方是DataGridView控件; (2)程序用到的数据库名为SCOREINFO,数据表名为score,表结构如下: (3)完成的MainForm_Load事件处理程序:当加载窗体时,直接在窗体的dataGridView1控件中显示数据表的所有记录; (4)可以设查询条件:首先在组合框comboBox1中选择查询条件,并在textBox1中输入条件值(可以模糊查询,如按照姓名查询时,输入“王”,可以查所有姓王的同学的成绩),单击查询将结果显示在dataGridView1控件中。 (5)所需控件及属性:1个GroupBox,1个Label,Text为选择查询条件;1个ComboBox(Items:学号、姓名);1个TextBox;1个Button,Text为查询;1个DataGridView 4. 完成“课程信息修改”功能,程序运行如下图所示: 具体要求: (1)按照图示排列相应的控件,控件名称自定义,其中,程序刚开始运行时,“学分”和“课程编码”的文本框是只读的; (2)在数据库名为SCOREINFO中,创建数据表名为course,表结构如下: (3)当单击【查询】时,直接在窗体的dataGridView2控件中显示数据表的所有记录; (4)当选中DataGridView控件中的某一行记录时(DataGridView控件的Mouse_Click事件),“课程名字”、“学分”、“课程代码”文本框中分别显示该项对应的课程信息; (5)当选中某一行记录并单击【编辑】按钮时,【编辑】按钮变为【保存修改】,同时“学分”和“课程编码”的文本框恢复正常(ReadOnly属性为false);在文本框中修改相应的信息后单击【保存修改】,将修改后的数据更新到数据表中。 (6)所需控件及属性:1个GroupBox,3个Label;3个TextBoxtextBox2属性ReadOnly为True,textBox3属性ReadOnly为True);2个Button;1个DataGridView 5. 完成“课程信息删除”功能,程序运行如下图所示: 具体要求: (1)按照图示排列相应的控件,控件名称自定义,其中,程序刚开始运行时,“学分”和“课程编码”的文本框是只读的; (2)数据表名为course,表结构同第4部分: (3)当单击【查询】时,直接在窗体的dataGridView控件中显示数据表的所有记录; (4)当选中DataGridView控件中的某一行记录时,“课程名字”、“学分”、“课程代码”文本框中分别显示该项对应的课程信息; (5)当选中某一行记录并单击【删除】按钮时,则该行从数据表中删除。 (6)所需控件:3个Label;3个TextBoxtextBox2属性ReadOnly为True,textBox3属性ReadOnly为True);2个Button;1个DataGridView 6. 完成“课程信息添加”功能,程序运行如下图所示: 具体要求: (1)按照图示排列相应的控件,控件名称自定义; (2)程序用到的数据库和数据表名为course,表结构如下同第四部分: (3)当单击【查询】时,直接在窗体的dataGridView1控件中显示数据表的所有记 (4)当选中DataGridView控件中的某一行记录时,“课程名字”、“学分”、“课程代码”文本框中分别显示该项对应的课程信息; (5)当单击【添加】按钮时,在文本框中添加新的内容并将新内容添加到数据表中,并且在DataGridView控件中显示出新的课程信息 (6)所需控件:3个Label;3个TextBox;2个Button;1个DataGridView
例行更新,不过本次有新组件加入,感觉这次的组件早就应该有了,居然到现在才加入进来,不管怎么说有总比没有好。这次还是以改进为主,改进项占了大多数。废话不多说具体内容大家看更新说明吧!另外由于经常收到chm格式文件无法用的反馈,其实不是无法用,只是要授权。虽然已经解释多遍,但是依然有人不知道,索性就取消chm格式的文档了,今后统一采用exe+pdf格式,由于目前尚无时间制作pdf格式的api文档,所以1.5版中只有exe的,pdf格式将在下一版中提供。 jQuery EasyUI 1.5版本更新内容: Bug(修复) combobox:修复在加载包含所选项数据的时候不会触发“onSelect”事件的BUG; datagrid:修复在字段设置为一个空值的时候导致在某些情况下“updateRow”方法无法正常工作的BUG。 Improvement(改进) 一个label标签可以被关联到任意表单的字段上; combobox:改进在下拉项中“select”和“unselect”的规则; combobox:添加“limitToList”属性来限制只能输入在列表项中的内容; combogrid:允许用户快速克隆组件; form:添加“dirty”属性,允许用户只发送变更的字段内容; form:添加“resetDirty”方法; datagrid:允许用户在没有数据的时候显示一条消息(比如:无记录); textbox:添加“label”、“labelWidth”、“labelPosition”和“labelAlign”属性; spinner:添加“spinAlign”属性; calendar:允许用户在日历组件上显示周数(今年的第几周); window:添加“constrain”属性。 New Plugin(新组件) passwordbox:该插件允许用户在具有更好交互功能的输入框中输入密码; combotreegrid:该插件结合了combobox和treegrid组件。
很不错的哦,很好的Option Explicit Public gUserName As String Public gUserKind As String Public gLoginSucceeded As Boolean ' ****************************************************************************** '过程名:Main '说 明:系统启动函数 '参 数:无 '返回值:无 ' ****************************************************************************** Sub Main() '启动登陆窗体 Dim fLogin As New frmLogin fLogin.Show vbModal If Not gLoginSucceeded Then MsgBox "系统启动失败,请重试!", vbOKOnly + vbExclamation, "警告" End If Unload fLogin End Sub ' ****************************************************************************** '函数名:ConnectString '说 明:设置数据库连接字符串,连接数据库前要首先通过ODBC建立文件DSN:house.dsn '参 数:无 '返回值:数据库连接字符串 ' ****************************************************************************** Public Function ConnectString() As String ConnectString = "Provider=SQLOLEDB.1;Password=sa;User ID=sa;Initial Catalog=DBHouse;Data Source=1D5C3B643D354AB;" End Function ' ****************************************************************************** '函数名:ExecuteSQL '说 明:执行SQL语句 '参 数:SQL As String, rst As ADODB.Recordset, Optional enableWrite As Boolean '返回值:SQL语句执行成功——true,失败——false ' ****************************************************************************** Public Function ExecuteSQL(ByVal SQL As String, rst As ADODB.Recordset, _ Optional enableWrite As Boolean = True) As Boolean Dim con As ADODB.Connection Dim sTokens() As String On Error GoTo Execute_Error sTokens = Split(SQL) Set con = New ADODB.Connection con.Open ConnectString Set rst = New ADODB.Recordset If enableWrite Then rst.Open Trim$(SQL), con, adOpenStatic, adLockOptimistic Else rst.Open Trim$(SQL), con, adOpenStatic, adLockReadOnly End If ExecuteSQL = True Exit Function Execute_Error: ExecuteSQL = False Exit Function End Function ' ****************************************************************************** '函数名:DBExist '说 明:判断数据库中是否存在记录 '参 数:SQL As String '返回值:存在则返回记录数,不存在返回0 ' ****************************************************************************** Public Function DBExist(ByVal SQL As String) As Integer Dim con As ADODB.Connection Dim sTokens() As String Dim flag As String Dim rst As ADODB.Recordset sTokens = Split(SQL) Set con = New ADODB.Connection con.Open ConnectString flag = ExecuteSQL(SQL, rst, False) '判断该记录是否存在 If rst.RecordCount 0 Then DBExist = rst.RecordCount Else DBExist = 0 End If con.Close End Function ' ****************************************************************************** '函数名:TxtIsNull '说 明:判断输入内容是否为空 '参 数:text As TextBox '返回值:存在——true,不存在——false ' ****************************************************************************** Public Function TxtIsNull(txt As TextBox) As Boolean If Trim(txt.Text) = "" Then TxtIsNull = True txt.SetFocus txt.BackColor = &HFF0000 Else TxtIsNull = False End If End Function ' ****************************************************************************** '函数名:IsOverStringLen '说 明:判断输入内容是否超过允许最大值lenthText '参 数:str As String, lenthText As Integer '返回值:不超过——true,超过——false ' ****************************************************************************** Public Function IsOverStringLen(ByVal str As String, lenthText As Integer) As Boolean If Len(Trim(str)) > lenthText Then IsOverStringLen = True Else IsOverStringLen = False End If End Function ' ****************************************************************************** '过程名:viewData '说 明:将数据在datagrid中显示 '参 数:txtSql as String,dataGridAll As DataGrid '返回值:存在则返回记录数,不存在返回0 ' ****************************************************************************** Public Function viewData(ByVal txtSql As String, dataGridAll As DataGrid) As Integer Dim rstData As ADODB.Recordset Dim result As String '检索需要的信息 result = ExecuteSQL(txtSql, rstData, False) '设置datagrid的数据源 If rstData.RecordCount 0 Then Set dataGridAll.DataSource = rstData viewData = rstData.RecordCount Else MsgBox "还没有数据!", vbOKOnly + vbExclamation, "警告" viewData = 0 End If End Function ' ****************************************************************************** '过程名:ISEquelLen '说 明:判断文本框中内容是否等于给定的长度 '参 数:txt As TextBox, intlen As Integer '返回值:超过返回值为True,否则为false ' ****************************************************************************** Public Function ISEquelLen(ByVal txt As TextBox, intlen As Integer) As Boolean If Len(txt.Text) intlen Then txt.SetFocus txt.BackColor = &HFF0000 ISEquelLen = False Else ISEquelLen = True End If End Function ' ****************************************************************************** '过程名:ComboData '说 明:为Combo赋值 '参 数:txt as String,cmb as ComboBox '返回值:存在记录值返回true,否则返回false ' ******************************************************************************v Public Function ComboData(ByVal txt As String, cbo As ComboBox) As Boolean Dim res As String Dim rstcbo As ADODB.Recordset Dim i As Integer res = ExecuteSQL(txt, rstcbo, False) If rstcbo.RecordCount 0 Then For i = 0 To rstcbo.RecordCount - 1 cbo.AddItem (rstcbo.Fields(1)) cbo.ItemData(cbo.NewIndex) = rstcbo.Fields(0) rstcbo.MoveNext Next ComboData = True Else ComboData = False End If End Function ' ****************************************************************************** '过程名:ComboYear '说 明:为年份列表赋值 '参 数:Combo as Combobox '返回值:无 ' ******************************************************************************v Public Sub ComboYear(Combo As ComboBox) Dim i As Integer For i = 1990 To 2050 Combo.AddItem (CStr(i)) Next End Sub ' ****************************************************************************** '过程名:ComboMonth '说 明:为月份列表赋值 '参 数:Combo as Combobox '返回值:无 ' ******************************************************************************v Public Sub ComboMonth(Combo As ComboBox) Dim i As Integer For i = 1 To 12 If Len(CStr(i)) 2 Then Combo.AddItem ("0" + CStr(i)) Else Combo.AddItem (CStr(i)) End If Next End Sub ' ****************************************************************************** '过程名:ComboDate '说 明:为日期列表赋值 '参 数:Combo as Combobox '返回值:无 ' ******************************************************************************v Public Sub ComboDate(Combo As ComboBox) Dim i As Integer For i = 1 To 31 If Len(CStr(i)) 2 Then Combo.AddItem ("0" + CStr(i)) Else Combo.AddItem (CStr(i)) End If Next End Sub ' ****************************************************************************** '过程名:ComboHour '说 明:为小时列表赋值 '参 数:Combo as Combobox '返回值:无 ' ******************************************************************************v Public Sub ComboHour(Combo As ComboBox) Dim i As Integer For i = 0 To 24 If Len(CStr(i)) 2 Then Combo.AddItem ("0" + CStr(i)) Else Combo.AddItem (CStr(i)) End If Next End Sub ' ****************************************************************************** '过程名:ComboMin '说 明:为分钟列表赋值 '参 数:Combo as Combobox '返回值:无 ' ******************************************************************************v Public Sub ComboMin(Combo As ComboBox) Dim i As Integer For i = 0 To 60 If Len(CStr(i)) 2 Then Combo.AddItem ("0" + CStr(i)) Else Combo.AddItem (CStr(i)) End If Next End Sub ' ****************************************************************************** '过程名:setCboDataReg() '说 明:为cboReg赋值 '参 数:无 '返回值:无 ' ******************************************************************************v Public Sub setCboDataReg(Combo As ComboBox) Dim txtReg As String Dim resReg As String txtReg = "select RegId,RegName from tbRegion" resReg = ComboData(txtReg, Combo) End Sub ' ****************************************************************************** '过程名:setCboDataItem '说 明:为cboItem赋值 '参 数:无 '返回值:无 ' ******************************************************************************v Public Sub setCboDataItem(Combo As ComboBox) Dim txtItem As String Dim resItem As String txtItem = "select ItemId,ItemName from tbItem" resItem = ComboData(txtItem, Combo) End Sub ' ****************************************************************************** '过程名:setCboDataStru() '说 明:为cboStru赋值 '参 数:无 '返回值:无 ' ******************************************************************************v Public Sub setCboDataStru(Combo As ComboBox) Dim txtStru As String Dim resStru As String txtStru = "select StruId,StruName from tbStru" resStru = ComboData(txtStru, Combo) End Sub ' ****************************************************************************** '过程名:getCboRegId() '说 明:获取显示检索部分区域名称的ComboBox所对应的Id值 '参 数:无 '返回值:无 ' ****************************************************************************** Public Sub getCboId(Combo As ComboBox, str As String) If Combo.Text = "" Then str = "" Else str = CStr(Combo.ItemData(Combo.ListIndex)) If Len(str) 5 Then Select Case Len(str) Case 4 str = "0" + str Case 3 str = "00" + str Case 2 str = "000" + str Case 1 str = "0000" + str End Select End If End If End Sub ' ****************************************************************************** '过程名:setCboIdData '说 明:为Combo赋值 '参 数:txt as String,cmb as ComboBox '返回值:存在记录值返回true,否则返回false ' ******************************************************************************v Public Sub setCboIdData(cbo As ComboBox) Dim res As String Dim rstcbo As ADODB.Recordset Dim i As Integer Dim strSQL As String strSQL = "select HouseId from tbHouse" res = ExecuteSQL(strSQL, rstcbo, False) If rstcbo.RecordCount 0 Then For i = 0 To rstcbo.RecordCount - 1 cbo.AddItem (rstcbo.Fields(0)) rstcbo.MoveNext Next End If End Sub ' ****************************************************************************** '过程名:setLabelData '说 明:为Combo赋值 '参 数:txt as String,cmb as ComboBox '返回值:存在记录值返回true,否则返回false ' ******************************************************************************v Public Sub setLabelData(cbo As ComboBox, lbl As Label) Dim res As String Dim rstcbo As ADODB.Recordset Dim strSQL As String strSQL = "select HouseName from tbHouse where HouseId='" + Trim(cbo.Text) + "'" res = ExecuteSQL(strSQL, rstcbo, False) If rstcbo.RecordCount 0 Then lbl.Caption = rstcbo.Fields(0) End If End Sub

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧