PDA

View Full Version : سوال: خروجی Form.ShowDialog از نوع رشته



aminpprog
سه شنبه 13 فروردین 1392, 23:11 عصر
سلام به دوستان عزیز :
می خواستم بدونم فرمی که به صورت Form2.ShowDialog باز شده ، و در داخل آن فرم یک Textbox وچود داره ، چطوری مقدار Textbox رو به عنوان Result همون فرم قرار بدم تادر فرم اول برگشت داده بشه ؟

hunter_ara
چهارشنبه 14 فروردین 1392, 01:12 صبح
سلام به دوستان عزیز :
می خواستم بدونم فرمی که به صورت Form2.ShowDialog باز شده ، و در داخل آن فرم یک Textbox وچود داره ، چطوری مقدار Textbox رو به عنوان Result همون فرم قرار بدم تادر فرم اول برگشت داده بشه ؟

تمیتونی به عنوان DialogResult برگردونی
ولی میتونی یک پراپرتی پابلیک از نوع String تعریف کنی و از اون طریق هر چیزی که مایل هستین رو به فرم اول برگردونید

aminpprog
چهارشنبه 14 فروردین 1392, 11:01 صبح
خیلی از راهنماییت متشکرم ولی اگه امکان داره تکه کدشو می ذاشتی عالی می شد .

linux
چهارشنبه 14 فروردین 1392, 11:47 صبح
سلام به دوستان عزیز :
می خواستم بدونم فرمی که به صورت Form2.ShowDialog باز شده ، و در داخل آن فرم یک Textbox وچود داره ، چطوری مقدار Textbox رو به عنوان Result همون فرم قرار بدم تادر فرم اول برگشت داده بشه ؟
تو فرمی که می سازی یک تابع تعریف کن مثلا به اسم GetInputResuly و داخلش این کد را بنوسید


public string GetInputResult()
if(this.ShowDialog()== DialogResult.ok)
{
return textbox1.tex
}

در فرم دیگرتان بحای اینکه فرم را showdialog بکنید از تابعی که خودتان ساختید استفاده کنید هم نمایش می‌دهد هم مقداری که مد نظرتان هست را برگشت می ‌دهد

pcseven
چهارشنبه 14 فروردین 1392, 12:48 عصر
در کلاس Form2 متد ShowDialog را override کرده و نوع بازگشتی آن را String قرار دهید. ( ()Base.ShowDialog فراموش نشود. )

linux
چهارشنبه 14 فروردین 1392, 19:28 عصر
در کلاس Form2 متد ShowDialog را override کرده و نوع بازگشتی آن را String قرار دهید. ( ()Base.ShowDialog فراموش نشود. )

شما هنوز معنی override را درست نگرفتید در override برای یک متد نوع ورودی تغییر می‌کند نه خروجی! و شما امکان override کردن ShowDialog را ندارید.

hunter_ara
چهارشنبه 14 فروردین 1392, 22:42 عصر
خیلی از راهنماییت متشکرم ولی اگه امکان داره تکه کدشو می ذاشتی عالی می شد .

public string PropertyName
{
get
{
return String;//اون رشته ای که میخوای برگردونی
}
set
{
//رشته ای که میخوای بریزی داخل پراپرتی
}
}

میتونه get یا set نداشته باشه بسته به نیازت
مثلا اینجا که فقط میخوای یه string برگردونی میتونی فقط get بزاری و داخلش بنویسی:

return Textbox.Text;

از فرم بالایی میگی کلاس فرمی که پراپرتی داخلش هست (form2).اسم پراپرتی:

form2.PropertyName

اطلاعات بیشتر (http://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx)

راجع به اون تابعی که دوست خوبمون linux گفتن هم میگم که غلط نیست ولی این اصولی تره!
برای انجام هر کاری ۱۰۰۰ راه وجود داره که انتخواب اون به شما بستگی داره!

بهتر و ساده تر از این نمیتونستم توضیح بدم دیگه