PDA

View Full Version : ارتباط form ها در VB.NET



samin
سه شنبه 11 شهریور 1382, 20:06 عصر
با عرض سلام خدمت همگی
یک سوال داشتم : من یک برنامه نوشتم مثل وردپد
یک قسمت find داره ولی نمی دونم که اصلا با form اصلی ارتباط داره یا نه
من این کار را روی یک form انجام دادم جواب داد ولی وقتی قسمت find را
جدا می کنم جواب نمیده؟؟؟؟؟؟
ثمین :oops:

سه شنبه 11 شهریور 1382, 21:11 عصر
اگر فرم Find رو بصورت ShowDialog باز می کنین، از دستورات زیر استفاده کنین :


Dim frm As frmFind
frm.ShowDialog
...
frm.Dispose

قسمت ( ... ) زمانی اجرا می شه که فرم Find بسته شده باشه، و با این حال شما به اون دسترسی دارین.
ولی اگر می خوایین در دیالوگ Find به فرم اصلی دسترسی داشته باشین، باید فرم اصلی تونی رو در جایی مانند Module تعریف کنین تا در هر فرمی بتونین به اون دسترسی داشته باشین.

samin
سه شنبه 11 شهریور 1382, 22:47 عصر
مشکل من حل نشد؟؟؟؟؟؟ :cry: :cry: :cry: :cry:

چهارشنبه 12 شهریور 1382, 17:17 عصر
یک مثال ساده از برنامه ویرایشگر.البته فرصت نداشتم تا کاملش کنم ولی نمونه خوبی هست برای استفاده از FindDialog.

samin
چهارشنبه 12 شهریور 1382, 23:54 عصر
وقتی در فرم اصلی تایپ میکنم بعد find رو اجرا میکنم هیچ چیزی پیدا نمکنه :(

پنج شنبه 13 شهریور 1382, 00:08 صبح
من گفتم، مثالی که گذاشتم کامل نیست، فقط می خواستم طریقه فراخوانی فرم را یاد بگیرین. زیر برنامه جستجوی اون رو باید خودتون کامل کنین.

samin
پنج شنبه 13 شهریور 1382, 10:09 صبح
شکل من درست در همین جا بود چرا که من تا اینجا شو رفته بودم و کد زیرا نوشتم اما عمل نکرد
کد:
Dim frmM As New frmText()
Pos = InStr(Pos + 1, frmM.RT.Text, Text1.Text, 2)
If Pos > 0 Then
frmM.RT.SelectionStart = Pos - 1
frmM.RT.SelectionLength = Len(Text1.Text)
frmM.RT.Focus()
frmM.Dispose()
End If
در Module
Module Module1
Public Pos As Integer
End Module

پنج شنبه 13 شهریور 1382, 15:33 عصر
frmText اسم فرم اصلی شماست ؟
اگر این طور باشه و این دستورات رو در فرم جستجو نوشته باشین، مشکل شما این هست که هر زمان که می خوایین عمل جستجو رو انجام بدین یک متغییر از نوع فرم اصلی ایجاد کردین!! شما وقتی دارین متغییر frmM رو New می کنین، این متغییر با فرم اصلی شما متفاوت است برای همین هیچ وقت Text شما مقدار ندارد...امیدوارم متوجه منظورم شده باشین.
شما باید طریقه فراخوانی فرمتون رو تغییر بدین، توجه داشته باشین که در اون مثالی که برای شما گذاشتم، من زیر برنامه New فرم جستجو رو تغییر دادم ( این روشی است که از مثال های سایت مایکروسافت یاد گرفتم و فکر می کنم بهتری روش برای دیالوگ جستجو باشد )
شما از مثال من استفاده کنین و دستورات جستجوتون رو در زیر برنامه StartSearch بنویسین.( frmMain نام فرم اصلی )
اگر مشکلتون حل نشد، می تونین برنامتون رو برای من بفرستین تا درستش کنم.

samin
پنج شنبه 13 شهریور 1382, 17:51 عصر
دست شما درد نکنه شیما جان عزیز
مشل من با راهنمایی های شما حل شد :تشویق:
_______________________________
ثمین

پنج شنبه 13 شهریور 1382, 19:15 عصر
خوشحالم که تونستم کمکت کنم :oops: