一个主窗体,一个对话框窗体
按主窗体后弹出对话框窗体
对话框上有几个TEdit控件
我用IF语句判断如果哪个Edit为空就弹出一个MessageBox说该项不能为空
但是我一点MessageBox上的确定按钮焦点不是回到对话框窗体而是回到了主窗体
这是为什么呢
我写成Form1.show又没什么反应,问题依旧
我把if语句中再添加一句Form1.showmodal后总是说
Can't make a visible window modal.

解决方案 »

  1.   

    你将按钮的属性设为Modal了,当然不行,将ModalResult设为None
      

  2.   

    messagebox的窗口句柄应该用form1.handle
      

  3.   

    if语句中再添加一句Form1.showmodal后,把对话框窗体的visible属性先设成false
      

  4.   

    王子说的对,或者该FORM的BorderStyle为bsDialog
      

  5.   

    你们说的这些我都试过啊
    FORM的BorderStyle本来就是bsDialog
    messagebox的窗口句柄也是用的form1.handle
    if语句中添加Form1.showmodal前,把对话框窗体的visible属性先设成false
    按钮的属性设为Modal了何解啊
    哪个按钮,是MessageBox上的按钮还是我Form1上的按钮啊
      

  6.   

    如果还是不行,就在MessageBox下加入一条语名:
    setforgroundwindow(对话框窗体.handle);
      

  7.   

    动态创建你的对话框吧,绝对没有问题,我一直在用。  with TPatrol_Form_Path.Create(self) do
     begin
       ShowModal;
       free;
     end;
      

  8.   

    Application.MessageBox 比大家单独使用 MessageBox 要好。
      

  9.   

    你在主窗体中是如何调用对话框窗体的?
    如果free了 可能有问题
      

  10.   

    在Form1.showmodal前先
    Form1.Visible := false ;