Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: SQL
Expertise: Beginner
Mar 24, 1997

Set focus

Question:
When a user selects a value from a list box, I populate the contents of a repeater. I also want to set the focus into the repeater's first field. How can I accomplish this?

Answer:
You're probably running into this problem: Fields in a repeater can only be referenced by an aggregate function. You're getting this message because you're using the name of the field in the repeater in your Oracle Basic code.

When OPO makes a repeater, it creates an array of each field in the repeater. If you simply use the Name property, you will be unable to reference a single instance of the field. However, each field is a separate window object. If you can get the window handle of the object, you can reference it directly.

You can do this by adding a user-defined property called udpField with a data type of "Object" to the form, frmMain, that the repeater is in. In the OnLoad() method of the first field of the repeater, add the following code:

frmMain.udpField = Self

This will cause the udpField property to be set each time a new instance of the field in the repeater is created, so the property will end up with the handle of the first field in the last row of the repeater. To set the value of the udpField property to the window handle of the field's first instance, change the code to:

IF ISNULL(frmMain.udpField) THEN frmMain.udpField = Self

The udpField property now has the window handle of the first field in the first row of the repeater. You can use this code:

udpField.SetFocus()

to set the focus to the first field of the first row in the repeater.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap