ورود

View Full Version : سوال: خصوصیت های Bring To Front و Send To Back اشیاء در اکسس



atf1379
جمعه 18 آبان 1403, 17:49 عصر
با سلام
در اکسس اشیائی همچون لیست باکس یا سابفرم نسبت به سایر اشیاء مثل کمند باتن ها ، تکست باکس ها و... همیشه حالت Bring دارند . به عبارتی اگر دو کنترل مثل لیست باکس و کمند باتن در نظر بگیریم و کمند باتن را بر روی لیست باکس قرار بدهیم کمند باتن در پشت لیست باکس قرار می گیرد هرچنند در حالت دیزاین خصوصیت Bring To Front آن را فعال نمائیم . همین موضوع برای سابفرم هم صدق می کند یعنی موقعیت اشیائی همچون کمند باتن یا تکست باکس یا یک لیبل نسبت به سابفرم موقعیت Send To Back میباشد. ولی دوکنترل لیست باکس و سابفرم نسبت به همدیگر میتواند در هر دو حالت Send To Back یا Send To Back باشد .
در محیط ویژوال بیسیک6 خصوصیتی تحت عنوان ZOrder برای اشیاء وجود دارد که با استفاده از این خصوصیت میتوان هر کنترلی رو در حالت Send To Back یا Send To Back قرار داد. مثلا با دستور Command2.ZOrder 0
کمند باتن 2 میتواند در حالت ران تایم بر روی اشیاء دیگر حتی لیست باکس قرار گیرد
با توجه به توضیحات فوق آیا راهی وجود دارد که در محیط اکسس هم کنترلی مانند کمند باتن را بر روی یک لیست باکس قرار داد ؟
با تشکر

mazoolagh
شنبه 19 آبان 1403, 12:23 عصر
سلام و روز خوش

چند نکته:
1- bring to front , send to back پراپرتی کنترل نیستن،
اینها جزو action هایی هستن که در محیط design میتونین بهش دسترسی داشته باشین.

2- AFAIK در اکسس پراپرتی پابلیک برای کنترل z-order (یا z-index) نیست.
گرچه VBA و VB (یا VB6) در زیرلایه ها یکسان هستن،
ولی کنترل های اکسس اختصاصی طراحی و برای کار با دیتابیس و بخصوص فرم bound بهینه شدن،
اینها در ذات متفاوتن.

3- احتمال اینکه راه های نامتعارف و hacky پیدا بشه هست (مثلا استفاده از object frame).

4- موقتا میتونین کنترل(ها) رو در یک subform بندازین و سابفرم رو رو لیست باکس بیارین.
البته باید کنترل focus بشه.

5- وقتی به نقطه ای میرسین که نیاز به یک راه نامتعارف دارین (اینجا overlap کردن کنترل ها)،
نشون دهنده این هست که راه رو اشتباه رفتین!
برگردین و راه مناسب رو پیدا کنین.

atf1379
شنبه 19 آبان 1403, 15:12 عصر
سلام و روز خوش

چند نکته:
1- bring to front , send to back پراپرتی کنترل نیستن،
اینها جزو action هایی هستن که در محیط design میتونین بهش دسترسی داشته باشین.

2- AFAIK در اکسس پراپرتی پابلیک برای کنترل z-order (یا z-index) نیست.
گرچه VBA و VB (یا VB6) در زیرلایه ها یکسان هستن،
ولی کنترل های اکسس اختصاصی طراحی و برای کار با دیتابیس و بخصوص فرم bound بهینه شدن،
اینها در ذات متفاوتن.

3- احتمال اینکه راه های نامتعارف و hacky پیدا بشه هست (مثلا استفاده از object frame).

4- موقتا میتونین کنترل(ها) رو در یک subform بندازین و سابفرم رو رو لیست باکس بیارین.
البته باید کنترل focus بشه.

5- وقتی به نقطه ای میرسین که نیاز به یک راه نامتعارف دارین (اینجا overlap کردن کنترل ها)،
نشون دهنده این هست که راه رو اشتباه رفتین!
برگردین و راه مناسب رو پیدا کنین.
سلام
ممنون از راهنمائی بی نقصتون