View Full Version : باز نمودن چندین فرم در یک فرم
helpsos
جمعه 22 اردیبهشت 1391, 23:18 عصر
می خواهیم در WPF کاربر بتواند فرم های مختلف برنامه را باز کند و عملیات مورد نظر را انجام داده سپس در صورت تمایل فرم را ببندد.
اگر از دستور form1.show() استفاده کنی که هر بار این فرم را باز می کند و چندین فرم از یک نمونه را داریم.
اگر از دستور form1.showdialog() استفاده کنیم که کاربر فقط می تونه از یک فرم استفاده کنه.
*** تقریبا مثل فرم های mdi بشه طراحی کرد *********
در فایل ضمیمه نمونه ای هست که مشکلش این است که نمیتوان focus را به فرم باز مورد نظر داد.
حالا اگر کسی راهی بلته بفرمادددد؟
مهدی فرزاد
شنبه 23 اردیبهشت 1391, 08:11 صبح
سلام
http://wpfmdi.codeplex.com/
منظورتون از نوشته زیر چی هست؟
گر از دستور form1.show() استفاده کنی که هر بار این فرم را باز می کند و چندین فرم از یک نمونه را داریم.
helpsos
شنبه 23 اردیبهشت 1391, 23:25 عصر
سلام
http://wpfmdi.codeplex.com/
منظورتون از نوشته زیر چی هست؟
چون نمی شود فرم 1 که باز شده است را تشخیص داد از یک فرم چند تا باز میشه
اما در مورد mdi ها من فرم هام آماده است ولی در اون سایت گفته که باید فرم را بسازیم البته اگر درست متوجه شده باشم و
اگر اشتباه متوجه شده ام مرا با یک نمونه برنامه توجیه نمایید :تشویق:
با تشکر فراوان
مهدی فرزاد
شنبه 30 اردیبهشت 1391, 13:22 عصر
سلام
چون نمی شود فرم 1 که باز شده است را تشخیص داد از یک فرم چند تا باز میشه
var item = App.Current.Windows.Cast<Window>().SingleOrDefault(a=> a.IsLoaded == true && a.GetType().Name == "Window1");
if (item != null)
{
if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Normal)
{
item.Activate();
}
else if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Minimized)
{
item.WindowState = System.Windows.WindowState.Normal;
}
}
else
{
Window1 win = new Window1();
win.Show();
}
helpsos
سه شنبه 09 خرداد 1391, 23:38 عصر
با سلام
از راهنمایی شما ممنون
و اما بعد:
خب حالا این مشکل پیش میاد که مثلا اگه ما بخواهیم یک تب کنترل را درون فرمی که باز هست ولی اکتیو نیست را انتخاب کنیم با مشکل رو به رو می شویم
در فایل زیر شاید بهتر متوجه شوید
حالا باید چکار کرد ؟؟؟؟؟/:متفکر::متفکر:
مهدی فرزاد
چهارشنبه 10 خرداد 1391, 07:59 صبح
سلام
private void TAB1_button_Click(object sender, RoutedEventArgs e)
{
var item = App.Current.Windows.Cast<Window>().SingleOrDefault(a => a.IsLoaded == true && a.GetType().Name == "Window1");
if (item != null)
{
if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Normal)
{
item.Activate();
}
else if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Minimized)
{
item.WindowState = System.Windows.WindowState.Normal;
}
(item as Window1).tabItem1.IsSelected = true;
}
else
{
Window1 win = new Window1();
win.Owner = this;
win.tabItem1.IsSelected = true;
win.Show();
}
}
private void TAB2_button_Click(object sender, RoutedEventArgs e)
{
var item = App.Current.Windows.Cast<Window>().SingleOrDefault(a => a.IsLoaded == true && a.GetType().Name == "Window1");
if (item != null)
{
if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Normal)
{
item.Activate();
}
else if (item.IsActive == false && item.WindowState == System.Windows.WindowState.Minimized)
{
item.WindowState = System.Windows.WindowState.Normal;
}
(item as Window1).tabItem2.IsSelected = true;
}
else
{
Window1 win = new Window1();
win.Owner = this;
win.tabItem2.IsSelected=true;
win.Show();
}
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.