| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 1 樓
  | 
		
			
				 發表於: 星期五 四月 15, 2005 7:23 pm    文章主題: 請問:setfocus()與valid() | 
				     | 
			 
			
				
  | 
			 
			
				各位前輩您們好!
 
 
我對一個thisform.grid.column1.text1 作 setfocus()時 (thisform.grid.column1.text1.setfocus()),
 
它會引發自身的valid() (thisform.grid.column1.text1.valid()),
 
 
我另外新增一個表單,加入一個文字方塊,然後
 
對thisform.text1 作setfocus()   (thisform.text1.setfocus() ),它也會引發text1.valid()
 
 
請問這是正常的嗎?
 
 
我想要在某些動作後把焦點移到thisform.grid.column1.text1上(因為想先輸入那一個欄位),
 
而且要強迫輸入規定的資料,我在thisform.grid.column1.text1.valid()中寫入:
 
if len(allt(this.vale))<>3
 
messagebox("必須為3碼")
 
return 0
 
endif
 
 
結果,
 
從別的地方作thisform.grid.column1.text1.setfocus(),它卻引發valid事件(並發出"必須為3碼")
 
 
我用錯了方法嗎?請教我正確的方法是?
 
 
謝謝! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 2 樓
  | 
		
			
				 發表於: 星期五 四月 15, 2005 7:47 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				[我對一個thisform.grid.column1.text1 作 setfocus()時 (thisform.grid.column1.text1.setfocus()), 
 
它會引發自身的valid() (thisform.grid.column1.text1.valid()), 
 
 
我另外新增一個表單,加入一個文字方塊,然後 
 
對thisform.text1 作setfocus() (thisform.text1.setfocus() ),它也會引發text1.valid() 
 
 
請問這是正常的嗎?]
 
 
會嗎? 如果會的話,是否看一下text1是沒加任何程式碼的物件,或有繼承一些程式碼? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 四月 16, 2005 4:13 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				會呀...
 
為了避免是我的電腦的關係,我在朋友的電腦試,
 
 
打開foxpro,直接新增一個表單,加入一個文字方塊text1
 
text1.click()寫一行
 
thisform.text1.setfocus()             &&若寫this.setfocus()也是一樣的情形。
 
 
text1.valid()寫一行
 
messagebox("test")
 
 
立即執行,click該文字方塊,就跳出 "test"的訊息。點幾次就出來幾次,
 
真不知道我是怎麼了?
 
 
各位前輩,請救救我... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 4 樓
  | 
		
			
				 發表於: 星期六 四月 16, 2005 7:54 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				那我可以說
 
好里加在
 
我很少用setfocus()
 
祝你幸運! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 5 樓
  | 
		 | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 6 樓
  | 
		
			
				 發表於: 星期六 四月 16, 2005 12:32 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我使用setfocus()的目的是:
 
想要在grid外放一個CMD_ADDS,用以產生明細檔的新紀錄,並且預先產生流水號,
 
然後把焦點移到品名選擇的儲存格,該儲存格VALID()有限制及警示條件。
 
 
本想這是一個簡單的控制,
 
不過,它總會在GRID1.COLUMN2.TEXT1.SETFOCUS()時就引發警示訊息。
 
 
看來真的是我的用法有問題,所以,
 
我自己再研究吧..
 
 
謝謝各位前輩 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 7 樓
  | 
		
			
				 發表於: 星期日 四月 17, 2005 1:58 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				garfield大大,
 
謝謝您提示我去看那篇文章。
 
之前就有看過那篇文章,可是沒有詳細的去瞭解它,
 
您提示後,我再回去看了幾次,一開始還是沒解決問題,
 
因為setfocus()真的會引發this.valid()。
 
我想了很久,覺得奇怪,後來又想起該文內容,所以我想到既然它一定會引發,
 
那我就在處理之前(text1值尚符合valid時),先把焦點移出(如到CMD_ADDS上)。
 
測試之後,正常無誤,現在終於解決"我"的問題。
 
 
這次的問題讓我好好地去瞭解這幾個事件,也讓我得以刪除一些無聊程式碼(當初為了克服問題所試的)
 
現在,SETFOCUS、WHEN、VALID、..........的運用,
 
又回到我一開始想像的---簡單又好用。
 
 
謝謝各位前輩來來回回的指導,謝謝! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |