ورود

View Full Version : سوال: حرکت بین کنترلها با اینتر



kebriya
پنج شنبه 13 اسفند 1388, 19:43 عصر
خسته نباشید
چجوری بین کنترلها بجای tab با اینتر حرکت کنیم؟ قابل توجه است که چند تا از کنترلها داخل groupbox است و چندتا بیرونش

karim orooji
پنج شنبه 13 اسفند 1388, 20:14 عصر
با سلام به دوست گرامی
یک چیزی در برنامه خاصیت keypriview رو true شده

موفق باشی

ebrahimv
پنج شنبه 13 اسفند 1388, 23:05 عصر
در KeyDown اين مد را بنويس


If (e.KeyCode = Keys.Enter) Then SendKeys.Send("{TAB}")

pouyansaraf
جمعه 14 اسفند 1388, 11:38 صبح
در این آدرس msdn تمام کنترل های کلید ها را گفته است که می توانیم جای {TAB} بگذاریم
حتی برای کلید های control و Alt و Shift

ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.windows.forms/html/4bc3baa1-03ab-9320-bba7-ba6c9d59b3a1.htm

kebriya
جمعه 14 اسفند 1388, 21:25 عصر
همه اینایی که دوستان گفتن درسته اما نمیدونم چرا توی برنامه های قبلی جواب داده ولی توی این برنامه جدیدم با زدن اینتر کل اطلاعات تایپ همون textbox ی داخلش بودیم انتخاب میشه یعنی اصلا به کنترل بعدی نمیره:افسرده:

bad_boy_2007
جمعه 14 اسفند 1388, 21:29 عصر
ببنيدي مراحل كار فقط همينهاست :

1- يك فرم جديد ايجاد كنيد
2- تعدادي كنترل در فرمتان قرار دهيد و TabIndex ها را هم مرتب كنيد
3- ويژگي KeyPreview فرم را True كنيد
4- در KeyDown فرم كد ذيل را بنويسيد :




if e.keyCode=keys.enter then
sendKeys.sen("{Tab}")


چون كد فوق را در VS‌ ننوشته ام ممكن است مشكل سينتكس داشته باشد .

ويژكي جالب كد فوق اينتست كه به يوزهايتان ميتوانيد بگوييد با Shift+Tab به كنترل بالايي بر ميگردي . چونكه وقتي اينتر زده ميشود برنامه Tab مبفرستد . حال اگر يوزر Shift را هم زده باشد بدون نياز به كد نويسي توسط شما اين Shift + Tab زده خواهد شد .

Rejnev
جمعه 14 اسفند 1388, 21:58 عصر
سلام و با اجازه از اساتید
کلاس SendKey خیلی برای من جالب بود و تونستم کامپوننت کلیدی رو که در امضام هست رو کامل کنم(کامپوننت ایرادی که داشت این بود که نمیتونستم با کلیدهای بالا پایین بین کلیدها جابجا بشم چون خود کلیدهای سیستم عامل رویداد رو زودتر از کد اجرا میکرد و در کل به هیچ عنوان نمیشد)
حالا به نظر حقیر اگه شما میخواید همچین کاری کنید که با enter به کنترل بعدی برید میتونید یک userControl بسازید که شامل یک تکست باکس هست و در رویداد keydown تکست کد زیر رو بنویسید که اگر کلید enter زده شد این اتفاق بیفته:



txt_KeyDown(...)
{
if keyCode=Keys.Enter then
parentForm.SelectNextConrol(parentForm.ActiveContr ol,true,true,true);
end if
}

صد در صدی کار میکنه
فقط اگه بتونید کدی بنویسید که با کلیدهای بالا پایین هم بشه حرکت کرد عالی میشه.
من خودم همچین کامپوننتی رو باC#‎ نوشتم(برای وی بی هم قابل استفاده است) و خصوصیاتی رو که داره اینطوریه که مثلا فقط عدد میگیره یا عدد اعشاری میگره یا متن و ... (اگه خواستید ضمیمه میکنم). در ضمن با حرکت موس و یا فوکاس هم تغییر رنگ میده. یک title هم داره که نیازی نیست شما برای هر تکست یک label هم کنارش بذارید
مزیتی که کامپوننت داره اینه که لازم نیست برای هر تکست رو فرمتون یک رویداد بنویسید و ...(اصلا توصیه نمیکنم)

لینک داخل امضا رو دنبال کنید(پست مربوط به کامپوننت خط یک پیش نمایشی از اونهاست)
با تشکر

bad_boy_2007
جمعه 14 اسفند 1388, 22:26 عصر
سلام و با اجازه از اساتید

کلاس SendKey خیلی برای من جالب بود و تونستم کامپوننت کلیدی رو که در امضام هست رو کامل کنم(کامپوننت ایرادی که داشت این بود که نمیتونستم با کلیدهای بالا پایین بین کلیدها جابجا بشم چون خود کلیدهای سیستم عامل رویداد رو زودتر از کد اجرا میکرد و در کل به هیچ عنوان نمیشد)
حالا به نظر حقیر اگه شما میخواید همچین کاری کنید که با enter به کنترل بعدی برید میتونید یک userControl بسازید که شامل یک تکست باکس هست و در رویداد keydown تکست کد زیر رو بنویسید که اگر کلید enter زده شد این اتفاق بیفته:




txt_KeyDown(...)


{


if keyCode=Keys.Enter then


parentForm.SelectNextConrol(parentForm.ActiveContr ol,true,true,true);


end if


}





صد در صدی کار میکنه



فقط اگه بتونید کدی بنویسید که با کلیدهای بالا پایین هم بشه حرکت کرد عالی میشه.


من خودم همچین کامپوننتی رو باC#‎‎ نوشتم(برای وی بی هم قابل استفاده است) و خصوصیاتی رو که داره اینطوریه که مثلا فقط عدد میگیره یا عدد اعشاری میگره یا متن و ... (اگه خواستید ضمیمه میکنم). در ضمن با حرکت موس و یا فوکاس هم تغییر رنگ میده. یک title هم داره که نیازی نیست شما برای هر تکست یک label هم کنارش بذارید


مزیتی که کامپوننت داره اینه که لازم نیست برای هر تکست رو فرمتون یک رویداد بنویسید و ...(اصلا توصیه نمیکنم)




لینک داخل امضا رو دنبال کنید(پست مربوط به کامپوننت خط یک پیش نمایشی از اونهاست)


با تشکر







اين كار در كلاس CurrencyText و TXTDate در DLL ذيل انجام شده :

kebriya
شنبه 15 اسفند 1388, 09:08 صبح
این dll که فرستادید مشکل داره یا اینکه من نتونستم فایل dll آنرا پیدا کنم

bad_boy_2007
یک شنبه 16 اسفند 1388, 20:47 عصر
این dll که فرستادید مشکل داره یا اینکه من نتونستم فایل dll آنرا پیدا کنم

لینک فوق سورس کد DLL هست رفیق

kebriya
دوشنبه 17 اسفند 1388, 07:50 صبح
لینک فوق سورس کد DLL هست رفیق

آخه اجرا نمیشه مهندس!