本文介绍了在c#中的第一个winform中检测第二个winform窗口状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个胜利形式,我使用了最小化的第二个胜利形式
这个 .WindowState = FormWindowState.Minimized
this .ShowInTaskbar = true ;
并且我在第一个winform中有计时器,每17秒设置一次,当计时器的下一个周期在第一个winform中击中事件时,我试图获得第二个win-form窗口状态
frmPopup objPopup = new frmPopup( false );
MessageBox.Show( + objPopup.WindowState + );
Form_2_Code:
private void Form2_SizeChanged(对象发件人,EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
isMinimized = 1 ;
}
}
私有 void Minimize_Click( object sender,EventArgs e)
{
this .Resize - = new EventHandler(Form2_SizeChanged);
this .DialogResult = System.Windows.Forms.DialogResult.Cancel;
this .WindowState = FormWindowState.Minimized;
this .ShowInTaskbar = true ;
this .Resize + = new EventHandler(Form2_SizeChanged);
}
private void btnOK_Click( object sender,EventArgs e)
{
Process [] processes = Process.GetProcessesByName( XXXX跨度>);
if (processes.Length!= 0 )
{
lblWarning.Visible = true ;
}
else
此 .DialogResult = System.Windows。 Forms.DialogResult.OK;
}
private void btnCancel_Click( object sender,EventArgs e)
{
this .DialogResult = System.Windows.Forms.DialogResult。取消;
}
Form_1_code:
frmPopup objPopup = new frmPopup(false) ; //全球声明
私人 void timer3_Tick( object sender,EventArgs e)
{
Process [] process1 = Process.GetProcessesByName( XXXX);
int iWindowstate = objPopup.isMinimized; // objPopup是Form2的对象,在Form1中声明为全局
if ((iWindowstate == 0 && process1.Length == 0 )||(iWindowstate == 1 && process1.Length == 0 ))
{
if (objPopup.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
// dialog.Result.ok
}
}
timer3.Enabled = true ;
}
我的问题:如果我最小化第二个winform我需要被放置在任务栏中尽管我可以能够获得第二个winform的windowstate我需要将第二个winform放置在任务栏中,而不是在最小化状态的systemsTray中但它消失了
解决方案
这篇关于在c#中的第一个winform中检测第二个winform窗口状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!