VB程序员博客
01 27th, 2010
如题,先谢谢!
你加了么?
还是和db绑顶的。
是和记录集绑定的,用这个语句:
Set MSHFlexGrid1.DataSource = rs
然后我再用下面的语句来控制其显示效果
With MSHFlexGrid2
.AllowUserResizing = 1
.ScrollTrack = True
.ColWidth(0) = 0
.ColWidth(1) = 1300
.Row = 0
For i = 0 To .Cols - 1
.Col = i
.CellAlignment = flexAlignCenterCenter
.CellFontBold = True
Next i
End With
但就是不知道如何控制不让其显示列标题
你是不想显示标题还是标题那行?
我是不想显示比如标题那一行(即第一行),比如这一行有字段:“姓名”、“学号”…
msf好像不支持rowhidden,问king04要个vsf
<
<
01 27th, 2010
如题,先谢谢!
你加了么?
还是和db绑顶的。
是和记录集绑定的,用这个语句:
Set MSHFlexGrid1.DataSource = rs
然后我再用下面的语句来控制其显示效果
With MSHFlexGrid2
.AllowUserResizing = 1
.ScrollTrack = True
.ColWidth(0) = 0
.ColWidth(1) = 1300
.Row = 0
For i = 0 To .Cols - 1
.Col = i
.CellAlignment = flexAlignCenterCenter
.CellFontBold = True
Next i
End With
但就是不知道如何控制不让其显示列标题
你是不想显示标题还是标题那行?
我是不想显示比如标题那一行(即第一行),比如这一行有字段:“姓名”、“学号”…
msf好像不支持rowhidden,问king04要个vsf
<
<
10 5th, 2008
我有一个文本框,输入身份证号码,正常情况下失去焦点后会自动判断身份证号码是否为空或校验码是否正确,提示是否重新输入.
新增记录时这样处理会好些!
但如果按新增记录键后,又不想再编辑了,这样就要按取消按钮,但是身份证号码文本框抢先触发了lostfocus事件,这时如何做到:如果我按了取消,就不要触发此文本框的lostfoucs事件?
谢谢!
不用lostfocus,在其他控件的gotfocus事件里判断
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
本来一般情况下是可以使用此方法的,但这里不行,我想办法避开了身份证号码的获得焦点,也就是在按取消前不要让身份证号码获得焦点,这样就避免了这种情况发生,问题已经解决了
在Text1_LostFocus 中设置一下就可以了
08 2nd, 2008
如题 如何不打开网页而快速获得网页源代码?
如作成函数 gethtml( url )
的形式
直接调用 text1.text=gethtml("http://www.ssssss.com")
如何做呢?网上很多参考的,速度好象不是太好
麻烦给个例子啊,我用WebBrowser1,但是必须打开网页,用1net,但是有的网站打不开(浏览器可以打开)
http://www.m5home.com/blog/article.asp?id=65
这里有你需要的东西.
注意HTTP协议部分,可以指定要下载的内容的偏移量与长度.
好的,谢谢,我先去看看
Function bytes2BSTR(arrBytes)
strReturn = ""
arrBytes = CStr(arrBytes)
For i = 1 To LenB(arrBytes)
ThisCharCode = AscB(MidB(arrBytes, i, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(arrBytes, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
Public Function GetHtml(ByVal sURL As String) As String
Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
xmlHTTP1.Open "get", sURL, True
xmlHTTP1.send
While xmlHTTP1.ReadyState <> 4
DoEvents
Wend
GetHtml = bytes2BSTR(xmlHTTP1.responseBody)
Set xmlHTTP1 = Nothing
End Function
本模块用于下载网页 或 文件 到本地
- VB code
-
Sub Download(UrtFile As String, LocalFile As String) Dim bData() As Byte Dim intFile As Integer Dim i As Integer Dim ttt As String intFile = FreeFile() On Error Resume Next Kill LocalFile On Error GoTo 0 bData() = MDIForm1.Inet1.OpenURL(UrtFile, icByteArray) Open LocalFile For Binary Access Write As #intFile Put #intFile, , bData() Close #intFile Exit Sub Err1: MsgBox "error!" Resume End Sub
推荐的方法:
- VB code
-
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer Private Const IF_FROM_CACHE = &H1000000 Private Const IF_MAKE_PERSISTENT = &H2000000 Private Const IF_NO_CACHE_WRITE = &H4000000 Private Const BUFFER_LEN = 256 Public Function GetUrlSource(sURL As String) As String Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String Dim hInternet As Long, hSession As Long, lReturn As Long hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0) If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0) If hInternet Then iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sBuffer Do While lReturn <> 0 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sData + Mid(sBuffer, 1, lReturn) Loop End If If InStr(1, sData, Chr(0)) Then sData = Mid(sData, 1, InStr(1, sData, Chr(0)) - 1) iResult = InternetCloseHandle(hInternet) GetUrlSource = sData End Function
用法:
text1.text=GetUrlSource("http://www.163.com")
happy_sea,实际应用的时候不能读出,出来的效果是,一片空白
我的代码是测试过的,没有问题。
我看了你发的私信,里面的url应该是完整网址包括"http://"部分。
谢谢了,最后一点问题,为什么出来的是乱码?还有怎么限制了长度?如何修正?
限制长度的问题,把那句
If InStr(1, sData, Chr(0)) Then sData = Mid(sData, 1, InStr(1, sData, Chr(0)) - 1)
改成
If InStr(1, sData, Chr(0)) Then sData = Replace(sData, Chr(0), "")
另外乱码的问题(个别汉字会变成乱码)可能不好解决,用inet取含中文的网页源码也可能会返回乱码,增大缓冲区长度会稍好一些,比如Private Const BUFFER_LEN = 1024
用WINSOCK自己构造HTTP请求,直接返回数据吧.
想要哪一部分就请求哪一部分.
Public Function BytesToBstr(body, cset) '中文处理
Dim objstream As New ADODB.Stream
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = cset ' 如:"GB2312","UTF-8"等等
BytesToBstr = objstream.ReadText
objstream.Close
Set objstream = Nothing
End Function
Public Function GetHtml(ByVal sURL As String) As String
Set xmlhttp1 = CreateObject("Microsoft.XMLHTTP")
xmlhttp1.Open "get", sURL, True
xmlhttp1.send
While xmlhttp1.ReadyState <> 4
DoEvents
Wend
'GetHtml = bytes2BSTR(xmlHTTP1.responseBody)
GetHtml = BytesToBstr(xmlhttp1.responsebody, "UTF-8")
Set xmlhttp1 = Nothing
End Function
谢谢各位,多一个朋友多一种选择啊
08 1st, 2008
如题 如何不打开网页而快速获得网页源代码?
如作成函数 gethtml( url )
的形式
直接调用 text1.text=gethtml("http://www.ssssss.com")
如何做呢?网上很多参考的,速度好象不是太好
麻烦给个例子啊,我用WebBrowser1,但是必须打开网页,用1net,但是有的网站打不开(浏览器可以打开)
http://www.m5home.com/blog/article.asp?id=65
这里有你需要的东西.
注意HTTP协议部分,可以指定要下载的内容的偏移量与长度.
好的,谢谢,我先去看看
Function bytes2BSTR(arrBytes)
strReturn = ""
arrBytes = CStr(arrBytes)
For i = 1 To LenB(arrBytes)
ThisCharCode = AscB(MidB(arrBytes, i, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(arrBytes, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
Public Function GetHtml(ByVal sURL As String) As String
Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
xmlHTTP1.Open "get", sURL, True
xmlHTTP1.send
While xmlHTTP1.ReadyState <> 4
DoEvents
Wend
GetHtml = bytes2BSTR(xmlHTTP1.responseBody)
Set xmlHTTP1 = Nothing
End Function
本模块用于下载网页 或 文件 到本地
- VB code
-
Sub Download(UrtFile As String, LocalFile As String) Dim bData() As Byte Dim intFile As Integer Dim i As Integer Dim ttt As String intFile = FreeFile() On Error Resume Next Kill LocalFile On Error GoTo 0 bData() = MDIForm1.Inet1.OpenURL(UrtFile, icByteArray) Open LocalFile For Binary Access Write As #intFile Put #intFile, , bData() Close #intFile Exit Sub Err1: MsgBox "error!" Resume End Sub
推荐的方法:
- VB code
-
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer Private Const IF_FROM_CACHE = &H1000000 Private Const IF_MAKE_PERSISTENT = &H2000000 Private Const IF_NO_CACHE_WRITE = &H4000000 Private Const BUFFER_LEN = 256 Public Function GetUrlSource(sURL As String) As String Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String Dim hInternet As Long, hSession As Long, lReturn As Long hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0) If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0) If hInternet Then iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sBuffer Do While lReturn <> 0 iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn) sData = sData + Mid(sBuffer, 1, lReturn) Loop End If If InStr(1, sData, Chr(0)) Then sData = Mid(sData, 1, InStr(1, sData, Chr(0)) - 1) iResult = InternetCloseHandle(hInternet) GetUrlSource = sData End Function
用法:
text1.text=GetUrlSource("http://www.163.com")
happy_sea,实际应用的时候不能读出,出来的效果是,一片空白
我的代码是测试过的,没有问题。
我看了你发的私信,里面的url应该是完整网址包括"http://"部分。
谢谢了,最后一点问题,为什么出来的是乱码?还有怎么限制了长度?如何修正?
限制长度的问题,把那句
If InStr(1, sData, Chr(0)) Then sData = Mid(sData, 1, InStr(1, sData, Chr(0)) - 1)
改成
If InStr(1, sData, Chr(0)) Then sData = Replace(sData, Chr(0), "")
另外乱码的问题(个别汉字会变成乱码)可能不好解决,用inet取含中文的网页源码也可能会返回乱码,增大缓冲区长度会稍好一些,比如Private Const BUFFER_LEN = 1024
用WINSOCK自己构造HTTP请求,直接返回数据吧.
想要哪一部分就请求哪一部分.
Public Function BytesToBstr(body, cset) '中文处理
Dim objstream As New ADODB.Stream
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = cset ' 如:"GB2312","UTF-8"等等
BytesToBstr = objstream.ReadText
objstream.Close
Set objstream = Nothing
End Function
Public Function GetHtml(ByVal sURL As String) As String
Set xmlhttp1 = CreateObject("Microsoft.XMLHTTP")
xmlhttp1.Open "get", sURL, True
xmlhttp1.send
While xmlhttp1.ReadyState <> 4
DoEvents
Wend
'GetHtml = bytes2BSTR(xmlHTTP1.responseBody)
GetHtml = BytesToBstr(xmlhttp1.responsebody, "UTF-8")
Set xmlhttp1 = Nothing
End Function
谢谢各位,多一个朋友多一种选择啊