上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 1 樓
|
發表於: 星期五 三月 11, 2011 11:25 am 文章主題: 關於 SelStart 一直無法如人所願的問題終於發現了 |
|
|
可能有很多人和我一樣在控制游標位置方面被搞得火冒三丈,
今天總算找到原兇了...
原來是我在 controlsource 內放入陣列變數,
導致 SelStart 老是給我不正確的數值,
例如我宣告了一個和TABLE的欄位數一樣的陣列 aTableField[10],
然後在每個 textbox 的 controlsource 內分別放入對應陣列,
textbox1 : aTableField[1]
textbox2 : aTableField[2]
.
.
.
用意是做為在存檔時比對欄位是否有更改過,
結果就造成了我從FOXPRO 2.5以來的困擾,
大概很少有人像我這樣搞吧!
希望本篇能給和我一樣雞婆的同志有點兒助益.
p.s.太爽了,來企吃大餐慰勞自己一番 ^^" |
|
回頂端 |
|
 |
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 2 樓
|
發表於: 星期五 三月 11, 2011 11:46 am 文章主題: |
|
|
還是不太懂?
用陣列跟資料比對這部分可以理解
但這跟SelStart 又有啥關係???
煩請賜教 |
|
回頂端 |
|
 |
nelsonchuang
註冊時間: 2003-09-04 文章: 563 來自: 臺灣
第 3 樓
|
發表於: 星期五 三月 11, 2011 7:39 pm 文章主題: Re: 關於 SelStart 一直無法如人所願的問題終於發現了 |
|
|
jerryclt 寫到: | 可能有很多人和我一樣在控制游標位置方面被搞得火冒三丈,
今天總算找到原兇了...
原來是我在 controlsource 內放入陣列變數,
導致 SelStart 老是給我不正確的數值,
例如我宣告了一個和TABLE的欄位數一樣的陣列 aTableField[10],
然後在每個 textbox 的 controlsource 內分別放入對應陣列,
textbox1 : aTableField[1]
textbox2 : aTableField[2]
.
.
.
用意是做為在存檔時比對欄位是否有更改過,
結果就造成了我從FOXPRO 2.5以來的困擾,
大概很少有人像我這樣搞吧!
希望本篇能給和我一樣雞婆的同志有點兒助益.
p.s.太爽了,來企吃大餐慰勞自己一番 ^^" |
應該跟controlsource沒關係吧! _________________ 大家好,請多指教 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 4 樓
|
發表於: 星期日 三月 13, 2011 6:19 am 文章主題: |
|
|
如附件 text1.value='12345'
無論游標是停在哪裡,
您按下Alt+1都會正確地貼上一個字,
並且正確地重算 SelStart 的值,
但是只要你輸入了什麼 比如在3的位置鍵入A ==> 123A|45
這時再去按 Alt+1 結果就不是我們所預測的 123A+|45
而是 +|123A45
以上個人推測有一個隱荿性的問題在其中,
text1.controlsource 的 _d[1] 在您按下組合鍵的同時並不是 123A45
接著我們把 text1 的 controlsource 的 _d[1] 拿掉,
可以發現 text1 變正常了,
但 text2 一樣回傳一個不正確的 SelStart 值
所以您說沒有關係?
這關係和我糾纏了廿幾年了 >"<
致於到底是什麼關係造成的,
老灰啊我已經測到越來越給他迷糊了,
只能靠實力堅強的狐友們把這關係給揪出來! |
|
回頂端 |
|
 |
DennisTsai
註冊時間: 2005-07-26 文章: 178
第 5 樓
|
發表於: 星期日 三月 13, 2011 8:58 am 文章主題: |
|
|
沒關係的硬要攀關係!
被攀關係的搞不清到底有何關係!
攀關係的口口聲聲說是真的有關係!
一點都沒關係的就@#$%^&*
純屬玩笑!不要介意!因我是那"一點都沒關係的" |
|
回頂端 |
|
 |
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 6 樓
|
發表於: 星期日 三月 13, 2011 11:56 pm 文章主題: |
|
|
ALT+1我猜測是您有設定好的某設定字串 在A之後按ALT+1是為了插入某字串
有沒有可能是動用到某函數之後 而讓TEXT裡面的游標自動從頭或到尾改變了游標位置
例如LOSTFOCUS之類的
我不認為在按下A之後 再按ALT+1之前沒辦法取得游標位置 進而直接去塞入字串
=================
另外我試過您所上傳的程式
我在不修改的狀況之下測試
唯一怪怪的地方就是在少數時候TEXT1語TEXT2跳換時(還未按按鈕)
游標會自動跑到最左邊 而不會是我滑鼠所要點到的那個位置
其它的"貼上"功能都能貼到正確位置
並沒有突然跑到最左邊去貼入字的狀況
我是建議您在"貼上"這邊最後一行並不需要重新SETFOCUS
畢竟你已經在1跟2的LOSTFOCUS抓過SELSTART了 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 7 樓
|
發表於: 星期一 三月 14, 2011 8:13 am 文章主題: |
|
|
LiuRambo 寫到: | ALT+1我猜測是您有設定好的某設定字串 在A之後按ALT+1是為了插入某字串
有沒有可能是動用到某函數之後 而讓TEXT裡面的游標自動從頭或到尾改變了游標位置
例如LOSTFOCUS之類的
我不認為在按下A之後 再按ALT+1之前沒辦法取得游標位置 進而直接去塞入字串
=================
另外我試過您所上傳的程式
我在不修改的狀況之下測試
唯一怪怪的地方就是在少數時候TEXT1語TEXT2跳換時(還未按按鈕)
游標會自動跑到最左邊 而不會是我滑鼠所要點到的那個位置
其它的"貼上"功能都能貼到正確位置
並沒有突然跑到最左邊去貼入字的狀況
我是建議您在"貼上"這邊最後一行並不需要重新SETFOCUS
畢竟你已經在1跟2的LOSTFOCUS抓過SELSTART了 |
測試重點在於.....隨便打幾個字後馬上按Alt+1 (用滑鼠點和按Alt+1是不同的),
您就可以發覺奧妙之處!
而解決這個奧妙的現象就是 => 拿掉 text1 內 controlsource 的內含值.
另外...在[貼上]處的SETFOCUS是要回到text1或text2用.
要拿掉也可以,
只是要看實際設計時 Alt+1 內的複雜程度! |
|
回頂端 |
|
 |
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 8 樓
|
發表於: 星期一 三月 14, 2011 9:48 am 文章主題: |
|
|
那...可以請教一下前輩
我查看HELP裡面:「對任何與 ALT 鍵的組合鍵,KeyPress 事件不會發生。」
既然已知按了ALT複合鍵會無法攔截,是不是您要考慮用其他方式去變化您要的字串 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 9 樓
|
發表於: 星期一 三月 14, 2011 7:24 pm 文章主題: |
|
|
LiuRambo 寫到: | 那...可以請教一下前輩
我查看HELP裡面:「對任何與 ALT 鍵的組合鍵,KeyPress 事件不會發生。」
既然已知按了ALT複合鍵會無法攔截,是不是您要考慮用其他方式去變化您要的字串 |
只要將表單的 keypreview 設為 .F.
就可以用 keypress 攔截任何 ALT 組合鍵... |
|
回頂端 |
|
 |
|