PDA

View Full Version : فوکوس پذیر نبودن یک فرم



once4ever
پنج شنبه 03 خرداد 1386, 08:29 صبح
میخوام فرمم قابل فوکوس کردن نباشه, اما enable باشه و کلیدهاش و تکسک باکسهاش کار کنن
یا اینکه زیر تمام فرمها قرار بگیره و در هیچ حالتی روی فرم دیگه برنامه نیاد

choobin84
پنج شنبه 03 خرداد 1386, 09:48 صبح
برای هر کنترل داخل فرم
tabstop=false;
h

برای آنکه فرمی روی تمام فرم های دیگه قرار بگیره

Form2 f=new Form2();
f.ShowDialoge();
l

Keramatifar
پنج شنبه 03 خرداد 1386, 09:52 صبح
دوست عزیز
باید از WindowsMessaing System استفاده کنی. توی Help خود C# سرچ کنی کلی مثال بهت میده

once4ever
پنج شنبه 03 خرداد 1386, 11:39 صبح
ممنون

برای هر کنترل داخل فرم
tabstop=false;
h

برای آنکه فرمی روی تمام فرم های دیگه قرار بگیره

Form2 f=new Form2();
f.ShowDialoge();
l اگه فقط بگی جواب کدوم سوالمو دادی یه تشکر بهت میدم :متفکر: ( joking ;) )


دوست عزیز
باید از WindowsMessaing System استفاده کنی. توی Help خود C# سرچ کنی کلی مثال بهت میدههمچین چیزی پیدا نکردم!
میتونی بیشتر توضیح بدی!

Keramatifar
پنج شنبه 03 خرداد 1386, 12:17 عصر
دوست عزیز
با مطالعه این فانکشن میتونی به چیزی که می خوای برسی



protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_VSCROLL:
base.WndProc(ref m);
if ((m.WParam.ToInt32() & 0xffff) == SB_THUMBTRACK)
{
OnVScroll(EventArgs.Empty);
}
if ((m.WParam.ToInt32() & 0xffff) == SB_THUMBPOSITION)
{
OnVScroll(EventArgs.Empty);
}
break;

case WM_HSCROLL:
base.WndProc(ref m);
if ((m.WParam.ToInt32() & 0xffff) == SB_THUMBTRACK)
{
OnHScroll(EventArgs.Empty);
}
if ((m.WParam.ToInt32() & 0xffff) == SB_THUMBPOSITION)
{
OnHScroll(EventArgs.Empty);
}
break;
default:
base.WndProc(ref m);
break;
}
}

choobin84
پنج شنبه 03 خرداد 1386, 17:08 عصر
ممنون
اگه فقط بگی جواب کدوم سوالمو دادی یه تشکر بهت میدم :متفکر: ( joking ;) )


وقتی فرمی را جدید باز می کنیم وقتی از متد showdialog استفاده می کنیم باعث میشه فرم قبلی که مادر فرم جدیده همیشه در زیر فرم جدید باقی بمونه.
در مورد خاصیت tabstop باید بگم، این خاصیت باعث میشه وقتی دکمه tab روی فرم زده میشه ,وقتی این خاصیت مربوط به کنترل false باشه، هیچ وقت اون کنترل focus نمیشه مگر اینکه با ماوس داخل اون کلیک کنید یا با کد نویسی اون رو select یا focus کنید.
با توجه به فهمی که از سئوال شما داشتم جوابی را که فکر می کردم درسته دادم، حالا اگر یه چیز دیگه منظورتون بوده ، من بی تقصیرم.
حالا ماچو رد کن بیاد...:لبخند:

once4ever
پنج شنبه 03 خرداد 1386, 17:38 عصر
اول ماچو داشته باش...
اولا با showdialog دیگه هیچ قسمتی از برنامه ات کار نمیکنه مگه اینکه این showdialog بسته بشه. پس اصلا گزینه خوبی نیست
در مورد tabstop هم اگه کاربر با ماوس روی فرمم بزنه (هر قسمتیش ) دیگه اون فرم میاد بالا پس بازم فایده نداره ;)
حالا یه بار دیگه:
فرض کن 5تا فرم تو یک mdiparent باز هستند که میخوام یکی از اونها در هر حالتی, زیر بقیه بمونه ولی فعال باشه و کار کنه .


WindowsMessaing
Wish Maste
حالا منظورتو فهمیدم. یعنی برای کلیک شدن روی فرمم یک رویدادی override کنم....
خوب اگه کاربر روی یک textbox که روی این فرم زد, چیکار کنم؟ چون در این حالت این فرم میاد رو

choobin84
جمعه 04 خرداد 1386, 11:44 صبح
اول ماچو داشته باش...
]در مورد tabstop هم اگه کاربر با ماوس روی فرمم بزنه (هر قسمتیش ) دیگه اون فرم میاد بالا [

a
حالا این برنامه چی چی هست که باید فرمی فعال باشه ، در عین حال بالا نیاد؟یه مثال بزنید.

شکارچی
یک شنبه 06 خرداد 1386, 23:23 عصر
TopMost بقیه فرم ها برنامه تو True کن.
در ضمن سیستم Window Messaging ربطی به این موضوع نداره خصوصا فانکشنی که ذکر شده که مربوط به کنترل ScrollBar های فرم است.