台灣最大程式設計社群網站
線上人數
1337
 
會員總數:246630
討論主題:190056
歡迎您免費加入會員
討論區列表 >> VB6 >> <VB6.0>如何在textbox中,一直focus在資料底端?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
<VB6.0>如何在textbox中,一直focus在資料底端?
價值 : 10 QP  點閱數:6313 回應數:8
樓主

鞋子
初學者
2 5
376 15
發送站內信

我有寫一隻自動執行的程式,會將所有的動作做log寫在textbox中,可是郤無法將最新的動態資料顯示在底端?就是顯示在最後一筆。
搜尋相關Tags的文章: [ textbox ] ,
本篇文章發表於2005-02-02 15:11
1樓
最有價值解答

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
textbox1.setfocus
textbox1.selStart=len(textbox1.text)

這樣應該可以
第一行是必要的
本篇文章回覆於2005-02-02 23:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

鞋子
檢舉此回應
感謝QQ餃~~
我兩行都有寫才行。
本篇文章回覆於2005-02-03 10:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

鞋子
檢舉此回應
不好意思,QQ餃,還有另一個問題想請教你,不知如何解決?

Call bat_tran       '跑程式時,有時會產生"permission denied"錯誤訊息,可是Debug時又沒問題

Public Sub bat_tran
Dim sFILEN As String
Dim sDIR As String
Dim X, i As Long

            X = Shell(App.Path & "\" & "Q.BAT", 0) 

            sFILEN = "C:\data\send.trn"                     '此檔案是由上一段執行批次檔所產生的

             Do While Dir(sFILEN) = ""                       '有測到是此段出問題,可是看不出所以然
               DoEvents
             Loop

            sDIR = Format(Now, "yymmddhhnnss")
            If Dir(sFILEN) <> "" Then
                FileCopy sFILEN, "C:\data\bdata\" & sDIR & ".dat"
                Kill "C:\data\send.trn"
             End If

End Sub
本篇文章回覆於2005-02-03 10:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
             Do While Dir(sFILEN) = ""                       '有測到是此段出問題,可是看不出所以然
               DoEvents
             Loop

這一段幹嘛用的?!
裡面只來個doevents? 那乾脆整段拿掉
還是想要讓他停在這,等待上面的批次檔產生東西丟進來???

那個批次檔的內容可否看一下
本篇文章回覆於2005-02-03 14:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

鞋子
檢舉此回應
此段的作法就是要等待檔案的產生,因為批次檔就是要產生這個檔案用的
因為產生檔案時會花費一些時間,所以才要如此寫法,想叫程式等它一下哩
可是程式好像會等不及就跑掉了,連底下的程序都不執行了呢~~
疑惑的是,偶而才會產生錯誤訊息呢,並不是每次。

批次檔內容 : 
C:
CD\data
ftp -s:send.shl  >> send.trn
EXIT
本篇文章回覆於2005-02-03 17:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
原來如此,這不能這樣寫, 該檔案若還沒有產生完畢(尚在寫入中)
您就去讀取他, 會發生有時"permission denied"錯誤訊息
因為vb6比較無法監控目錄內容
該工作交給批次檔做比較理想
修改如下
批次檔內容 : 
C:
CD\data
ftp -s:send.shl  >> temp.trn  <---這個動作作多久不知道
copy temp.trn send.trn  <-- 這個動作保證一瞬間完成
EXIT

然後只要
   Do While Dir(sFILEN) = "" 
         DoEvents
   Loop
改成
   dim a as date  ' 亂執行一些沒意義的事情, 拖點時間, 讓檔案有機會完整產生
   for i=0 to 1000 
      date=now-3+1
   next 

這樣就可以了..其實這裡還很多不同做法, 先試試囉
本篇文章回覆於2005-02-03 20:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

鞋子
檢舉此回應
感謝QQ餃的指導~
另有人教我,用此方法也是可行:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

             Do While Dir(sFILEN) = ""
               Call Sleep(100)
               DoEvents
             Loop

本篇文章回覆於2005-02-04 16:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
呵呵...sleep是真正的延遲, 延遲過程中無法做任何事情喔
本篇文章回覆於2005-02-04 23:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.