PDA

View Full Version : مشکل MenuStrip با فعال شدن فرم



once4ever
دوشنبه 11 تیر 1386, 16:04 عصر
داخل یک فرم MdiContainer که یک منو ستریپ داشته باشید و روی یکی از item ها باشید (رنگ اون آیتم زرد شده باشه ) در این حالت اگه یک فرم باز بشه و حتا اونو به عنوان activeform فرم اصلی هم قرار بدیم، باز فوکوس روی اون فرم نمیاد و همچنان فوکوس روی منو باقی میمونه!
این قضیه خیلی مسخره اس
کسی از دوستان راه حلی داره؟

kiani.mehdi
دوشنبه 11 تیر 1386, 16:44 عصر
داخل یک فرم MdiContainer که یک منو ستریپ داشته باشید و روی یکی از item ها باشید (رنگ اون آیتم زرد شده باشه ) در این حالت اگه یک فرم باز بشه و حتا اونو به عنوان activeform فرم اصلی هم قرار بدیم، باز فوکوس روی اون فرم نمیاد و همچنان فوکوس روی منو باقی میمونه!
این قضیه خیلی مسخره اس
کسی از دوستان راه حلی داره؟

میشه منظورتون را با یه نمونه کد بذارید؟چون اصلا متوجه نشدم چی میگین

once4ever
دوشنبه 11 تیر 1386, 18:01 عصر
به این نمونه نگاه کن
وقتی برنامه اجرا شد، با Alt منو رو فعال کن و بعد کلید H بزن
وقتی برنامه اجرا شد، با Alt منو رو فعال کنید و با کلیدهای جهت دار به منوهای چپ یا راست بروید و در این حالت که هنوز منو فعال هست، کلید H را بزنید
یه فرم باز میشه و شروع کن به تایپ کردن
چیزی نمینویسه، چون هنوز منو فعاله.
حالا یه کاری کن که اون فرم فعال بشه
ممنون

kiani.mehdi
دوشنبه 11 تیر 1386, 20:34 عصر
به این نمونه نگاه کن
وقتی برنامه اجرا شد، با Alt منو رو فعال کن و بعد کلید H بزن
یه فرم باز میشه و شروع کن به تایپ کردن
چیزی نمینویسه، چون هنوز منو فعاله.
حالا یه کاری کن که اون فرم فعال بشه
ممنون

میشه بگین چه نیازی هست که کلید alt گرفته بشه ؟ هر بار که کلید H زده بشه بدون alt فرم child باز شده و می تونین توی اون راحت بنویسین
فوکوس هم روی همون تکست باکس روی فرم هستش
شما بیس کارتون مشکل داره برای اینکه باید بدونید که توی برنامه هایی که از منو استفاده میکنن معمولا کلید altمنورا فعال میکنه
شما توی رویداد keyDown مربوط به فرمتون تعریف کردین که اگه کلید H زده شد فرم فرزند را نشون بده
شاید بهتر این بود که ابتدا چک میکردین که اگه کلید Alt فشرده نشده عملیات را انجام بده
موفق باشید
مهدی کیانی

newgoldenman
دوشنبه 11 تیر 1386, 23:33 عصر
میشه بگین چه نیازی هست که کلید alt گرفته بشه ؟ هر بار که کلید H زده بشه بدون alt فرم child باز شده و می تونین توی اون راحت بنویسین
فوکوس هم روی همون تکست باکس روی فرم هستش
شما بیس کارتون مشکل داره برای اینکه باید بدونید که توی برنامه هایی که از منو استفاده میکنن معمولا کلید altمنورا فعال میکنه
شما توی رویداد keyDown مربوط به فرمتون تعریف کردین که اگه کلید H زده شد فرم فرزند را نشون بده
شاید بهتر این بود که ابتدا چک میکردین که اگه کلید Alt فشرده نشده عملیات را انجام بده
موفق باشید
مهدی کیانی

من از همه ی شما کوچیکترم برای نظر دادن، با آقای کیانی موافقم.
شما چرا از HotKey برای تولید فرزندان استفاده نکردید؟ اگر این کار را انجام دهید، مشکلتان حل میشود.
در ضمن با استفاده از keyDown یک مشکل دیگر را نیز باعث شده اید! اگر چند تا فرم فرزند را پشت هر هم باز کنید، داخل textBox هر کدام، کاراکتر Hیا h را خواهیم داشت!

once4ever
سه شنبه 12 تیر 1386, 00:04 صبح
نکته مهم اینه که اگه پست اول منو بخونید متوجه میشید که دقیقا میخوام وقتی منو فوکوس داره این حالت چک بشه
نکته بعدیش اینه که با اینهمه پست و حالا یکم بلد بودن vs.net !!! یکم زشت نیست من اینارو ندونم؟ ;)
شما بیس کارتون مشکل داره برای اینکه باید بدونید که توی برنامه هایی که از منو استفاده میکنن معمولا کلید altمنورا فعال میکن

حالا دوستان بزرگوار من, مشکل از این قراره که وقتی منو فعال باشه اگه هر فرمی (با کد) باز بشه فوکوس نمیگیره و هرکاریم کردم فوکوس نداشت و باز منو فعال موند.
تو این نمونه یکاری بکنید که وقتی منو فعال هست و فرم باز شد (باH) بشه داخل تکست باکس نوشت

ممنان

newgoldenman
سه شنبه 12 تیر 1386, 01:00 صبح
نکته مهم اینه که اگه پست اول منو بخونید متوجه میشید که دقیقا میخوام وقتی منو فوکوس داره این حالت چک بشه
نکته بعدیش اینه که با اینهمه پست و حالا یکم بلد بودن vs.net !!! یکم زشت نیست من اینارو ندونم؟ ;)

حالا دوستان بزرگوار من, مشکل از این قراره که وقتی منو فعال باشه اگه هر فرمی (با کد) باز بشه فوکوس نمیگیره و هرکاریم کردم فوکوس نداشت و باز منو فعال موند.
تو این نمونه یکاری بکنید که وقتی منو فعال هست و فرم باز شد (باH) بشه داخل تکست باکس نوشت

ممنان
ً
دوست عزیز
بعضی کارها هست که به نظر من ربطی به حرفه ای بودن یا نبودن نداره! همه ی ما اینجا هستیم تا از تجربیات دیگران استفاده کنیم و نیز تجربیات خود را در اختیار دیگران قرار دهیمhttp://qsmile.com/qsimages/sp/y/3.gif



Form2 frm = newForm2();
frm.MdiParent = this;
if (e.Alt)
{
e.SuppressKeyPress = true;
}
frm.Show();


امیدوارم تونسته باشم خواسته ی شما رو پاسخگو بوده باشم...

once4ever
سه شنبه 12 تیر 1386, 08:25 صبح
مشکل کلید Alt نیست! (گرچه کد شما درست کار نکرد)
به هر طریقی که دوست داری منوهارو فعال کن یعنی فوکوس روی منو باشه (مثلا با Alt)
و بعد هیچ کلیدی نزن!
حالا کلید H بزن (فقط برای اینکه فرم باز بشه)
حالا هنوز هم روی منو هستی و تا Esc نزنی روی فرمت نمیره (این مشکلی که من دارم)
یه کد میخوام که focus رو از منو برداره یا بطور کامل focus رو به فرم بده

jeus
سه شنبه 12 تیر 1386, 21:15 عصر
شاید این به دردت بخوره که باید بگم که هر شی یک خاصیت به نام focus داره که اگر بتونی جوری تنظیم کنی که هروقت h زده شد فوکوست بره روی تکست باکس مشکلت حله . راه حل به نظرم درست میاد ولی من چون خیلی تازه کارم نمیدونم چطور میشه که یه تکست باکس تویه فرم دیگه رو focus کرد
اگه تونستی سورسشو حتما برامون بذار

txtbox1.Focuse

newgoldenman
چهارشنبه 13 تیر 1386, 00:38 صبح
مشکل کلید Alt نیست! (گرچه کد شما درست کار نکرد)
به هر طریقی که دوست داری منوهارو فعال کن یعنی فوکوس روی منو باشه (مثلا با Alt)
و بعد هیچ کلیدی نزن!
حالا کلید H بزن (فقط برای اینکه فرم باز بشه)
حالا هنوز هم روی منو هستی و تا Esc نزنی روی فرمت نمیره (این مشکلی که من دارم)
یه کد میخوام که focus رو از منو برداره یا بطور کامل focus رو به فرم بده

کد بنده کار میکنه دوست عزیز(Alt+H) اما این که شما میگی منو رو فعال کنیم بعد دکمه رو بزنیم یه بحث جداست:متفکر:


شاید این به دردت بخوره که باید بگم که هر شی یک خاصیت به نام focus داره که اگر بتونی جوری تنظیم کنی که هروقت h زده شد فوکوست بره روی تکست باکس مشکلت حله . راه حل به نظرم درست میاد ولی من چون خیلی تازه کارم نمیدونم چطور میشه که یه تکست باکس تویه فرم دیگه رو focus کرد
اگه تونستی سورسشو حتما برامون بذار

جواب نمیده!

once4ever
چهارشنبه 13 تیر 1386, 13:46 عصر
کد بنده کار میکنه دوست عزیز(Alt+H) اما این که شما میگی منو رو فعال کنیم بعد دکمه رو بزنیم یه بحث جداستبله تو اون شرایط کار میکنه اما همونطور که فهمیدید چیزی که من منظورم بود فرق میکنه


تکست باکس تویه فرم دیگه رو focus کرد فایده نداره

یجوری منو باید فوکوسو از دست بده. اما چجوری؟!