怎么在MessageBox之前得到当前被激活窗口的句柄,关闭MessageBox之后再讲该窗口激活。

时间:2021-10-03 23:54:42
当前有一个ListView,单机某行之后该行就可变为选中状态。

然后响应SelectedIndexChanged事件,代码如下:
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listView1.SelectedIndices.Count != 0)
            {
                MessageBox.Show("****");
            }
        }


这时发现第一次单机某行可以显示出MessageBox,关闭此MessageBox后。再单机某行就不会显示MessageBox了。
必须要单机两次才可以显示出来。

我推测是因为关闭MessageBox后,焦点并没有落回到原先的窗口。导致第一次单机先是激活ListView窗口,第二次单机才能将MessageBox显示出来。
不知道推测的对不对。
但是当我发现关闭MessageBox后,从窗口外观上来看该窗口和ListView中被选中的那行都已经是选中状态了。
不解。请大虾们指教

(我用的是vs2005,项目类型:Pocket PC 2003 设备应用程序(1.0))

13 个解决方案

#1


但是当我发现关闭MessageBox后,从窗口外观上来看该窗口和ListView中被选中的那行都已经是选中状态了。 

这很正常.

#2


有没有办法能能每次单机都显示MessageBox呢?

#3


应该是每次单机都显示MessageBox.
你这个Index要是不改变,是不会响应这个事件的.

#4


可是我点其他行也是必须点两次才能显示MessageBox啊

#5


点一次就会显示的,点两次?是不是鼠标的问题

#6


哈哈。肯定不是鼠标的问题。因为只要吧MessageBox那行注释上就会点一次就显示了。

#7


注释掉,你的对话框是如何显示的?????????????

#8


关闭对话框后 将列表的  index值赋为-1

#9


把你的SelectedIndexChanged事件换成dataGridView1_CellClick事件看看

#10


原来这样的问题曾经被问过。但没有答案

发表于: 2006-07-01 11:56 AM    发表主题: VS2005,ListView.SelectedIndexChanged事件不能触发??是MS的Bu   

--------------------------------------------------------------------------------
 
使用工具:VS2005 
硬件:华硕716 
在PPC开发过程中,用ListView控件显示数据列表,通过该控件的SelectedIndexChanged事件弹出一个对话框(MessageBox),关闭该对话框后,然后再次点击ListView控件,我想通过选择另外的一项再次触发事件弹出一个对话框显示当前记录的详细信息,但这个时候ListView却没有触发SelectedIndexChanged事件(初次打开该程序时的第一次点击,事件可以触发,能弹出对话框,但该对话框关闭后就不行了),需要点击两次才可以触发(有时第一次的事件在点击屏幕的第二次时一并触发),真是不解,哪位兄弟能帮我一下呀???  

#11


使用Cell改变的事件  不要用 index改变的事件

#12


SelectedIndexChanged是当选中的索引位置变了以后激发的。
你要每次都弹出MessageBox应该用clicked事件

#13


学习了。。

#1


但是当我发现关闭MessageBox后,从窗口外观上来看该窗口和ListView中被选中的那行都已经是选中状态了。 

这很正常.

#2


有没有办法能能每次单机都显示MessageBox呢?

#3


应该是每次单机都显示MessageBox.
你这个Index要是不改变,是不会响应这个事件的.

#4


可是我点其他行也是必须点两次才能显示MessageBox啊

#5


点一次就会显示的,点两次?是不是鼠标的问题

#6


哈哈。肯定不是鼠标的问题。因为只要吧MessageBox那行注释上就会点一次就显示了。

#7


注释掉,你的对话框是如何显示的?????????????

#8


关闭对话框后 将列表的  index值赋为-1

#9


把你的SelectedIndexChanged事件换成dataGridView1_CellClick事件看看

#10


原来这样的问题曾经被问过。但没有答案

发表于: 2006-07-01 11:56 AM    发表主题: VS2005,ListView.SelectedIndexChanged事件不能触发??是MS的Bu   

--------------------------------------------------------------------------------
 
使用工具:VS2005 
硬件:华硕716 
在PPC开发过程中,用ListView控件显示数据列表,通过该控件的SelectedIndexChanged事件弹出一个对话框(MessageBox),关闭该对话框后,然后再次点击ListView控件,我想通过选择另外的一项再次触发事件弹出一个对话框显示当前记录的详细信息,但这个时候ListView却没有触发SelectedIndexChanged事件(初次打开该程序时的第一次点击,事件可以触发,能弹出对话框,但该对话框关闭后就不行了),需要点击两次才可以触发(有时第一次的事件在点击屏幕的第二次时一并触发),真是不解,哪位兄弟能帮我一下呀???  

#11


使用Cell改变的事件  不要用 index改变的事件

#12


SelectedIndexChanged是当选中的索引位置变了以后激发的。
你要每次都弹出MessageBox应该用clicked事件

#13


学习了。。