55 个解决方案
#1
form2 f2=new form2();
f2.show();
this.hide();
f2.show();
this.hide();
#2
为什么不能隐藏呢。。。
#3
隐藏占用内存资源啊,所以不隐藏!
#4
只见过隐藏的,学习~
#5
要是隐藏那问题就变得简单了,不过谢谢二位了!大家都一起学习!
#6
form2 f2=new form2();
f2.show();
this.Dispose();
#7
1、窗体设计成一个类。
2、主窗体隐藏并构造自己设计的 窗体对象,并将自己的窗体Show。
3、关闭窗体就是 析构窗体对象。
2、主窗体隐藏并构造自己设计的 窗体对象,并将自己的窗体Show。
3、关闭窗体就是 析构窗体对象。
#8
这样一样会占资源的..
你FROM2是在这个窗体实例的..FORM2没销毁,WINDOWS是不中释放FORM1的..
#9
晕,楼上好快,我刚写完...
#10
还是不行,两个都关了啊!
#11
form f1=new form();
f1.f1.ShowDialog();
this.hide;
f1.f1.ShowDialog();
this.hide;
#12
学习一下!!
#13
学习一下。
#14
如果主窗体为Form1,子窗体为Form2
把Form1的属性:isMdicontainer设置为true
给主窗体中拉进一个botton1;双击(写代码)
如下:
Form2 myForm2 = new Form2();
myForm2.MdiParent = this;
this.close();
myForm2.Show();
把Form1的属性:isMdicontainer设置为true
给主窗体中拉进一个botton1;双击(写代码)
如下:
Form2 myForm2 = new Form2();
myForm2.MdiParent = this;
this.close();
myForm2.Show();
#15
强调一点,就是不可能打开一个子窗体再把主窗体给关掉,效果是什么都没打开,但程序直接就关闭了~
#16
把主窗体一开始就做成隐藏的,在后台运行,并自动呼叫一个子窗体1~
把一个子窗体1做成貌似主窗体的样子~在他上边呼叫子窗体2~
这样几个子窗体之间关关开开对主窗体都不造成影响了~~
代码不会写,这是觉得应该这样去实现~·不晓得有没有参考价值~学习了。
把一个子窗体1做成貌似主窗体的样子~在他上边呼叫子窗体2~
这样几个子窗体之间关关开开对主窗体都不造成影响了~~
代码不会写,这是觉得应该这样去实现~·不晓得有没有参考价值~学习了。
#17
是否要做登录界面啊?下面是例子,测试通过.
新建项目添加两窗体frmLogin,frmMain,frmLogin窗体中添加两按钮,分别命名为btnOK,btnCancel,按钮代码如下:
Main方法代码:
新建项目添加两窗体frmLogin,frmMain,frmLogin窗体中添加两按钮,分别命名为btnOK,btnCancel,按钮代码如下:
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
Main方法代码:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin login = new frmLogin();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
#18
frm2 fr = new frm2();
fr.show();
this.Visible = false;
fr.show();
this.Visible = false;
#19
最好通过js实现,通过windows弹出窗体实现。Response.Write("<script>alert('" + sMessage + "');window.opener=null;window.close()</script>")
#20
别析构主窗体,否则肯定要关的,主窗体隐藏,弹出子窗体,子窗体再切换的时候可以把没用的子窗体析构。
#21
不能关闭主窗体,要不然你就连进程给关了,当然就不能显示第二个窗体了
#22
主窗体是不能被关闭的,否则整个程序将结束,所以你想真正关闭主窗体而运行其他窗体无解。。。其他窗体可以用Close方法关闭,这样也只有一个窗体在运行啊,能占用多少资源??不要哪么偏激。
#23
主窗体用
f2.show();
this.hide();
其他子窗体用
f1.show();
this.Close();
就可以了
f2.show();
this.hide();
其他子窗体用
f1.show();
this.Close();
就可以了
#24
哦,谢谢各位啦!要是可以的话,请帮帮忙!
#25
学习
#26
17楼正解!!!
#27
你迄今做的项目,(除了退出程序)有哪个窗体关闭后是完全释放资源的?
#28
把main函数改成
[STAThread]
static void Main()
{
// 设置需要显式的调用Application.Shutdown 方法调用来停止应用程序。
// 默认为OnMainWindowClose
Application.ShutdownMode = ShutdownMode.OnExplicitShutdown;
Application.Run(new FrmMain());
}
这样进程就不会随着你的主窗体的关闭而关闭了。
[STAThread]
static void Main()
{
// 设置需要显式的调用Application.Shutdown 方法调用来停止应用程序。
// 默认为OnMainWindowClose
Application.ShutdownMode = ShutdownMode.OnExplicitShutdown;
Application.Run(new FrmMain());
}
这样进程就不会随着你的主窗体的关闭而关闭了。
#29
正解
#30
帮17楼顶一下
#31
不是做登录界面,我做的只是普通的窗体,不过还是谢谢各位!
#32
隐藏就行了吧,我没见过做关闭的。要么你就启动的时候先启动登录窗体。
#33
17楼可以,我试了~!我之前做登陆页是用隐藏,学习了~!!
#34
16楼想法很好
有新意
有新意
#35
多线程不知是否可以
#36
学习
#37
17L,长见识了,我还没看到过这样写登陆界面的呵呵,谢谢。
form2 f2=new form2();
f2.show();
this.Close
一般这样写的,会把整个程序关闭,原因是因为Form1拥有Main的UI线程,所以关闭导致整个程序关闭。
一般写登陆简单的是
form2 f2=new form2();
f2.show();
this.Hide();
就是把它隐藏了。但是要记住,当你MainForm关闭的时候不能this.Close()来关闭程序。
应该 Application .Exit ()来退出,因为前者没有关闭UI线程,也就是主线程。
贴出我的写法
private void FormStart()//声明一个发开Form2的方法
{
Application.Run(new Form2());//运行1个新的程序窗口
}
private void button1_Click(object sender, EventArgs e)//form1的按钮点击事件
{
Thread thread = new Thread(new ThreadStart(FormStart));//这里可能有人看不懂,ThreadStart方法参数是上面那个方法名,对方法被作为参数了,如果你看过委托就会了,当然这里不是讨论委托。
thread.Start();//定义1个线程;执行FormsStrat函数;
this.Close();
}
用到了线程来写。添加引用using System.Threading;就这么简单。很多人不会做系统重新登陆,用这个方法也可以做的。
form2 f2=new form2();
f2.show();
this.Close
一般这样写的,会把整个程序关闭,原因是因为Form1拥有Main的UI线程,所以关闭导致整个程序关闭。
一般写登陆简单的是
form2 f2=new form2();
f2.show();
this.Hide();
就是把它隐藏了。但是要记住,当你MainForm关闭的时候不能this.Close()来关闭程序。
应该 Application .Exit ()来退出,因为前者没有关闭UI线程,也就是主线程。
贴出我的写法
private void FormStart()//声明一个发开Form2的方法
{
Application.Run(new Form2());//运行1个新的程序窗口
}
private void button1_Click(object sender, EventArgs e)//form1的按钮点击事件
{
Thread thread = new Thread(new ThreadStart(FormStart));//这里可能有人看不懂,ThreadStart方法参数是上面那个方法名,对方法被作为参数了,如果你看过委托就会了,当然这里不是讨论委托。
thread.Start();//定义1个线程;执行FormsStrat函数;
this.Close();
}
用到了线程来写。添加引用using System.Threading;就这么简单。很多人不会做系统重新登陆,用这个方法也可以做的。
#38
你可以在Program.cs文檔中這樣寫
方法1:
static void main()
{
form1 frm=new form1();
application.run(frm);
if(frm.DialogResult==dialogresult.ok)
application(new form2());
}
form1中的button click 事件
{
this.dialogresult=dialogresult.ok;
this.close();
}
方法2:
用線程做
private void openForm()
{
form2 frm=new form2();
frm.showdialog();
}
form1 button click事件
{
thread t=new thread(openform);
t.start();
}
方法上為樓上
方法1:
static void main()
{
form1 frm=new form1();
application.run(frm);
if(frm.DialogResult==dialogresult.ok)
application(new form2());
}
form1中的button click 事件
{
this.dialogresult=dialogresult.ok;
this.close();
}
方法2:
用線程做
private void openForm()
{
form2 frm=new form2();
frm.showdialog();
}
form1 button click事件
{
thread t=new thread(openform);
t.start();
}
方法上為樓上
#39
如果做登录窗口,17楼的才是正解
application.run的才是真正的主窗口,即主消息循环,登录对话框是不应该通过application.run的方式运行然后隐藏的,这是很不好的编程习惯
application.run的才是真正的主窗口,即主消息循环,登录对话框是不应该通过application.run的方式运行然后隐藏的,这是很不好的编程习惯
#40
更本没必要这样。、直接跳转
Response.Redirect("跳转的页面");
Response.Redirect("跳转的页面");
#41
在主窗口的load函数中写代码:
Form2 form2=new Form2();
form2.form1=this;
form2.show();
this.visible=false;
//
//
在登陆窗口的Button的Click事件函数中写代码:(Form2中有个类型为主窗口form1的属性)
form1.visible=true;
this.close();
Form2 form2=new Form2();
form2.form1=this;
form2.show();
this.visible=false;
//
//
在登陆窗口的Button的Click事件函数中写代码:(Form2中有个类型为主窗口form1的属性)
form1.visible=true;
this.close();
#42
将form的引用放在主窗口
Form2中代码:
mainform.form3 = new Form3();
form3.show();
this.Close();
Form2中代码:
mainform.form3 = new Form3();
form3.show();
this.Close();
#43
我 在 winform 中 遇到 这样的问题
一个窗体上 的控件要是超过20个的话(这些控件 都有背景图片)
在首次显示时 会出现 绘制刷屏
如果在该窗体显示后再最小化再最大化后
还会出现这样的效果
然后为了减轻这样的负面效果
我试用了下面的方法
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
frm.BackgroundImage = Common.GetImageByPath(string.Format(DPPath,btn.Tag));
但是主窗体的背景图片又绘制不上去……
有没有 别的方法处理 winform 中的 刷屏现象
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
我也用了但是还是那样……
或者说
在
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
如此设置下 怎么么把窗体的背景图片绘制上去……
据我判断:刷屏现象是应为窗体上的图片太多 我做的这个东东类似“连连看”游戏
本来最适合用C++做,但我已经用winform做了请各位帮帮忙……ss
一个窗体上 的控件要是超过20个的话(这些控件 都有背景图片)
在首次显示时 会出现 绘制刷屏
如果在该窗体显示后再最小化再最大化后
还会出现这样的效果
然后为了减轻这样的负面效果
我试用了下面的方法
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
frm.BackgroundImage = Common.GetImageByPath(string.Format(DPPath,btn.Tag));
但是主窗体的背景图片又绘制不上去……
有没有 别的方法处理 winform 中的 刷屏现象
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
我也用了但是还是那样……
或者说
在
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
如此设置下 怎么么把窗体的背景图片绘制上去……
据我判断:刷屏现象是应为窗体上的图片太多 我做的这个东东类似“连连看”游戏
本来最适合用C++做,但我已经用winform做了请各位帮帮忙……ss
#44
[align=center]Form1 form = new Form1();
form.show();
this.Dispose(false);[/align]
这个可以!!!
form.show();
this.Dispose(false);[/align]
这个可以!!!
#45
17楼方法真的不错 十分感谢
#46
form2 f2=new form2();
f2.show();
this.hide();
这个方法可以用
f2.show();
this.hide();
这个方法可以用
#47
还是不行,两个都关了啊!
#48
不能关了第一个吗??只能隐藏??
#49
把Main方法中
Application.Run(new Form1());
改为
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
但是这样程序的Exit是个问题。
Application.Run(new Form1());
改为
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
但是这样程序的Exit是个问题。
#50
this.Hide();
FromName form =new FromName();
form.ShowDialog();
this.Close();
先隐藏,再关闭。这样子就不会把主窗体也Close了。
FromName form =new FromName();
form.ShowDialog();
this.Close();
先隐藏,再关闭。这样子就不会把主窗体也Close了。
#1
form2 f2=new form2();
f2.show();
this.hide();
f2.show();
this.hide();
#2
为什么不能隐藏呢。。。
#3
隐藏占用内存资源啊,所以不隐藏!
#4
只见过隐藏的,学习~
#5
要是隐藏那问题就变得简单了,不过谢谢二位了!大家都一起学习!
#6
form2 f2=new form2();
f2.show();
this.Dispose();
#7
1、窗体设计成一个类。
2、主窗体隐藏并构造自己设计的 窗体对象,并将自己的窗体Show。
3、关闭窗体就是 析构窗体对象。
2、主窗体隐藏并构造自己设计的 窗体对象,并将自己的窗体Show。
3、关闭窗体就是 析构窗体对象。
#8
这样一样会占资源的..
你FROM2是在这个窗体实例的..FORM2没销毁,WINDOWS是不中释放FORM1的..
#9
晕,楼上好快,我刚写完...
#10
还是不行,两个都关了啊!
#11
form f1=new form();
f1.f1.ShowDialog();
this.hide;
f1.f1.ShowDialog();
this.hide;
#12
学习一下!!
#13
学习一下。
#14
如果主窗体为Form1,子窗体为Form2
把Form1的属性:isMdicontainer设置为true
给主窗体中拉进一个botton1;双击(写代码)
如下:
Form2 myForm2 = new Form2();
myForm2.MdiParent = this;
this.close();
myForm2.Show();
把Form1的属性:isMdicontainer设置为true
给主窗体中拉进一个botton1;双击(写代码)
如下:
Form2 myForm2 = new Form2();
myForm2.MdiParent = this;
this.close();
myForm2.Show();
#15
强调一点,就是不可能打开一个子窗体再把主窗体给关掉,效果是什么都没打开,但程序直接就关闭了~
#16
把主窗体一开始就做成隐藏的,在后台运行,并自动呼叫一个子窗体1~
把一个子窗体1做成貌似主窗体的样子~在他上边呼叫子窗体2~
这样几个子窗体之间关关开开对主窗体都不造成影响了~~
代码不会写,这是觉得应该这样去实现~·不晓得有没有参考价值~学习了。
把一个子窗体1做成貌似主窗体的样子~在他上边呼叫子窗体2~
这样几个子窗体之间关关开开对主窗体都不造成影响了~~
代码不会写,这是觉得应该这样去实现~·不晓得有没有参考价值~学习了。
#17
是否要做登录界面啊?下面是例子,测试通过.
新建项目添加两窗体frmLogin,frmMain,frmLogin窗体中添加两按钮,分别命名为btnOK,btnCancel,按钮代码如下:
Main方法代码:
新建项目添加两窗体frmLogin,frmMain,frmLogin窗体中添加两按钮,分别命名为btnOK,btnCancel,按钮代码如下:
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
Main方法代码:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin login = new frmLogin();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
#18
frm2 fr = new frm2();
fr.show();
this.Visible = false;
fr.show();
this.Visible = false;
#19
最好通过js实现,通过windows弹出窗体实现。Response.Write("<script>alert('" + sMessage + "');window.opener=null;window.close()</script>")
#20
别析构主窗体,否则肯定要关的,主窗体隐藏,弹出子窗体,子窗体再切换的时候可以把没用的子窗体析构。
#21
不能关闭主窗体,要不然你就连进程给关了,当然就不能显示第二个窗体了
#22
主窗体是不能被关闭的,否则整个程序将结束,所以你想真正关闭主窗体而运行其他窗体无解。。。其他窗体可以用Close方法关闭,这样也只有一个窗体在运行啊,能占用多少资源??不要哪么偏激。
#23
主窗体用
f2.show();
this.hide();
其他子窗体用
f1.show();
this.Close();
就可以了
f2.show();
this.hide();
其他子窗体用
f1.show();
this.Close();
就可以了
#24
哦,谢谢各位啦!要是可以的话,请帮帮忙!
#25
学习
#26
17楼正解!!!
#27
你迄今做的项目,(除了退出程序)有哪个窗体关闭后是完全释放资源的?
#28
把main函数改成
[STAThread]
static void Main()
{
// 设置需要显式的调用Application.Shutdown 方法调用来停止应用程序。
// 默认为OnMainWindowClose
Application.ShutdownMode = ShutdownMode.OnExplicitShutdown;
Application.Run(new FrmMain());
}
这样进程就不会随着你的主窗体的关闭而关闭了。
[STAThread]
static void Main()
{
// 设置需要显式的调用Application.Shutdown 方法调用来停止应用程序。
// 默认为OnMainWindowClose
Application.ShutdownMode = ShutdownMode.OnExplicitShutdown;
Application.Run(new FrmMain());
}
这样进程就不会随着你的主窗体的关闭而关闭了。
#29
正解
#30
帮17楼顶一下
#31
不是做登录界面,我做的只是普通的窗体,不过还是谢谢各位!
#32
隐藏就行了吧,我没见过做关闭的。要么你就启动的时候先启动登录窗体。
#33
17楼可以,我试了~!我之前做登陆页是用隐藏,学习了~!!
#34
16楼想法很好
有新意
有新意
#35
多线程不知是否可以
#36
学习
#37
17L,长见识了,我还没看到过这样写登陆界面的呵呵,谢谢。
form2 f2=new form2();
f2.show();
this.Close
一般这样写的,会把整个程序关闭,原因是因为Form1拥有Main的UI线程,所以关闭导致整个程序关闭。
一般写登陆简单的是
form2 f2=new form2();
f2.show();
this.Hide();
就是把它隐藏了。但是要记住,当你MainForm关闭的时候不能this.Close()来关闭程序。
应该 Application .Exit ()来退出,因为前者没有关闭UI线程,也就是主线程。
贴出我的写法
private void FormStart()//声明一个发开Form2的方法
{
Application.Run(new Form2());//运行1个新的程序窗口
}
private void button1_Click(object sender, EventArgs e)//form1的按钮点击事件
{
Thread thread = new Thread(new ThreadStart(FormStart));//这里可能有人看不懂,ThreadStart方法参数是上面那个方法名,对方法被作为参数了,如果你看过委托就会了,当然这里不是讨论委托。
thread.Start();//定义1个线程;执行FormsStrat函数;
this.Close();
}
用到了线程来写。添加引用using System.Threading;就这么简单。很多人不会做系统重新登陆,用这个方法也可以做的。
form2 f2=new form2();
f2.show();
this.Close
一般这样写的,会把整个程序关闭,原因是因为Form1拥有Main的UI线程,所以关闭导致整个程序关闭。
一般写登陆简单的是
form2 f2=new form2();
f2.show();
this.Hide();
就是把它隐藏了。但是要记住,当你MainForm关闭的时候不能this.Close()来关闭程序。
应该 Application .Exit ()来退出,因为前者没有关闭UI线程,也就是主线程。
贴出我的写法
private void FormStart()//声明一个发开Form2的方法
{
Application.Run(new Form2());//运行1个新的程序窗口
}
private void button1_Click(object sender, EventArgs e)//form1的按钮点击事件
{
Thread thread = new Thread(new ThreadStart(FormStart));//这里可能有人看不懂,ThreadStart方法参数是上面那个方法名,对方法被作为参数了,如果你看过委托就会了,当然这里不是讨论委托。
thread.Start();//定义1个线程;执行FormsStrat函数;
this.Close();
}
用到了线程来写。添加引用using System.Threading;就这么简单。很多人不会做系统重新登陆,用这个方法也可以做的。
#38
你可以在Program.cs文檔中這樣寫
方法1:
static void main()
{
form1 frm=new form1();
application.run(frm);
if(frm.DialogResult==dialogresult.ok)
application(new form2());
}
form1中的button click 事件
{
this.dialogresult=dialogresult.ok;
this.close();
}
方法2:
用線程做
private void openForm()
{
form2 frm=new form2();
frm.showdialog();
}
form1 button click事件
{
thread t=new thread(openform);
t.start();
}
方法上為樓上
方法1:
static void main()
{
form1 frm=new form1();
application.run(frm);
if(frm.DialogResult==dialogresult.ok)
application(new form2());
}
form1中的button click 事件
{
this.dialogresult=dialogresult.ok;
this.close();
}
方法2:
用線程做
private void openForm()
{
form2 frm=new form2();
frm.showdialog();
}
form1 button click事件
{
thread t=new thread(openform);
t.start();
}
方法上為樓上
#39
如果做登录窗口,17楼的才是正解
application.run的才是真正的主窗口,即主消息循环,登录对话框是不应该通过application.run的方式运行然后隐藏的,这是很不好的编程习惯
application.run的才是真正的主窗口,即主消息循环,登录对话框是不应该通过application.run的方式运行然后隐藏的,这是很不好的编程习惯
#40
更本没必要这样。、直接跳转
Response.Redirect("跳转的页面");
Response.Redirect("跳转的页面");
#41
在主窗口的load函数中写代码:
Form2 form2=new Form2();
form2.form1=this;
form2.show();
this.visible=false;
//
//
在登陆窗口的Button的Click事件函数中写代码:(Form2中有个类型为主窗口form1的属性)
form1.visible=true;
this.close();
Form2 form2=new Form2();
form2.form1=this;
form2.show();
this.visible=false;
//
//
在登陆窗口的Button的Click事件函数中写代码:(Form2中有个类型为主窗口form1的属性)
form1.visible=true;
this.close();
#42
将form的引用放在主窗口
Form2中代码:
mainform.form3 = new Form3();
form3.show();
this.Close();
Form2中代码:
mainform.form3 = new Form3();
form3.show();
this.Close();
#43
我 在 winform 中 遇到 这样的问题
一个窗体上 的控件要是超过20个的话(这些控件 都有背景图片)
在首次显示时 会出现 绘制刷屏
如果在该窗体显示后再最小化再最大化后
还会出现这样的效果
然后为了减轻这样的负面效果
我试用了下面的方法
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
frm.BackgroundImage = Common.GetImageByPath(string.Format(DPPath,btn.Tag));
但是主窗体的背景图片又绘制不上去……
有没有 别的方法处理 winform 中的 刷屏现象
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
我也用了但是还是那样……
或者说
在
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
如此设置下 怎么么把窗体的背景图片绘制上去……
据我判断:刷屏现象是应为窗体上的图片太多 我做的这个东东类似“连连看”游戏
本来最适合用C++做,但我已经用winform做了请各位帮帮忙……ss
一个窗体上 的控件要是超过20个的话(这些控件 都有背景图片)
在首次显示时 会出现 绘制刷屏
如果在该窗体显示后再最小化再最大化后
还会出现这样的效果
然后为了减轻这样的负面效果
我试用了下面的方法
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
frm.BackgroundImage = Common.GetImageByPath(string.Format(DPPath,btn.Tag));
但是主窗体的背景图片又绘制不上去……
有没有 别的方法处理 winform 中的 刷屏现象
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
我也用了但是还是那样……
或者说
在
frm.RightToLeft = RightToLeft.Yes;
frm.RightToLeftLayout = true;
如此设置下 怎么么把窗体的背景图片绘制上去……
据我判断:刷屏现象是应为窗体上的图片太多 我做的这个东东类似“连连看”游戏
本来最适合用C++做,但我已经用winform做了请各位帮帮忙……ss
#44
[align=center]Form1 form = new Form1();
form.show();
this.Dispose(false);[/align]
这个可以!!!
form.show();
this.Dispose(false);[/align]
这个可以!!!
#45
17楼方法真的不错 十分感谢
#46
form2 f2=new form2();
f2.show();
this.hide();
这个方法可以用
f2.show();
this.hide();
这个方法可以用
#47
还是不行,两个都关了啊!
#48
不能关了第一个吗??只能隐藏??
#49
把Main方法中
Application.Run(new Form1());
改为
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
但是这样程序的Exit是个问题。
Application.Run(new Form1());
改为
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
但是这样程序的Exit是个问题。
#50
this.Hide();
FromName form =new FromName();
form.ShowDialog();
this.Close();
先隐藏,再关闭。这样子就不会把主窗体也Close了。
FromName form =new FromName();
form.ShowDialog();
this.Close();
先隐藏,再关闭。这样子就不会把主窗体也Close了。