怎么才能让窗口不闪烁 在Load事件中关闭窗口,怎样才能不闪烁 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Load事件里第一行加:this.Visible=false; 试试~ 在构造函数和Load中都试了不行 this.EnableViewState = false; [DllImport("user32.dll")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); private const int AW_HOR_POSITIVE = 0x0001;//从左到右打开窗口 private const int AW_HOR_NEGATIVE = 0x0002;//从右到左打开窗口 private const int AW_VER_POSITIVE = 0x0004;//从上到下打开窗口 private const int AW_VER_NEGATIVE = 0x0008;//从下到上打开窗口 private const int AW_CENTER = 0x0010;//从中央打开 private const int AW_HIDE = 0x10000;//隐藏窗体 private const int AW_ACTIVATE = 0x20000;//显示窗体 private const int AW_SLIDE = 0x40000; private const int AW_BLEND = 0x80000;//淡入淡出效果 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // Application.ExitThread(); AnimateWindow(this.Handle, 200, AW_HIDE | AW_VER_NEGATIVE); }不知这样是否合楼主的意. 当然,FORM_LOAD,那里也可以用: AnimateWindow(this.Handle, 200, AW_ACTIVATE | AW_VER_POSITIVE);//200指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒。 如果有图片的话 将双缓冲设为TRUE 我可能没说清楚,我是在Load事件中判断了一下条件是否成立,如果不成立就关闭窗口,但是,这样窗口就会出现一下马上就关闭,就像闪了一下我要的效果是条件不成立,窗口不会出现条件成立窗口弹出 哦...好像有点明白你的想法了.因为之前也遇到过.要是没猜错的话,你是先设定一个条件,然后条件成立的话就,就打开一个新窗体.要是不成立的话,就不做任何操作.这样,给你两个方法试试,1.要么你建两个工程,用窗体A去调窗另一个工程的窗体B.当然这会很复杂了.2.要么你就用我上边写的那段代码在FORM_CLOSE作个优化.然后在A调B时 A: this.Hide();new FORM1().B.ShowDialog(); 如果需要关闭程序的话: static void Main() { if (条件) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } else return; } 被调用窗口 public partial class Form2 : Form { bool _IsShow = false; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { if(!_IsShow) { this.Close(); } } }调用 private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.ShowDialog(); }就是Form2闪一下才关闭,我要Form2不出现就直接关闭 if(!_IsShow) { this.Close(); }改成Application.Exit(); this.EnableViewState = false; new Form2()的结果是先调用Form2的构造函数再调用Load,在构造函数中判断并做相应处理试试。 我在构造函数中关闭,就会报"不能访问已释放的对象",也就是ShowDialog()抛出异常 能在load事件里判断...........怎么不在调用窗体之前判断呢if(条件){ //条件成立 在去显示窗体} 在Load中调用是因为我在显示窗口时传入的参数就少一些,也灵活一些,如:Form2是显示一个订单的窗体,我就只传入一个订单编号就可以了,至于其他的,我就直接在数据库中查询可以得到,然后按订单是否存在,订单的状态等等来判断是否显示窗体 把_IsShow定义成静态的,直接在其他窗体中访问,省事... 先设置窗体的Size(10,10); 窗体大小设置小点设置位置:this.StartPosition = FormStartPosition.Manual;this.Location = new Point(-20, -10);判断条件: 成立 在重新设置Size 和 Location 不成立直接关闭 方法一:Opacity=0;方法二:private void Form1_Activated(xx xx,xx xx)this.Visible=false;结帐 被调用窗口C# code public partial class Form2 : Form { public bool _IsShow = false; public Form2() { InitializeComponent(); } }调用C# code private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(); if(f._IsShow) f.ShowDialog(); f.Dispose(); } 重写Show参考http://topic.csdn.net/u/20090813/19/b5e1e3a9-b6b0-4b31-8f08-0d740eec6258.html 刚工作菜鸟一只,求指导~~~ socket-byte-string 如何用C#发送XML给一个URL? c# c/s网页表单自动插入及提交 结帖去是什么意思? 弱弱的问下vs2008 做好的项目发布后要不要在要使用的机器上装数据库呢 如何将16进制字符串转换成byte[]数组? 类内容的比较 [急]请教短信猫问题。。。 在C#中还有没有ADO Data Control这个控件,我想用来绑定ListView! 求助自定义方法和正则表达式 求助:关于button按钮!
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
private const int AW_HOR_POSITIVE = 0x0001;//从左到右打开窗口
private const int AW_HOR_NEGATIVE = 0x0002;//从右到左打开窗口
private const int AW_VER_POSITIVE = 0x0004;//从上到下打开窗口
private const int AW_VER_NEGATIVE = 0x0008;//从下到上打开窗口
private const int AW_CENTER = 0x0010;//从中央打开
private const int AW_HIDE = 0x10000;//隐藏窗体
private const int AW_ACTIVATE = 0x20000;//显示窗体
private const int AW_SLIDE = 0x40000;
private const int AW_BLEND = 0x80000;//淡入淡出效果 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Application.ExitThread();
AnimateWindow(this.Handle, 200, AW_HIDE | AW_VER_NEGATIVE);
}不知这样是否合楼主的意.
我是在Load事件中判断了一下条件是否成立,
如果不成立就关闭窗口,
但是,这样窗口就会出现一下马上就关闭,就像闪了一下
我要的效果是条件不成立,窗口不会出现
条件成立窗口弹出
1.要么你建两个工程,用窗体A去调窗另一个工程的窗体B.当然这会很复杂了.2.要么你就用我上边写的那段代码在FORM_CLOSE作个优化.然后在A调B时
A: this.Hide();
new FORM1().B.ShowDialog();
static void Main()
{
if (条件)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
else
return;
}
{
bool _IsShow = false;
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
if(!_IsShow)
{
this.Close();
}
}
}调用 private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog();
}就是Form2闪一下才关闭,我要Form2不出现就直接关闭
if(!_IsShow)
{
this.Close();
}
改成Application.Exit();
{
//条件成立 在去显示窗体
}
如:
Form2是显示一个订单的窗体,我就只传入一个订单编号就可以了,
至于其他的,我就直接在数据库中查询可以得到,
然后按订单是否存在,订单的状态等等来判断是否显示窗体
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(-20, -10);
判断条件: 成立 在重新设置Size 和 Location 不成立直接关闭
Opacity=0;方法二:
private void Form1_Activated(xx xx,xx xx)
this.Visible=false;结帐
C# code
public partial class Form2 : Form
{
public bool _IsShow = false;
public Form2()
{
InitializeComponent();
}
}
调用
C# code
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
if(f._IsShow) f.ShowDialog();
f.Dispose();
}
参考
http://topic.csdn.net/u/20090813/19/b5e1e3a9-b6b0-4b31-8f08-0d740eec6258.html