PDA

View Full Version : سوال: بدست آوردن نام و عنوان فارسي تمام فرمهاي پرو‍ه



MOR_MS
جمعه 29 شهریور 1392, 03:24 صبح
با سلام
من اين كدو از اينجا (http://cc.bingj.com/cache.aspx?q=for+each+form+name&d=4787094403678962&mkt=en-ww&setlang=en-US&w=UyIC4qHjRYuA6yjz-uz8sF8VSZJheFuH)پيدا كردم و يه مشكل داره وقتي اجرا ميشه فقط نام سه تا فرم نشون ميده و وري چهارمي ارور ميده لطفا كمك كنيد و اگه كسي كد ديگه داره كه بشه نام كليه فرمهاي ژرو‍ه و تكس اونو بدست اورد ممنون ميشم برام بنويسه

Dim asm = System.Reflection.Assembly.GetExecutingAssembly
Dim myTypes As Type() = asm.GetTypes()
For Each t As Type In myTypes
Dim frm As Form
If t.IsSubclassOf(GetType(System.Windows.Forms.Form)) Then
frm = CType(Activator.CreateInstance(t), Form)
MsgBox(frm.Name & frm.Text)
End If
Next

MOR_MS
جمعه 29 شهریور 1392, 18:02 عصر
با سلام
من منتظرم لطفا كمك كنيد

MOR_MS
جمعه 29 شهریور 1392, 20:14 عصر
با سلام
براي يكي از فرمها اين ارور رو ميده نميدونم چكار كنم
No parameterless constructor defined for this object.

cherchil_hra
شنبه 30 شهریور 1392, 09:19 صبح
فرمی که داری ایجاد می کنی تابع سازنده اش دارای پارامتر هست، چون پارامتری نمی فرستی پیغام خطا میده.
برای رفع مشکل کافیه این کد رو به فرم مربوطه اضافه کنی :


Sub New()
InitializeComponent()
End Sub


چون پیش فرض کلاس ها تابع سازنده Constructor ساخته می شود برای همین در ایجاد سه فرم اولیت به مشکل نمی خوری، ولی زمانی که شما خودت ایجادش می کنی این مقدار پیش فرض حذف میشه در نتیجه فرم چهارم شما چون تابع سازنده اش با پارامتر هست و شما بدون پارامتر ایجادش می کنی پیغام خطا دریافت می کنی!