winformC屏幕右下角弹出消息框自动消失

合集下载

windows程序消息机制(Winform界面更新有关)

windows程序消息机制(Winform界面更新有关)

windows程序消息机制(Winform界⾯更新有关)1. Windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着消息泵。

这个消息泵让windows程序⽣⽣不息。

Windows程序有个消息队列,窗体上的所有消息是这个队列⾥⾯消息的最主要来源。

这⾥的While循环使⽤了GetMessage() 这个⽅法,这是个阻塞⽅法,也就是队列为空时⽅法就会阻塞,从⽽这个While循环停⽌运动,这避免了⼀个程序把cpu⽆缘⽆故的耗尽,让其他程序难以得到响应。

当然在某些需要cpu最⼤限度运动的程序⾥⾯就可以使⽤另外的⽅法,例如某些3d游戏或者及时战略游戏中,⼀般会使⽤PeekMessage()这个⽅法,它不会被windows阻塞,从⽽保证整个游戏的流畅和⽐较⾼的帧速。

(PeekMessage是⼀个Windows API函数。

该函数为⼀个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构。

DispatchMessage功能是发送消息给窗⼝,窗⼝收到消息,执⾏事件)。

这个主线程维护着整个窗体以及上⾯的⼦控件。

当它得到⼀个消息,就会调⽤DispatchMessage()⽅法派遣消息,这会引起对窗体上的窗⼝过程的调⽤。

窗⼝过程⾥⾯当然是程序员提供的窗体数据更新代码和其它代码。

2. dotnet⾥⾯的消息循环public static void Main(string[] args){Form f = new Form();Application.Run(f);}Dotnet窗体程序封装了上述的while循环,这个循环就是通过Application.Run⽅法启动的。

3、线程外操作GUI控件的问题如果从另外⼀个线程操作windows窗体上的控件,就会和主线程产⽣竞争,造成不可预料的结果,甚⾄死锁。

因此windows GUI编程有⼀个规则,就是只能通过创建控件的线程来操作控件的数据,否则就可能产⽣不可预料的结果。

cmd自动弹出又消失的解决方法

cmd自动弹出又消失的解决方法

cmd自动弹出又消失的解决方法在使用Windows操作系统的过程中,我们经常会遇到在运行cmd 命令提示符时,它自动弹出又立即消失的情况。

这给我们的工作和学习带来了一些麻烦,因此我们需要找到解决这个问题的方法。

本文将介绍几种常见的解决方法,帮助读者解决这个问题。

一、检查系统文件有时,系统文件的损坏或缺失可能导致cmd自动弹出又消失的问题。

因此,我们可以通过检查并修复系统文件来解决这个问题。

1. 打开cmd命令提示符,以管理员身份运行。

2. 输入命令“sfc /scannow”,然后按下回车键。

3. 系统将开始扫描文件并自动修复任何发现的问题。

4. 等待扫描和修复过程完成,然后重新启动计算机。

二、检查启动项某些启动项可能会导致cmd自动弹出又消失的问题。

我们可以通过禁用这些启动项来解决这个问题。

1. 打开任务管理器,可以通过同时按下Ctrl+Shift+Esc快捷键来打开。

2. 切换到“启动”选项卡。

3. 禁用所有不必要的启动项,只保留系统必需的项。

4. 重新启动计算机,然后检查是否解决了问题。

三、检查病毒或恶意软件病毒或恶意软件可能会干扰系统正常运行,导致cmd自动弹出又消失。

因此,我们需要运行杀毒软件来扫描和清理系统。

1. 更新杀毒软件的病毒库,确保其具有最新的病毒识别能力。

2. 运行全盘扫描,以便检测和清除系统中的任何病毒或恶意软件。

3. 完成扫描和清理后,重新启动计算机,然后检查是否解决了问题。

四、重置注册表有时,注册表中的损坏或错误项可能导致cmd自动弹出又消失。

我们可以通过重置注册表来解决这个问题。

1. 打开cmd命令提示符,以管理员身份运行。

2. 输入命令“reg delete HKCU\Software\Microsoft\Command Processor /v AutoRun”,然后按下回车键。

3. 输入命令“reg delete HKLM\Software\Microsoft\Command Processor /v AutoRun”,然后按下回车键。

winform(C#)的几种弹框

winform(C#)的几种弹框

winform(C#)的⼏种弹框 1.默认情况下:
//如MessageBox.Show("确定要退出吗?")只显⽰⼀个“确定”按钮。

//"确定要退出吗?"是对话框的显⽰信息,"退出系统"是对话框的标题
2.⾃定义按钮:
//消息框中需要显⽰哪些按钮,此处显⽰“确定”和“取消”
⾸先定义成员变量例:
MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
DialogResult dr = MessageBox.Show("确定要退出吗?", "退出系统", messButton);
if (dr == DialogResult.OK)//如果点击“确定”按钮
{
……
}
else//如果点击“取消”按钮
{
……
}
以下为多种⾃定义按钮:
MessageBoxButtons指定若⼲常数,⽤以定义MessageBox上将显⽰哪些按钮(来⾃MSDN)MessageBoxButtons成员:
成员名称说明
AbortRetryIgnore 消息框包含“中⽌”、“重试”和“忽略”按钮。

OK 消息框包含“确定”按钮。

(默认)
OKCancel 消息框包含“确定”和“取消”按钮。

(上例所⽰)
RetryCancel 消息框包含“重试”和“取消”按钮。

YesNo 消息框包含“是”和“否”按钮。

YesNoCancel 消息框包含“是”、“否”和“取消”按钮。

winform关闭当前窗口触发方法

winform关闭当前窗口触发方法

winform关闭当前窗口触发方法在WinForms中,如果您想在关闭当前窗口时触发一个方法,您可以使用窗口的 `FormClosing` 事件。

这个事件在窗口正在关闭之前发生,允许您执行一些清理操作,比如保存数据或询问用户是否真的要退出。

以下是如何在WinForms中为窗口添加 `FormClosing` 事件的示例:1. 在Visual Studio中打开您的WinForms项目。

2. 选择您想要添加事件的窗口,在属性窗口中找到事件(闪电标志)并展开。

3. 在展开的事件列表中找到 `FormClosing` 事件。

4. 双击 `FormClosing` 事件旁边的空白区域,这将在您的代码中自动生成一个事件处理方法。

5. 在自动生成的事件处理方法中编写您希望在窗口关闭之前执行的代码。

例如:```csharpprivate void YourForm_FormClosing(object sender, FormClosingEventArgs e){// 这里是您希望在窗口关闭时执行的代码("窗口即将关闭");}```在这个示例中,当窗口关闭时,会弹出一个消息框显示“窗口即将关闭”。

您可以根据需要替换这个消息框,以执行任何其他操作,比如保存数据、询问用户确认等。

请注意,如果您不希望窗口被关闭(比如用户可能取消了关闭操作),您可以在事件处理方法中检查 `` 属性并将其设置为 `true`。

例如:```csharpprivate void YourForm_FormClosing(object sender, FormClosingEventArgs e){if (("确定要关闭窗口吗?", "提示", ) == ){// 用户选择“否”,取消关闭操作= true;}} ```。

C# winForm启动最小化到任务栏右侧通知栏并交互操作

C# winForm启动最小化到任务栏右侧通知栏并交互操作

C# winForm启动最小化到任务栏右侧通知栏并交互操作C# winForm启动最小化到任务栏右侧通知栏并交互操作一。

主要功能:(1)、程序启动自动隐藏到任务栏右侧通知栏显示。

(与系统托盘同义)(2)、双击系统托盘图标显示、隐藏窗口;(3)、右击系统托盘图标提供三个菜单选项,“退出”、“隐藏”、“显示”;二。

相关控件:1、建一个WinForm程序—IconForm,将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示。

2、将Form属性WindowState选择为 Minimized,以便起来自动最小化隐藏3、在工具栏中的“公共控件”里,拖入NotifyIcon控件—notifyIcon1,这个是程序运行任务栏右侧通知区域图标显示控件,为控件notifyIcon的属性Icon 添加一个icon图标,或从代码中加入。

4、在工具栏中的“菜单和工具栏”里,拖入ContextMenuStrip—contextMenuStrip1,这个控件是右击时关联菜单。

5、右键notifyIcon1选择属性,将其属性ContextMenuStrip改加为contextMenuStrip1,这个时候notifyIcon1和contextMenuStrip1两个控件就关联了。

6、右键contextMenuStrip1,选择属性,进入Items,然后点击“添加”,这里添加三个菜单选项:exitMenuItem、hideMenuItem、showMenuItem,同时分别将其Text属性改为:退出、隐藏和显示。

三。

主要代码:1、双击IconForm,即添加Load事件然后//一右击窗体,选择属性,转到事件页面,双击 Load,SizeChanged事件,给窗体添加代码private void Form1_Load(object sender, EventArgs e){//1.将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示。

VC显示关闭销毁模态与非模态对话框技巧

VC显示关闭销毁模态与非模态对话框技巧

VC显示关闭销毁模态与非模态对话框技巧VC++是一种用于Windows平台开发应用程序的集成开发环境,用于构建图形用户界面和控制应用程序的行为。

在VC++中,对话框是一种常用的用户界面元素,可以用于显示和获取用户输入。

在使用对话框时,要注意对话框的显示、关闭和销毁。

1.显示对话框在VC++中,显示一个对话框可以通过以下几种方式实现:a. 使用DoModal函数DoModal函数是CDialog类的一个成员函数,用于显示对话框,并返回对话框的返回值。

例如,可以使用下面的代码显示一个对话框:CMyDialog dlg;dlg.DoModal(;b. 使用Create函数Create函数是CDialog类的另一个成员函数,用于创建对话框,并显示它。

使用Create函数时,需要先调用Create函数创建对话框,然后调用ShowWindow函数显示对话框。

以下是使用Create函数显示对话框的示例代码:CMyDialog dlg;dlg.Create(IDD_MYDIALOG);dlg.ShowWindow(SW_SHOW);c.使用模态对话框模态对话框是一种阻塞式对话框,显示模态对话框时,在对话框关闭之前,用户无法与其他应用程序进行交互。

要显示一个模态对话框,可以通过调用DoModal函数,并传递对话框的资源ID来实现。

以下是使用模态对话框的示例代码:CMyDialog dlg;INT_PTR nResponse = dlg.DoModal(;2.关闭对话框在VC++中,可以使用以下几种方式关闭对话框:a. 使用EndDialog函数EndDialog函数是CDialog类的一个成员函数,用于关闭对话框,并返回对话框的返回值。

以下是使用EndDialog函数关闭对话框的示例代码:OnOKEndDialog(IDOK);b.使用DestroyWindow函数DestroyWindow函数是CWnd类的一个成员函数,用于销毁窗口,并关闭对话框。

winform C#屏幕右下角弹出消息框,并使其自动消失

winform C#屏幕右下角弹出消息框,并使其自动消失
{
timer1.Enabled = true;
timer2.Enabled = false;
}
}
timer1的事件中代码:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
for (int i = 0; i <= this.Height; i++)
{
Point p = new Point(this.Location.X, this.Location.Y + i);//弹出框向下移动消失
frmShowWarning.PointToScreen(p);
frmShowWarning.Location = p;
frmShowWarning.Show();
for (int i = 0; i <= frmShowWarning.Height; i++)
{
timer2.Enabled = false;//停止timer2计时器,
if (this.Opacity > 0 && this.Opacity <= 1)//开始执行弹出窗渐渐透明
{
{
timer2.Enabled = true;//如果鼠标在弹出窗上的时候,timer2开始工作
timer1.Enabled = false;//timer1停止工作。
}
this.PointToScreen(p);//即时转换成屏幕坐标
this.Location = p;// new Point(this.Location.X, this.Location.Y + i);

winform C#屏幕右下角弹出消息框,自动消失

winform C#屏幕右下角弹出消息框,自动消失
{
frmShowWarning.Location = new Point(p.X, p.Y - i);
Thread.Sleep(10);//将线程沉睡时间调的越小升起的越快
}
}
frmShowWarning.PointToScreen(p);
frmShowWarning.Location = p;
frmShowWarning.Show();
for (int i = 0; i <= frmShowWarning.Height; i++)
}
if (System.Windows.Forms.Control.MousePosition.X >= this.Location.X && System.Windows.Forms.Control.MousePosition.Y >= this.Location.Y)//每次都判断鼠标是否是在弹出窗上,使用鼠标在屏幕上的坐标跟弹出窗体的屏幕坐标做比较。
{
this.Close();
}
}
{
timer1.Enabled = false;
for (int i = 0; i <= this.Height; i++)
{
Point p = new Point(this.Location.X, this.Location.Y + i);//弹出框向下移动消失
this.PointToScreen(p);//即时转换成屏幕坐标
this.Location = p;// new Point(this.Location.X, this.Location.Y + i);

C#弹出对话框确定或者取消执行相应操作的实例代码

C#弹出对话框确定或者取消执行相应操作的实例代码

C#弹出对话框确定或者取消执⾏相应操作的实例代码⼀、基于WINFORM下的选择对话框在WINFORM下,我们可以利⽤系统的对话框(MessageBox)来实现,具体思路是读取MessageBox的返回值(YES或NO)来达到对操作的控制。

下⾯是⼀个演⽰程序代码代码如:private void button1_Click(object sender, System.EventArgs e){label1.Text="";DialogResult MsgBoxResult;//设置对话框的返回值MsgBoxResult = MessageBox.Show("请选择你要按下的按钮",//对话框的显⽰内容"提⽰",//对话框的标题MessageBoxButtons.YesNo,//定义对话框的按钮,这⾥定义了YSE和NO两个按钮MessageBoxIcon.Exclamation,//定义对话框内的图表式样,这⾥是⼀个黄⾊三⾓型内加⼀个感叹号MessageBoxDefaultButton.Button2);//定义对话框的按钮式样if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮){bel1.ForeColor = System.Drawing.Color.Red;//字体颜⾊设定label1.Text=" 你选择了按下”Yes“的按钮!";}if(MsgBoxResult == DialogResult.No)//如果对话框的返回值是NO(按"N"按钮){bel1.ForeColor = System.Drawing.Color.Blue;//字体颜⾊设定label1.Text=" 你选择了按下”No“的按钮!";}}当按动对话框的“是”按钮时,显⽰红⾊字体“你选择了按下“YES”的按钮”字样,如果你按动了对话框的“否”按钮将显⽰蓝⾊字体的“你选择了按下“NO”的按钮”字样。

win7桌面右下角通知区域图标消失怎么办

win7桌面右下角通知区域图标消失怎么办

win7桌面右下角通知区域图标消失怎么办
win7和xp系统不同,右下角的软件小图标显示可以自由定义,那么win7桌面右下角通知区域图标消失怎么办呢?下面跟着店铺来一起了解下吧。

win7桌面右下角通知区域图标消失解决方法
在Windows 7系统桌面的右下方,也就是任务栏的最右边上,用户都应该可以找到一个小三角符号。

点击小三角符号就会弹出一个小方框,里面除了有“消失”的小图标,还有一个“自定义”选择框框。

点击“自定义”之后,用户就可以选择性地显示自己的图标。

假如想某个软件图标常驻Windows 7通知区域,只需选择“显示图标和通知”。

同理,如果不想显示某个图标以及他的所有通知,那就选择“隐藏图标和通知”。

那么,现在大家应该知道图标“消失”的原因就是Windows 7系统默认所有的图标都是选择“仅显示通知”。

当然,如果想像Windows XP那样显示所有的图标,那选择“始终在任务栏上显示所有图标和通知”就行。

让Windows 7任务栏通知区域显示更多的图标
其实方法很简单,在Windows 7任务栏上点击鼠标右键,把“锁定任务栏”的“√”去掉就行。

这样就可以随意拉伸这个通知区域宽度。

如果你调整完通知区域宽度后,可以再锁定任务栏,这样就不怕Windows 7通知区域宽度变来变去了。

VC弹出对话框

VC弹出对话框

VC++弹出对话框VC6.0弹出对话框首先建立工程,选择“MFC AppWizard(exe)”选项,在工程名中取名为“ShowDialog”在“AppWizard – Setup(1-6)”的选项卡中的第一个选项卡里选择“Single document(单文档视图)”点选按钮,其他剩下的5个步骤可以选择默认省略设置,直接点击“Finish”按钮在资源视图的选项卡中选中“Dialog”,右键点击选择“Insert Dialog”菜单,分别添加两个对话框,将新添加的两个对话框的ID改为“IDD_DIALOG_DOMODAL”和“IDD_DIALOG_MODAL”,并将“Caption”属性分别设置成“模态对话框”和“非模态对话框”添加完对话框,分别对两个对话框添加新类,只有添加了新类,才可以操作对话框,转到对话框编辑视图右键点击要添加类的对话框,选中“Class Wizard(类向导)”,在弹出的对话框中系统会提问“IDD_DIALOG_MODAL是一个新的资源,是否要为其添加一个新类?”,此时选择“OK”接下来对该对话框添加类在“Name”中填入新类的名称,此时填入“CModalDlg”(类名可以由程序员自己命名),注意在“Bass Class”中要选中“CDialog”作为对话框新类的基础类,点中“OK”,用同样的方法为“IDD_DIALOG_DOMODAL”对话框添加类,类名为“CDomodalDlg”添加完对话框资源后点击资源选项卡中的“Menu”,找到其中的“IDR_MANIFRAME”,双击可以显示系统菜单,在右边的视图中加入一个顶级菜单“弹出对话框”,在该顶级菜单下添加两个子菜单,子菜单的ID分别设为“IDM_DOMODAL”和“IDM_MODAL”,并将其“Caption”属性设置为“弹出模态对话框”和“弹出非模态对话框”在对子菜单进行添加完成之后右键点击子菜单选中“Class Wizard(类向导)”,在弹出的对话框中选择其中的设置选项资源ID要对应相应的菜单,“Class Name”要对应“CMainFrame”,因为菜单是在框架中生成,“Message”中要选择“COMMAND”消息,“UPDATE_COMMAND_UI”消息是用来处理菜单对应的用户界面,“COMMAND”消息是用来处理菜单对应的功能,他两者的区别在此不做详细介绍,点击“Add Function”按钮可以看到多了一个菜单的COMMAND消息的处理函数,点击“Edit Code”按钮进入代码编辑区,此时进入的是主框架的CPP文件,用同样的方法为另外一个子菜单添加消息处理函数在主框架的CPP文件中的最后一部分可以看到刚才添加的菜单COMMAND处理消息的函数编辑代码在该CPP文件的最上方引入新建的两个类的头文件#include "DomodalDlg.h"#include "ModalDlg.h"在该类的最后部分为新增的方法写入代码最后保存,并运行,可以看出模态对话框只能弹出一次,而非模态对话框可以弹出多次VC2008弹出对话框首先创建工程,选择“MFC应用程序”选项,将工程命名为“ShowDialog”在“MFC-应用程序向导”设置选项卡中的第一项按照图中的红框设置,其他步骤可以默认选择,最后点击“完成”工程建立完成后,在左侧的资源视图中右键点击“Dialog”,选中“插入Dialog”,分别添加两个对话框,在添加好的对话框点击右键可以通过“属性”来设置“Caption”和“ID”ID分别设置为“IDD_DIALOG_DOMODAL”和“IDD_DIALOG_MODAL”,Caption分别设置分别对两个对话框进行添加类,右键点击对话框,选中右键菜单中的“添加类”在弹出的类对话框中加入类名“CDomodalDlg,”,基类选择“CDialog”,点击“完成”,用同样的方法为另外一个对话框添加新类,类名为“CModalDlg”类添加完成后对菜单进行操作,双击资源菜单中的“Menu”项中的“IDR_MAINFRAME”,在右侧的视图中显示出菜单,并添加一个顶级菜单和两个子菜单右键点击子菜单,在其属性中分别设置ID为“ID_DOMODAL”和“ID_MODAL”,设置完成后右键点击子菜单,选中“添加事件处理程序”在弹出的对话框中选择设置点击“添加编辑”,用同样的方法为另一个子菜单添加菜单的Command处理消息在MainFrame框架的CPP问价的最后部分可以看到代码编辑处在该CPP文件的最上方引入新建对话框的头文件回到CPP文件的最后添加弹出对话框代码最后保存运行,可以看出模态对话框只能弹出一次,而非模态对话框可以弹出多次。

如何实现c#--winform窗体自动隐藏

如何实现c#--winform窗体自动隐藏

让窗体拖到屏幕边缘自动隐藏的原理,通过Form1_LocationChanged的方法,当窗体位置发生改变时,判断其是否在屏幕边缘,在则隐藏。

再通过Timer控件经过指定时间判断出鼠标的位置,若鼠标在屏幕左边、上边或右边,这根据窗体的位置,调出窗体。

以下给出源代码: (注:hide为窗体名称)view plaincopy to clipboardprint?1. private void hide_Load(object sender, EventArgs e)2. {3. System.Windows.Forms.Timer StopRectTimer = new System.Windows.Forms.Timer();4. StopRectTimer.Tick += new EventHandler(timer1_Tick);5. StopRectTimer.Interval = 100;6. StopRectTimer.Enabled = true;7. }8. private void timer1_Tick(object sender, EventArgs e)9. {10. if (this.Bounds.Contains(Cursor.Position))11. {12. switch (this.StopAanhor)13. {14. case AnchorStyles.Top:15. this.Location = new Point(this.Location.X, 0);16. break;17. case AnchorStyles.Left:18. this.Location = new Point(0, this.Location.Y);19. break;20. case AnchorStyles.Right:21. this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - this.Width, this.Lo cation.Y);22. break;23. }24. }25. else26. {27. switch (this.StopAanhor)28. {29. case AnchorStyles.Top:30. this.Location = new Point(this.Location.X, (this.Height - 2) * (-1));31. break;32. case AnchorStyles.Left:33. this.Location = new Point((-1) * (this.Width - 2), this.Location.Y);34. break;35. case AnchorStyles.Right:36. this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 2, this.Location.Y) ;37. break;38. }39. }40. }41. internal AnchorStyles StopAanhor = AnchorStyles.None;42. private void mStopAnhor()43. {44. if (this.Top <= 0)45. {46. StopAanhor = AnchorStyles.Top;47. }48. else if (this.Left <= 0)49. {50. StopAanhor = AnchorStyles.Left;51. }52. else if (this.Left >= Screen.PrimaryScreen.Bounds.Width - this.Width)53. {54. StopAanhor = AnchorStyles.Right;55. }56. else57. {58. StopAanhor = AnchorStyles.None;59. }60. }61. private void hide_LocationChanged(object sender, EventArgs e)62. {63. this.mStopAnhor();64. }靠边隐藏效果:当程序移动到显示的边界时,程序自动隐藏起来,留一条小边在外面,很酷的效果吧.先介绍下实现原理,靠边隐藏无非就是判断窗体的位置和屏幕的四边的关系,当上左右三个方向超出的时候,就把窗体自动往上移,问题是...怎么判断窗体的位置呢?.Net里面有很方便的事件:LocationChanged,来判断窗体位置的变化,那又如何判断鼠标和窗体的关系呢?最简单的办法是用个timer不停的去判断...,我最不想用这种方法实现,结果苦苦探寻了两个小时最终还是以这种最笨的方法来实现效果-_-#,如果不用timer,还有其他什么方法呢?我第一想到的是钩子,于是我拦截系统消息WM_MOVE,WM_MOVING,0x00a0................发现都无法满足要求,翻遍winnt.h也没发现有什么是进入窗体离开窗体时发出的消息,只有一个0x00a0是经过窗体边框时发的消息,不过呢如果鼠标移动太快,系统就收不到这个消息.... 此路不通,于是想看看.Net里面封装了什么事件, 很遗憾MouveEnter和MouseLeave会被上层的控件遮蔽,我总不能窗体上有多少控件都给设置Mouse事件吧.............,最后还是用timer来实现比较现实-_-#我把它封装成一个.Net组件,这样以后的项目如果需要这种效果只需像引用Timer一样拖拽到窗体上,然后设置DockForm为需要效果的窗体就可以了具体代码如下:using System;using ponentModel;using System.Diagnostics;using System.Text;using System.Windows.Forms;using System.Drawing;namespace ponents{[Description("窗体自动靠边隐藏组件 @Author: Red_angelX")] public partial class AutoDockManage : Component{private Form _form;public AutoDockManage(){InitializeComponent();}public AutoDockManage(IContainer container){container.Add(this);InitializeComponent();}[Description("用于控制要自动Dock的窗体")]public Form DockForm{get{return _form;}set{_form = value;if (_form != null){_form.LocationChanged += new EventHandler(_form_LocationC hanged);_form.SizeChanged += new EventHandler(_form_SizeChanged); _form.TopMost = true;}}}private bool IsOrg = false;private Rectangle lastBoard;private const int DOCKING = 0;private const int PRE_DOCKING = 1;private const int OFF = 2;private int status = 2;private void CheckPosTimer_Tick(object sender, EventArgs e){if (DesignMode){return;}if (_form == null || IsOrg == false ){return;}if (_form.Bounds.Contains(Cursor.Position)){/** 该死的.Net在移动时候不会发生该代码,必须在鼠标离开后才会执行if (dockSide == AnchorStyles.None && status == OFF && IsOrg = = true){if (_form.Bounds.Width == lastBoard.Width && _form.Bounds.H eight == lastBoard.Height){return;}_form.Size = new Size(lastBoard.Width, lastBoard.Height);return;}*/switch (dockSide){case AnchorStyles.Top:if (status == DOCKING)_form.Location = new Point(_form.Location.X, 0);break;case AnchorStyles.Right:if (status == DOCKING)_form.Location = new Point(Screen.PrimaryScreen.Bounds.W idth - _form.Width, 1);break;case AnchorStyles.Left:if (status == DOCKING)_form.Location = new Point(0, 1);break;}}else{switch (dockSide){case AnchorStyles.Top:_form.Location = new Point(_form.Location.X, (_form.Height - 4) * (-1));break;case AnchorStyles.Right:_form.Size = new Size(_form.Width, Screen.PrimaryScreen. WorkingArea.Height);_form.Location = new Point(Screen.PrimaryScreen.Bounds.W idth - 4, 1);break;case AnchorStyles.Left:_form.Size = new Size(_form.Width, Screen.PrimaryScreen. WorkingArea.Height);_form.Location = new Point((-1) * (_form.Width - 4), 1);break;case AnchorStyles.None:if (IsOrg == true && status == OFF){if (_form.Bounds.Width != lastBoard.Width || _form.Boun ds.Height != lastBoard.Height){_form.Size = new Size(lastBoard.Width, lastBoard.Heig ht);}}break;}}}internal AnchorStyles dockSide = AnchorStyles.None;private void GetDockSide(){if (_form.Top <= 0){dockSide = AnchorStyles.Top;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else if (_form.Left <= 0){dockSide = AnchorStyles.Left;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else if (_form.Left >= Screen.PrimaryScreen.Bounds.Width - _form. Width){dockSide = AnchorStyles.Right;if (_form.Bounds.Contains(Cursor.Position))status = PRE_DOCKING;elsestatus = DOCKING;}else{dockSide = AnchorStyles.None;status = OFF;}}private void _form_LocationChanged(object sender, EventArgs e){GetDockSide();if (IsOrg == false){lastBoard = _form.Bounds;IsOrg = true;}}private void _form_SizeChanged(object sender, EventArgs e) {if (IsOrg == true && status == OFF){lastBoard = _form.Bounds;}}}}。

Ext消息提示框,显示几秒后自动消失

Ext消息提示框,显示几秒后自动消失

Ext消息提示框,显示几秒后自动消失最近项目需要,封装了一个Ext消息提示框,提示信息显示几秒后就自动消失。

css代码:view plaincopy to clipboardprint?1..msg .x-box-mc {2.font-size:14px;3.}4.#msg-div {5.position:absolute;6.left:650px;7.top:410px;8.width:600px;9.z-index:20000;10.}11..msg-close{12.width:10px; height:10px; position:absolute; top:1px; ri ght:10px;cursor:hand;13.}14..msg-h3 {15.font-size:13px;16.color:#2870b2;17.font-weight:bold;18.margin:10px 0;19.}js代码:view plaincopy to clipboardprint?1./**2.*信息提示框,显示后迅速消失3.*/4.Ext.QuickMsg = function(){5.var msgCt;6.7.function createBox(t, s,isClose){8.var html = new Array();9.10.html.push('<div class="msg">');11.html.push('<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc">');12.html.push('</div></div></div>');13.html.push('<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">');14.if(t){15.html.push('<h3 class="msg-h3">');16.html.push(t);17.html.push('</h3>');18.}19.if(isClose){20.html.push('<span class="msg-close" onclick="Ext.QuickMsg.close()"><img src="'+closeImage Url+'" mce_src="'+closeImageUrl+'"/></span>');21.}22.html.push(s);23.html.push('</div></div></div>');24.html.push('<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>');25.html.push('</div>');26.return html.join('');27.}28.return {29./**30.* 显示信息31.* title:标题32.* msg:提示信息33.* time:显示时间,超时后自动消失34.* alignEl:对齐到该对象的左下角35.* offsets[Array]:横向偏移像素,比如:[200,0]标识右移200个像素36.* positon:动画37.* animate[boolean]:是否开启动画38.* isClose[boolean]:是否可关闭39.*/40.show : function(title, msg, width, time, alignEl, offsets, position,animate,isClose){41.width = width?width:'250px';42.time = time?time:2;43.alignEl = alignEl?alignEl:document;44.//alert(alignEl.id);45.position = position?position:'t-t';46.animate = animate?animate:false;47.this.close();48.if(!msgCt){49.msgCt = Ext.DomHelper.insertFirst(document.body, {i d:'msg-div'}, true);50.msgCt.setWidth(width);51.}52.//采用默认动画将div的最中央对齐到alignEl的左下角,并右移200个象素,且不能超出窗口53.msgCt.alignTo(alignEl, position,offsets,animate);54.var m = Ext.DomHelper.append(msgCt, {html:createBo x(title, msg,isClose)}, true);55.m.slideIn('t').pause(time).ghost("t", {remove:true});//元素从上滑入效果,可不带参数调用下同56.},57.58.//提示信息59.alert : function(msg,field,alignEl,width){60.width = width?width:'150px';61.var html = '<span style="font-size:13px;" mce_style="font-size:13px;">'+msg+'</span>';62.this.show('',html,'150px',2,field,[120,0],'t-t',true,false);63.},64.65.close: function(){66.var div = document.getElementById('msg-div');67.if(div){68.div.style.display = 'none';69.}70.msgCt = '';71.}72.};73.}();。

解决C语言中生成的EXE文件执行后窗口消失方法

解决C语言中生成的EXE文件执行后窗口消失方法

解决C语言中生成的EXE文件执行后窗口消失方法一、概述
在编写C语言程序时,可能会发生生成EXE文件执行后窗口消失的状况。

这种现象常常发生在使用编译器,如Microsoft Visual C++、Borland C++ Builder等,编译C语言程序代码之后生成EXE文件,然后双击运行,但是只能看到立即创建并立即关闭的窗口,实际上没有显示出程序的内容。

这个现象很容易让程序开发人员犯错,不知道从何处寻找程序中的问题。

二、解决步骤
1、使用system指令
如果程序中使用了system函数,函数可能不会显示任何输出,此时可以使用带有/n选项的system函数,/n选项会要求system函数的结果显示在屏幕上。

例如:
system("echo Hellow World! /n"); //显示Hello World!
2、检查函数的参数
如果程序中使用了printf或scanf等函数,检查函数的参数,看看是否正确设置了格式,例如printf函数中的模式字符串、scanf函数中的参数,如果不正确,会导致没有显示出内容。

3、检查编译器选项
对于使用Microsoft visual Studio编译的C语言程序,在编译过程中有一个选项“链接时显示控制台窗口”,当这个选项被勾选后,编译生
成的EXE文件将会启动一个控制台窗口,显示程序的输入输出,而若没有这个选项,则不会启动控制台窗口,导致窗口消失。

4、使用getchar(函数
如果程序中只是简单的输出一些文本,可以在主函数的结尾处使用getchar(函数。

网页对话框不显示内容

网页对话框不显示内容

网页对话框不显示内容首先,我们需要明确一点,网页对话框不显示内容可能是由多种原因引起的。

其中,最常见的原因之一是代码错误或者逻辑错误。

当我们在网页开发过程中编写了错误的代码,或者逻辑出现了问题,就有可能导致网页对话框无法正常显示内容。

此外,浏览器兼容性问题、网络连接问题、缓存问题等也都有可能导致网页对话框不显示内容。

针对网页对话框不显示内容的问题,我们可以采取一些解决方法。

首先,我们可以通过浏览器的开发者工具来查看网页的控制台信息,以便找到可能存在的错误信息。

通过查看控制台信息,我们可以更快地定位到代码错误或者逻辑错误的位置,从而进行修复。

此外,我们还可以检查网页对话框的相关代码,确保代码逻辑正确。

有时候,我们可能会在代码中遗漏了一些关键的语句,或者出现了语法错误,这都有可能导致网页对话框不显示内容的问题。

另外,我们还需要考虑到浏览器兼容性的问题。

不同的浏览器对于网页对话框的支持可能有所不同,因此我们需要确保我们的代码能够在各种主流浏览器上正常运行。

可以通过使用浏览器兼容性工具或者在线测试工具来检测网页在不同浏览器上的显示情况,从而及时发现并解决兼容性问题。

此外,我们还需要考虑到网络连接和缓存的影响。

有时候,网页对话框不显示内容可能是由于网络连接不稳定或者浏览器缓存的问题所导致的。

可以尝试清除浏览器缓存,或者使用其他网络环境进行测试,以确定是否是网络连接或者缓存问题导致的。

总的来说,当我们遇到网页对话框不显示内容的问题时,首先需要进行问题分析,找出可能的原因。

然后,针对不同的可能原因,采取相应的解决方法进行修复。

通过以上方法的实施,我们可以更快地解决网页对话框不显示内容的问题,提升用户体验和功能使用的质量。

wincc 属性对话框消失的处理方法

wincc 属性对话框消失的处理方法
No. 步骤 1 检查 " S IMA TIC WinCC f lex ible 启动中心" 任务栏图标是否被隐藏。
/C N /llisapi.dll?func=cslib.csinfo&lang=zh&objid=36645252&caller=v iew
注释 如果 "重置 SIMATIC WinCC flexible" 选项是灰色的,执行以下步骤。
No. 步骤 1 关闭 WinCC flexible and STEP 7. 2 启动 Windows 任务管理器,关闭所有 HmiES.exe 进程。 3 重启计算机。
注释 如果任务栏中没有 "重置 SIMATIC WinCC flexible" 选项,执行以下步骤。
条目号: 36645252 日期: 2009-09-22
© Siemens AG 2014版权所有 - 法人信息 - 保密政策 - 应用条款
/C N /llisapi.dll?func=cslib.csinfo&lang=zh&objid=36645252&caller=v iew
1. 关闭 WinCC flexible. 2. 在“任务管理器”中关闭“Hmies.exe”及“HmiSmartStart.exe”进程。 3. 如果以下路径存在,删除其中所有内容(或者您可以事先备份所有内容)。
C:\Documents and Settings\All Users\Application Data\SIEMENS AG\SIMATIC WinCC flexible 2007 C:\Documents and Settings\USER NAME\Application Data\SIEMENS AG\SIMATIC WinCC flexible 2007 C:\Documents and Settings\USER NAME\Local Settings\Application Data\SIEMENS AG\SIMATIC WinCC flexible 2007

c#中winform窗口的隐藏与显示

c#中winform窗口的隐藏与显示

c#中winform窗⼝的隐藏与显⽰
最近在做⼀个C# 的winform客户端程序,要实现在打开新的窗⼝时将原来打开的窗⼝关闭,但是想在关闭新打开的窗⼝是将原来的那个窗⼝再次打开,在⽹上查找各种资料,找了很多代码,都是通过窗⼝.Hide()和窗⼝.Show()⽅法实现的,但都没有实现我想要的功能,关闭新窗⼝打开原来的窗⼝时发现原来的窗⼝⾥⾯的所有数据都没有了,⽽且打开新窗⼝时原来的窗⼝不会显⽰出来。

通过⽹上查找资料和认真研读C# winform ⽅⾯相关的书籍发现,窗体有Visible属性,设置为true窗体将显⽰出来,现将具体代码粘贴如下:
打开新的窗体Form2时隐藏原来的窗体Form1
Form2 fm = new Form2(this);
this.Hide();//隐藏现在这个窗⼝
fm.Show() ;//新窗⼝显现
关闭新的窗体Form2时显⽰原来的窗体Form1,
public partial class Form2 : Form
{
private Form1 returnForm1 = null;
public Form2(Form1 F1)
{
InitializeComponent();
// 接受Form1对象
this.returnForm1 = F1;
}
}
为Form2添加Form2_FormClosing事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
//恢复Form1
this.returnForm1.Visible = true;
}。

反射技术——解决AlertDialog类用于显示对话框自动消失的问题

反射技术——解决AlertDialog类用于显示对话框自动消失的问题

本文转载于/nokiaguy/archive/2010/07/27/5770263.aspx,其他转载请注明作者和出处,谢谢!众所周知,AlertDialog类用于显示对话框。

关于AlertDialog的基本用法在这里就不详细介绍了,网上有很多,读者可以自己搜索。

那么本文要介绍的是如何随心所欲地控制AlertDialog。

现在我们来看看第一个需求:如果某个应用需要弹出一个对话框。

当单击“确定“按钮时完成某些工作,如果这些工作失败,对话框不能关闭。

而当成功完成工作后,则关闭对话框。

当然,无论何程度情况,单击“取消”按钮都会关闭对话框。

这个需求并不复杂,也并不过分(虽然我们可以自己弄个Activity来完成这个工作,也可在View上自己放按钮,但这显示有些大炮打蚊子了,如果对话框上只有一行文本,费这么多劲太不值了)。

但使用过AlertDialog的读者都知道,无论单击的哪个按钮,无论按钮单击事件的执行情况如何,对话框是肯定要关闭的。

也就是说,用户无法控制对话框的关闭动作。

实际上,关闭对话框的动作已经在Android SDK写死了,并且未给使用者留有任何接口。

但我的座右铭是“宇宙中没有什么是不能控制的”。

既然要控制对放框的关闭行为,首先就得分析是哪些类、哪些代码使这个对话框关闭的。

进入AlertDialog类的源代码。

在AlertDialog中只定义了一个变量:mAlert。

这个变量是AlertController类型。

AlertController类是Android 的内部类,在com.android.internal.app包中,无法通过普通的方式访问。

也无法在Eclipse中通过按Ctrl键跟踪进源代码。

但可以直接在Android源代码中找到AlertController.java。

我们再回到AlertDialog类中。

AlertDialog类实际上只是一个架子。

象设置按钮、设置标题等工作都是由AlertController类完成的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

winform C#屏幕右下角弹出消息框,自动消失
private void button2_Click(object sender, EventArgs e)
{
Form1 frmShowWarning = new Form1();//Form1为要弹出的窗体(提示框),
Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width-frmShowWarning.Width, Screen.PrimaryScreen.WorkingArea.Height);
frmShowWarning.PointToScreen(p);
frmShowWarning.Location = p;
frmShowWarning.Show();
for (int i = 0; i &lt;= frmShowWarning.Height; i++)
{
frmShowWarning.Location = new Point(p.X, p.Y - i);
Thread.Sleep(10);//将线程沉睡时间调的越小升起的越快
}
}
如果要让提示窗过一段时间慢慢的消失,则可以在Form1中放一个
timer计时器,设定他执行的频率为2000,Form1的load事件中timer1.Enable=true,当此弹出框load过2秒后timer1开始工作,在timer1事件中代码:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
for (int i = 0; i &lt;= this.Height; i++)
{
Point p = new Point(this.Location.X, this.Location.Y + i);//弹出框向下移动消失
this.PointToScreen(p);//即时转换成屏幕坐标
this.Location = p;// new Point(this.Location.X, this.Location.Y + i); System.Threading.Thread.Sleep(10);//线程睡眠时间调的越小向下消失的速度越快。

}
this.Close();//记得关闭此弹出框哦。

OK
}
如果想让弹出窗,过了半分钟开始渐渐透明一直到关闭,又想在透明阶段鼠标移上去弹出窗显示不透明则操作如下:
1、在弹出窗上添加两个timer控件。

执行代码如下:
timer2的事件中:
/// &lt;summary&gt;
///
/// 判断鼠标是不是还在弹出框上,如果不是则timer1又可以开始工作了
/// &lt;/summary&gt;
/// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
/// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
private void timer2_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;//timer1停止工作
this.Opacity = 1;//弹出窗透明度设置为1,完全不透明
if (System.Windows.Forms.Control.MousePosition.X &lt; this.Location.X &amp;&amp; System.Windows.Forms.Control.MousePosition.Y &lt; this.Location.Y)//如下
{
timer1.Enabled = true;
timer2.Enabled = false;
}
}
timer1的事件中代码:
private void timer1_Tick(object sender, EventArgs e)
{
timer2.Enabled = false;//停止timer2计时器,
if (this.Opacity &gt; 0 &amp;&amp; this.Opacity &lt;= 1)//开始执行弹出窗渐渐透明
{
this.Opacity = this.Opacity - 0.05;//透明频度0.05
}
if (System.Windows.Forms.Control.MousePosition.X &gt;= this.Location.X &amp;&amp; System.Windows.Forms.Contr
ol.MousePosition.Y &gt;= this.Location.Y)//每次都判断鼠标是否是在弹出窗上,使用鼠标在屏幕上的坐标跟弹出窗体的屏幕坐标做比较。

{
timer2.Enabled = true;//如果鼠标在弹出窗上的时候,timer2开始工作timer1.Enabled = false;//timer1停止工作。

}
if (this.Opacity == 0)//当透明度==0的时候,关闭弹出窗以释放资源。

{
this.Close();
}
}。

相关文档
最新文档