PDA

View Full Version : مشكل در فرم mdi و قرار گرفتن ساير فرمها دز داخل آن



gama118
یک شنبه 15 اسفند 1389, 10:15 صبح
سلام

من واسه پروژه ام فرم اصلي رو يه فرم mdi در نظر گرفتم بعد فرم داخل برنامه رو با showdialog و يا show باز ميكنم

تو 6vb تو چنين حالتي هر چند تا فرم باز ميكرديم داخل فرم mdi باز ميشد و تو taskbar ويندوز فقط يه آيكون پروژه رو ميديديم ولي اينجا به تعداد فرمهاي باز شده تو taskbar آيكون باز ميشه يعني در واقع اصلا اون خاصيت mdi رو نداره

مشكل چيه؟ در واقع ميخوام فرمها داخل فرم اصلي بعنوان child باز شه

daivid_ d31r1
یک شنبه 15 اسفند 1389, 10:53 صبح
سلام دوست من
شما میتونی تو پنجره propertes خوده فرم خاصیت showontskbar را غیر فعال کنید
و با این دستور هم میتونید اونو داخل خود فرم نشون بدین

form1 newform=new form1();
newform.mdiparent=this;
newform.show();

gama118
یک شنبه 15 اسفند 1389, 14:38 عصر
ممنون
ولي من نام فرم رو از يه treeview ميخونم و اين دستوري شما رو قبول نكرد!!
[LTR_INLINE]
[LTR_INLINE]
string FormName= Trv_MainTree.SelectedNode.Tag.ToString();
if (FormName != "")
{

object oform = new object();
Type tform=Assembly.GetExecutingAssembly().GetType("NabNet"+"."+FormName);
if (tform != null)
{
oform = Activator.CreateInstance(tform);

((Form)oform).ShowDialog();
}


}]

gama118
یک شنبه 15 اسفند 1389, 15:14 عصر
سلام

ممنون حل شد ولي يه مشكل ديگه پيدا كردم :اشتباه:
من يهtreeview گذاشتم تو فرم اصلي به عنوان منو حالا وقتي فرمي رو تو فرم midi باز ميكنم چون فرم دوم پهناش زيادي نصفش ميره پشت treeview قرار ميگيره
ميخوام روش باشه بايد چيكار كنم ؟

shadi khanum
یک شنبه 15 اسفند 1389, 23:00 عصر
اون treeview که تو MDI داری رو dock Left یا dock right کن

gama118
چهارشنبه 18 اسفند 1389, 14:38 عصر
سلام

خوب dockright كردم ولي وقتي يه فرم رو show مي كنم قسمتي از فرم باز شده ميره زير treeview قرار ميگيره

ali.rezaei7
چهارشنبه 18 اسفند 1389, 19:30 عصر
سلام

ممنون حل شد ولي يه مشكل ديگه پيدا كردم :اشتباه:
من يهtreeview گذاشتم تو فرم اصلي به عنوان منو حالا وقتي فرمي رو تو فرم midi باز ميكنم چون فرم دوم پهناش زيادي نصفش ميره پشت treeview قرار ميگيره
ميخوام روش باشه بايد چيكار كنم ؟

سلام. در گذشته درباره اين موضوع بحث شده بود و از اونجايي كه برطرف كردن اين مشكل هيچ راهي نداشت، به نتيجه نرسيديم. يكي از دوستان هم قسمتي از MSDN رو نقل قول كرده بود كه نشون مي داد اين كار نشدني هست. اما من مي تونم دوتا روش پيشنهاد كنم كه البته هركدوم مشكلات خوشونو دارند.
1- استفاده از تابع اي پي آي SetParent: اين تابع Parent پنجره رو تغيير ميده مشكلش اين هست كه هميشه بالاي تمامي كنترل ها و فرم هاي ديگه قرار ميگيره.
2-يك فرم درست كنيد و كنترل TreeView رو داخل اون قرار بديد و اين فرم رو بصورت Child نشون بديد.