上位机开发;C#;winform;

#拔出U盘,偶尔没有提示...#winform#上位机开发
后续功能是建立在拔出U盘后实现的,不知道是怎么回事,大部分测试过程,U盘拔出都是有messagebox提示的,就偶尔一次,没有提示。

if (m.Msg == 0x0014)
                return;

            try
            {
                if (m.Msg == 0x219)
                {
                    switch (m.WParam.ToInt32())
                    {
                        case 0x8000://U盘插入
                            DriveInfo[] s = DriveInfo.GetDrives();
                            foreach (DriveInfo drive in s)
                            {
                                if (drive.DriveType == DriveType.Removable)
                                {
                                    Upath = drive.Name;
                                    DialogResult mm = MessageBox.Show("U盘已插入", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    if (mm == DialogResult.OK)
                                    {
                                        return;
                                    }
                                    break;
                                }
                            }
                            break;
                        case 0x8004: //U盘卸载
                            Xiou = 0;
                            this.m_PanelPlan1.IDSCId = null;
                            DialogResult n = MessageBox.Show("串口已弹出", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            if (n == DialogResult.OK)
                            {
                                return;
                            }
                            break;
                        default:
                            break;
                    }
                }
            }

你这什么API我是没用过
但是MessageBox的结果你为什么要判断一下,你一共只放了一个ok上去,不是ok还能是什么呢
此外,如果你弹出的MessageBox没人去点,那么整个代码就阻塞了,此时拔出U盘程序肯定没响应呀
如果一个信息不是报警级别,那么不要用模态窗体阻止用户操作,这样非常不友好
你应该使用气泡(tooltip)