PDA

View Full Version : سوال: مشکل با فوکوس تکست باکس



Mehdi Naderi
پنج شنبه 19 خرداد 1390, 02:07 صبح
سلام
من در رویداد لود شدن صفحه کد زیر را میگذارم تا تکس باکس سومی هنگام لود شدن صفحه فوکوس باشه اما
بازم تکس باکس اولی فوکوس میگیره مشکل چیه؟


textBox3.Focus();

B.I.O.H.A.Z.A.R.D
پنج شنبه 19 خرداد 1390, 09:44 صبح
حتما چک کنید ببینید اسم تکست باکس ها درسته. اگر همه چی درسته بیاید خاصیت TabIndex مربوط به همه رو درست کنید. یعنی واسه textBox3 خاصیت TabIndex رو صفر بذارید، واسه TextBox2 خاصیت TabIndex رو 1 و الی آخر.

haghft
پنج شنبه 19 خرداد 1390, 10:49 صبح
آقا focus نیست باید از دستور select(); استفاده کنید.
textBox3.Select();

محمد باقری نسب
پنج شنبه 19 خرداد 1390, 11:09 صبح
سلام
من در رویداد لود شدن صفحه کد زیر را میگذارم تا تکس باکس سومی هنگام لود شدن صفحه فوکوس باشه اما
بازم تکس باکس اولی فوکوس میگیره مشکل چیه؟

اگر شما به جای رویداد load کد خودتون رو توی رویداد shown فرمتون قرار بدین درست خواهد شد!

ma.rad
پنج شنبه 19 خرداد 1390, 11:39 صبح
سلام
من در رویداد لود شدن صفحه کد زیر را میگذارم تا تکس باکس سومی هنگام لود شدن صفحه فوکوس باشه اما
بازم تکس باکس اولی فوکوس میگیره مشکل چیه؟


textBox3.Focus();


دوست عزیز شما باید کد رو در رویداد Activeit فرمتون بنویسید

haghft
پنج شنبه 19 خرداد 1390, 13:04 عصر
آقایون چندبار بگم focus برای این کار نیست تمامی کنترل های .net برای فوکوس شدن روش از متد Select(); البته بدون overloadش چون overloadیشون کارهای دیگه ایی میکنن.من نمیخام از خودم تعریف کنم ولی از سال 2003 تا حالا دارم C# کار میکنم و تجربه های زیادی دارم ولی نمیدونم تو این انجمن چرا کسی به حرفام انگار خیلی بها نمیده!

محمد باقری نسب
پنج شنبه 19 خرداد 1390, 13:58 عصر
آقایون چندبار بگم focus برای این کار نیست تمامی کنترل های .net برای فوکوس شدن روش از متد Select(); البته بدون overloadش چون overloadیشون کارهای دیگه ایی میکنن.من نمیخام از خودم تعریف کنم ولی از سال 2003 تا حالا دارم C# کار میکنم و تجربه های زیادی دارم ولی نمیدونم تو این انجمن چرا کسی به حرفام انگار خیلی بها نمیده!

میشه لطف کنین بگید پس واسه چی microsoft متد focus رو تعبیه کرده جناب haghft؟

حتما مال زنگ تفریحه که هر وقت برنامه نویسا خسته شدن همینطوری الکی فراخوانیش کنند و حال کنن!
عزیزم focus مال اینه که کنترل مورد نظر ورودی (input) رو از کاربر دریافت کنه! البته کنترل به شرطی میتونه focus رو دریافت کنه که خاصیت CanFocus برابر با true باشه!

focus از نظر microsoft:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx

select از نظر microsoft:
http://msdn.microsoft.com/en-us/library/7wt11hea.aspx

JaguarXF
جمعه 20 خرداد 1390, 08:58 صبح
اگر ازselect استفاده کنی اگر از قبل متنی داخل آن تکست باکس باشه های لایت میشه و با اولین کلیدی که کاربر فشار میده اون متن از دست میره.
یک کم دیگه خودت فکر کن به جواب درست میرسی. مثلا فکر کن چرا اگر چک باکس بودند مشکلی نبود. فرقش با تکست باکس چیه و...

haghft
جمعه 20 خرداد 1390, 10:26 صبح
اگر ازselect استفاده کنی اگر از قبل متنی داخل آن تکست باکس باشه های لایت میشه و با اولین کلیدی که کاربر فشار میده اون متن از دست میره.
یک کم دیگه خودت فکر کن به جواب درست میرسی. مثلا فکر کن چرا اگر چک باکس بودند مشکلی نبود. فرقش با تکست باکس چیه و...
من تست کردم همون کاریو میکنه که Select به تنهایی انجام میده هردوتاشونم لایت میکنن به قول شما دوست عزیز.در ضمن من امتحان کردم برای Focus حتما باید tabindex اون کنترل 0 باشه وگرنه کار نمیده ولی در مورد select(); اینجور نیست.پس عاقلانه اینه که از همون select در این موارد استفاده کرد به جای اینکه بیاید tabindex هارو صفر کنید بعدش دستور فوکوس رو بنویسید.

mn_zandy63
چهارشنبه 01 تیر 1390, 00:13 صبح
Note
Focus is a low-level method intended primarily for custom control authors. Instead, application programmers should use the Select method or the ActiveControl property for child controls, or the Activate method for forms.
Source: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx