-
1 ضمیمه
مشکل در نمایش فرم در mdiparent
سلام
من یه فرم دارم که وقتی توی mdiparent باز میشه باید اسکرول بشه تا تمام فرم رو ببینم در حالی که فضا داره که نیاز به اسکرول نباشه ، StartPosition رو هم روی هر حالتی میذارم باز هم همین مشکل هست .
توی تصویر زیر مشخصه :
ضمیمه 154261
ممنون میشم راهنمایی بفرمایید
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
WindowState را روی Maximized قرار بده
ضمیمه 154262
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
ممنونم از توجه تون تاحدودی درست شد اما چند تا مساله هست که توی تصویر مشخص کردم .
1- مشکل نمایش سه کلید minimize , restore و close هست در حالی که من نمیخوام این کلید ها نمایش داده بشه .
2- با وجود راه حل شما باز هم فرم به درستی باز نمیشه و مقداری از فرم هنوز پایین تر از فرم mdiform هست .
3- برای درست شدن کامل باید کلید restore رو بزنم تا مشکل کامل بر طرف بشه .
ضمیمه 154263
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
FormBorderStyle را روی None قرار بده
ضمیمه 154264
-
نقل قول: مشکل در نمایش فرم در mdiparent
روی none هست و این مشکل وجود داره
-
نقل قول: مشکل در نمایش فرم در mdiparent
کدهای مربوط به نمایش فرم را بصورت کامل ارسال نمایید.
-
نقل قول: مشکل در نمایش فرم در mdiparent
کد های مربوط به فرم کجاست ؟
-
نقل قول: مشکل در نمایش فرم در mdiparent
شما یکسری کد نوشتین تا "فرم ثبت خروج بار" باز شود
همان کدها را ارسال نمایید
-
نقل قول: مشکل در نمایش فرم در mdiparent
خدمت شما :
frmOutConsignment.MdiParent = Me
frmOutConsignment.Show()
-
نقل قول: مشکل در نمایش فرم در mdiparent
شما فرض کن یک فرم داریم و میخواهیم فرم را داخل یک پنل نمایش بدهیم.
Dim frm As Form2 = New Form2
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
Panel1.Controls.Add(frm)
frm.Show()
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
336699
شما فرض کن یک فرم داریم و میخواهیم فرم را داخل یک پنل نمایش بدهیم.
Dim frm As Form2 = New Form2
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
Panel1.Controls.Add(frm)
frm.Show()
هیچ فرقی نکرد هنوز هموطوری باز میشه
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
teymoorei
هیچ فرقی نکرد هنوز هموطوری باز میشه
اون قسمت خاکستری رنگ چی هستش؟ پنل هستش یا؟
-
نقل قول: مشکل در نمایش فرم در mdiparent
-
نقل قول: مشکل در نمایش فرم در mdiparent
با همین کد تست کردم تمام صفحه فرم را نمایش میده.
Dim frm2 As Form = New Form2()
frm2.MdiParent = Me
frm2.Dock = DockStyle.Fill
frm2.FormBorderStyle = FormBorderStyle.None
frm2.Show()
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
ممنونم از لطف و پیگیری شما
اگه با کد ی که شما دادید و windowsstate = maximaize بشکل زیر نمایش میده :
ضمیمه 154273
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
الان مشکل در طراحی همین فرم هستش
با استفاده از Anchor برای هریک از کنترل های روی فرم میتوانید تعیین کنید که وقتی فرم تغییر سایز پیدا کرد کدوم سمت قرار بگیرند.
ضمیمه 154274
-
نقل قول: مشکل در نمایش فرم در mdiparent
-
نقل قول: مشکل در نمایش فرم در mdiparent
من نیاز به anchor ندارم و فقط میخوام زمان باز شدن فرم در درون فرم mdiparent در بالا ترین حالت ممکن باز بشه همین.
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
اون قسمت سفید رنگ هم در واقع ادامه فرم ثبت خروج بار هستش که خالی مونده
شما باید فرم را طوری طراحی بکنید که با افزایش و یا کاهش ابعاد فرم، کنترل های موجود در فرم هم متناسب با اون جابجا بشن و تغییر سایز پیدا کنن تا این مشکل پیش نیاد
ضمیمه 154275
-
2 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
شما این فرم نمونه رو تست کن
با تغییر سایز فرم کنترلها جابجا و تغییر سایز میدن
ضمیمه 154276
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
336699
اون قسمت سفید رنگ هم در واقع ادامه
فرم ثبت خروج بار هستش که
خالی مونده
شما باید فرم را طوری طراحی بکنید که با افزایش و یا کاهش ابعاد فرم، کنترل های موجود در فرم هم متناسب با اون جابجا بشن و تغییر سایز پیدا کنن تا این مشکل پیش نیاد
ضمیمه 154275
سلام مجدد ممنونم از لطف و وقتی که میذارید
اما من نمیخوام فرمم تغییر سایز داشته باشه .
فقط میخوام یه مقدار بالا تر نمایش داده بشه
تصویر زیر گویای منطورم هست :
ضمیمه 154278
-
نقل قول: مشکل در نمایش فرم در mdiparent
در این صورت StartPosition بصورت Manual باشد و WindowState هم باید Normal باشد.
فاصله از بالا را صفر میگیریم
فاصله از طرفین هم باید بصورت اتومات محاسبه شود(عرض فرم mdi را منهای عرض فرمی که قرار است نمایش دهیم میکنیم و سپس نتیجه را تقسیم بر دو میکنیم)
Dim frm2 As Form = New Form2()
frm2.MdiParent = Me
frm2.Dock = DockStyle.None
frm2.FormBorderStyle = FormBorderStyle.None
frm2.WindowState = FormWindowState.Normal
frm2.StartPosition = FormStartPosition.Manual
Dim x As Integer = (Me.Width - frm2.Width) \ 2
frm2.Location = New Point(x, 0)
frm2.Show()
-
نقل قول: مشکل در نمایش فرم در mdiparent
سلام هیچ فرقی نکرد و جالبه که عدد هم میدم یا هر تغییری انجام میدم بازم فرقی نمیکنه توی نحوه ی نمایش فرم
-
نقل قول: مشکل در نمایش فرم در mdiparent
یک اسکرین شات از کدهایی که نوشتین بفرستین
-
1 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
تصویر پایین اسکرین شات میباشد :
ضمیمه 154279
-
3 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام.
- قبل از هرچیز باید برای اشیاء فرم یک Panel داشته باشیم.
- خصوصیت aNCHOR از pANEL رو برابر None می کنیم:
ضمیمه 154280 - Panel رو انتخاب و از نوار ابزار Layout کلید Center Horizontally را می کلیکیم.
ضمیمه 154281
ضمیمه 154282
حالا با آسایش خاطر می توان ابعاد فرم را تغییر دهیم و اشیاء در وسط و بالای فرم باقی می ماند. :لبخندساده:
-
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
:عصبانی++:
والا بخدا من نمخوام اشیا تغییر مکان یا تغییر سایز داشته باشن .
همه چی توی تصویر اسکرین شاتم مشخصه .
من فقط میخوام فرم فرزند در بالا ترین حالت خود (نزدیکه با حاشیه بالا) فرم پدر باشه همین .
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
teymoorei
سلام
:عصبانی++:
والا بخدا من نمخوام اشیا تغییر مکان یا تغییر سایز داشته باشن .
همه چی توی تصویر اسکرین شاتم مشخصه .
من فقط میخوام فرم فرزند در بالا ترین حالت خود (نزدیکه با حاشیه بالا) فرم پدر باشه همین .
بهتره همیشه در حالت Maximized نگهش داری. Child Form رو می گم.
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
teymoorei
اون پنل کجاست که مخفی کردین در ابتدای کد؟
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
336699
اون پنل کجاست که مخفی کردین در ابتدای کد؟
اون پنل چیز خاصی نیست .
یه پنله که دو تا کلید روش دارم که وقتی فرم باز میشه اون پنا visible اش false میشه
-
نقل قول: مشکل در نمایش فرم در mdiparent
فرم mdi خیلی داغونه
شما بجاش از پنل استفاده کنید و فرم را داخل پنل نمایش بدین.
-
نقل قول: مشکل در نمایش فرم در mdiparent
یعنی که فرم معمولی بجای mdi بذارم و داخل فرم یه فرم دیگه باز کنم ؟
-
2 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
-
نقل قول: مشکل در نمایش فرم در mdiparent
ابتدا در فرم اصلی isMdiContainer را غیر فعال کنید
ضمیمه 154283
سپس یک پنل به فرم اصلی اضافه کنید و Dock پنل را روی حالت Fill قرار دهید
ضمیمه 154284
سپس با استفاده از کد زیر، فرم را داخل پنل نمایش دهید
Dim frm As Form = New Form1()
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
Panel1.Controls.Add(frm)
frm.Show()
-
نقل قول: مشکل در نمایش فرم در mdiparent
البته کد بالا برای حالت تمام صفحه هستش
با کد زیر میتوان فرم را در وسط و متصل به بالای صفحه نمایش داد
Dim frm As Form = New Form1()
frm.TopLevel = False
frm.Dock = DockStyle.None
frm.FormBorderStyle = FormBorderStyle.None
frm.WindowState = FormWindowState.Normal
frm.StartPosition = FormStartPosition.Manual
Dim x As Integer = (Panel1.Width - frm.Width) \ 2
frm.Location = New Point(x, 0)
Panel1.Controls.Add(frm)
frm.Show()
-
2 ضمیمه
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
ممنونم از لطف تون
آموزش جالبی بود بعد این همه سال فکر نمیکردم با یه Panel بشه همچین کاری کرد .
اما چند نکته :
1- هنوز هم فاصله کمی از فرم فرزند تا بالای فرم اصلی ایجاد میشه (البته تو یه پروژه دیگه امتحان کردم درست کارکرد) :
اینم تصویرش :
ضمیمه 154285
2- جالبه دو تا فرم رو درست باز کرد اما یه فرمم رو میبره زیر منو باز میکنه تمام تنظیمات و کد ها هم شبیه همه .
اینم تصویر فرم :
ضمیمه 154286
3- من یه StatusStrip دارم زمانی که WindowState رو روی Maximaize میذارم ، StatusStrip رو نمایش نمیده البته اگه پنجره رو کوچک تر کنم نمایش میده یعنی در حالت عادی میره زیر TaskBar .
-
نقل قول: مشکل در نمایش فرم در mdiparent
یک مورد هم برای جلوگیری از دوبار بازشدن فرم هستش
ابتدا بررسی میکنیم اگر فرم باز بود، دوباره فرم را باز نکند.
البته این مورد ربطی به اون مشکل ایجاد فاصله ندارد.
For Each f As Form In Application.OpenForms
If f.GetType() = GetType(Form1) Then
f.Activate()
Return
End If
Next
Dim frm As Form = New Form1()
frm.TopLevel = False
frm.Dock = DockStyle.None
frm.FormBorderStyle = FormBorderStyle.None
frm.WindowState = FormWindowState.Normal
frm.StartPosition = FormStartPosition.Manual
Dim x As Integer = (Panel1.Width - frm.Width) \ 2
frm.Location = New Point(x, 0)
Panel1.Controls.Add(frm)
frm.Show()
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
teymoorei
سلام
ممنونم از لطف تون
آموزش جالبی بود بعد این همه سال فکر نمیکردم با یه Panel بشه همچین کاری کرد .
اما چند نکته :
1- هنوز هم
فاصله کمی از فرم فرزند تا بالای فرم اصلی ایجاد میشه (البته تو یه پروژه دیگه امتحان کردم درست کارکرد) :
اینم تصویرش :
ضمیمه 154285
2- جالبه دو تا فرم رو درست باز کرد
اما یه فرمم رو میبره زیر منو باز میکنه تمام تنظیمات و کد ها هم شبیه همه .
اینم تصویر فرم :
ضمیمه 154286
3- من یه
StatusStrip دارم زمانی که
WindowState رو روی
Maximaize میذارم ،
StatusStrip رو نمایش نمیده البته اگه پنجره رو کوچک تر کنم نمایش میده یعنی در حالت عادی میره زیر TaskBar .
ممنونم اگه میشه مشکلات من رو بررسی بفرمایید .
ممکنه این سوالات مشکل خیلی از دوستان رو بر طرف کنه
-
نقل قول: مشکل در نمایش فرم در mdiparent
نقل قول:
نوشته شده توسط
teymoorei
ممنونم اگه میشه مشکلات من رو بررسی بفرمایید .
ممکنه این سوالات مشکل خیلی از دوستان رو بر طرف کنه
همانطور خودتان هم اعلام کردین، در یک پروژه دیگه به درستی کار میکنه
یک راهش اینه که شما درصورت تمایل پروژه رو ارسال کنید ببینیم مشکل از کجاست، چون از طریق اسکرین شات هیچ کمکی نمیشه کرد.
-
نقل قول: مشکل در نمایش فرم در mdiparent
سلام
پیام خصوصی ارسال نمیشه
اگه ممکنه یه ایمیل بدید تا پروژه رو ارسال کنم
-
نقل قول: مشکل در نمایش فرم در mdiparent
دوستان اگه ممکنه راهنمایی بفرمایید