好像没有什么好办法,你只有不用数值型的文本框,还是改用字符型的,这样不论点击哪里光标都会出现在最前面,然后在代码中用val()函数将其转换为数值型
创新互联专注于企业全网营销推广、网站重做改版、杂多网站定制设计、自适应品牌网站建设、HTML5、购物商城网站建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为杂多等各大城市提供网站开发制作服务。
如图:
图片文件:2562.bmp
1、读 BMP 文件,并将字节内容显示在窗体 Text1 中
'按二进制格式读取BMP文件
Dim FileNum As Long
Dim FileName As String
Dim tmpStr As Byte
' Dim i As Integer
Dim readStr As String
FileName = "D:\vbtemp\2562.bmp"
FileNum = FreeFile()
Open FileName For Binary As FileNum
readStr = ""
Text1.Text = ""
' i = 1
Do While Not EOF(FileNum)
Get #FileNum, , tmpStr
If Len(Hex(tmpStr)) = 1 Then
readStr = readStr "0" Hex(tmpStr)
Else
readStr = readStr Hex(tmpStr)
End If
' i = i + 1
Loop
Text1 = readStr
Close FileNum
2、将该窗体中 Text1中的内容保存为另一个 BMP 文件
'把Text1 中的内容按二进制格式写入 BMP 文件
Dim FileNum As Long
Dim FileName As String
Dim tmpStr As Byte
Dim i As Integer
Dim readStr As String
FileName = "D:\vbtemp\256-2.bmp"
FileNum = FreeFile()
Open FileName For Binary As FileNum
readStr = ""
For i = 1 To Len(Text1) Step 2
readStr = "H" Mid(Text1, i, 2)
tmpStr = Val(readStr)
Put #FileNum, , tmpStr
Next i
Close FileNum
3、这里需要注意的是:bmp文件不能太大,因为两段程序都是循环读写文件,如果bmp文件的字节太大,直接影响读写的效果,而且 TextBox 控件中存放字符串的长度也有限制。我提供的源图2562.bmp 文件大小为4K.
保存路径最好,我几个项目都是这样。
具体如何保存,需要看你使用什么样的上传控件才可以定。
个人推荐一个是CFUPDATE,不错的控件,你可以了解,如果有不清楚,可以再问我。
我不是大神。。我我我我我。。。看不懂你再说什么。。制作图片么?
这个做法应该是图方便的加密解密做法。按你的C#代码来改的话是这样的。
'Imports System.IO
Public Function MapPath(ByVal virtualPath As String) As String
' Return System.Web.Hosting.MapPath(virtualPath)
' 猜想是这个 MapPath 函数
' 如果不是那就自己还原原来C#代码里的那个MapPath
End Function
Public Sub GetImage()
Dim s As System.IO.Stream = System.IO.File.Open(MapPath("33.jpg"), System.IO.FileMode.Open)
Dim leng As Integer = 0
If s.Length Int32.MaxValue Then
leng = s.Length
End If
Dim by(leng) As Byte
s.Read(by, 0, leng) ' 把图片读到字节数组中
s.Close()
Dim str As String = Convert.ToBase64String(by) ' 把字节数组转换成字符串
Dim sw As System.IO.StreamWriter = System.IO.File.CreateText(MapPath("11.txt")) ' 存入11.txt文件
sw.Write(str)
sw.Close()
sw.Dispose()
End Sub
' 把字符串还原成图片
Public Sub CreateImg()
Dim sr As New System.IO.StreamReader(MapPath("11.txt"))
Dim s As String = sr.ReadToEnd()
sr.Close()
Dim buf As Byte() = Convert.FromBase64String(s) ' 把字符串读到字节数组中
Dim ms As New System.IO.MemoryStream(buf)
Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)
img.Save(MapPath("12.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
ms.Close()
ms.Dispose()
End Sub
在access数据库里将字段的类型设置为ole对象
Public img As Byte() '图片处理用的字节数组
img=My.Computer.FileSystem.ReadAllBytes(filePath)'filePath是你图片文件的路径
剩下的就是数据库插入操作了
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data.mdb")
Dim comm As OleDb.OleDbCommand
comm = New OleDb.OleDbCommand( _
"INSERT INTO Photo(BuFan_F,PhotoNo,Photo) Values('" Me.CobBuFan.Text.Trim "','" Me.txtNo.Text.Trim "',@image)", cn)
'向数据库添加存储了图片数据的二进制数组
comm.Parameters.Add("@image", _
OleDb.OleDbType.Binary, img.Length).Value = img
If cn.State = ConnectionState.Closed Then cn.Open() '打开数据库连接
comm.ExecuteNonQuery() '执行数据库命令
If cn.State = ConnectionState.Open Then cn.Close() '关闭数据库连接
MessageBox.Show("图片成功保存到数据库", "完成", MessageBoxButtons.OK, MessageBoxIcon.Information)