  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 1 樓
  | 
		
			
				 發表於: 星期日 九月 01, 2013 3:05 pm    文章主題: 如何在 editbox 里的 keypress method 顯示最新的游标位置 | 
				     | 
			 
			
				
  | 
			 
			
				我在一個 form 里加入一個 editbox, 一個 button 還有 一個 新的 property 叫 savepos.
 
 
在 editbox 的 keypress method 里, 我輸入下面的程式碼 :-
 
thisform.savepos  = this.SelStart
 
 
然後在 button 的 click method 里輸入下面的程式碼 :-
 
WAIT WINDOW thisform.savepos
 
 
我的用意是要在 editbox 的 keypress method 里找出最新的游标位置.
 
 
所以執行程式後, 我在 editbox 里輸入了以下的內容 (在下面兩行線之間) :-
 
 
--------------------------
 
this is a test<ENTER>
 
a test for editbox<ENTER>
 
--------------------------
 
 
我的游标位置現在停在第三行的第一個位置.當我按 CTRL-HOME 時, 我的游标被更新到第一行的第一個位置, 當我click button 時, 所顯示的游标位置是舊的位置 (34), 而不是0, 然後我繼續按 down arrow, 再click button, 所顯示的游标位置是0, 而不是16, 想請問各位高手, 如何在 keypress method 里拿到最新的游标位置 ? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 2 樓
  | 
		
			
				 發表於: 星期日 九月 01, 2013 4:12 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				好像繞了遠路
 
 
直接在 click method 里輸入下面的程式碼 :-
 
WAIT WINDOW thisform.editbox1.SelStart
 
 
不行嗎? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 3 樓
  | 
		
			
				 發表於: 星期日 九月 01, 2013 4:35 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 用滑鼠 click editbox 沒問題, 但是如果用鍵盤按 left, right, up 和 down button 便有問題了 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 4 樓
  | 
		
			
				 發表於: 星期一 九月 02, 2013 10:02 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 各位, 不好意思, 我找到問題了, 是我程式的問題, 所以證實用 editbox.selstart 就可以了. 謝謝 ckp6250. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Darren
 
 
  註冊時間: 2007-10-18 文章: 57
 
  第 5 樓
  | 
		
			
				 發表於: 星期一 九月 02, 2013 10:21 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 跟大家分享我的問題. 原因是 editbox 的內容里有中英文, 所以中文是 double byte, 英文是 single byte, 所以我必須用 lenc, substrc, leftc, at_c 的 function 才可以, 希望可以幫到其他的人 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jerryclt
 
 
  註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
  第 6 樓
  | 
		
			
				 發表於: 星期一 九月 02, 2013 5:38 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果只是要得知游標的位置, 試試看這樣子~~~
 
 
在 editbox1 的 InteractiveChange method 內下
 
WAIT WINDOW this.SelStart NOWAIT
 
 
這樣就不需要 click command1 button後才能得知游標位置,
 
但如果要做到顯示 [列][行],
 
就得要對 CHR(13) CHR(10) 單/雙位元......等做判斷再加以計算SelStart的值,
 
這就有點複雜了!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |