| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		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 文章: 564 來自: 臺灣
  第 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 組合鍵... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |