private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.DefaultExt = "xml";
            dialog.Multiselect = true;
            dialog.RestoreDirectory = true;
            dialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
            DialogResult dr = dialog.ShowDialog();         
            if (dr == DialogResult.OK)
            {
                if (dialog.FileName != "a.xml") ;
                {
                    // 我不想关闭这个dialog,我应该怎么做?
                }
            }                        
        }

解决方案 »

  1.   

    当选中一个文件,并且click打开的时候,我会做一个validation,如果条件不满足,我希望OpenDialog不要关闭,请问如何做到这一点 谢谢
      

  2.   

    如果只是希望重新打开,那么就
    if (dialog.FileName != "a.xml") {
                        dialog.ShowDialog();
                    }否则的话
    private void button1_Click(object sender, EventArgs e) {
                OpenFileDialog dialog = new OpenFileDialog();
                dialog.DefaultExt = "xml";
                dialog.Multiselect = true;
                dialog.RestoreDirectory = true;
                dialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
                dialog.FileOk += new CancelEventHandler(dialog_FileOk);            DialogResult dr = dialog.ShowDialog();
                if (dr == DialogResult.OK) {
                    //do your own processing here
                }
            }        /// <summary>
            /// add your validation here
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void dialog_FileOk(object sender, CancelEventArgs e) {
                OpenFileDialog dialog = sender as OpenFileDialog;
                if (dialog.FileName != "a.xml") {
                    e.Cancel = true;
                }
            }
      

  3.   

    你的方法很好狠强大 哈哈
    我也想到了 不过我那个时间注册放在了DialogResult dr = dialog.ShowDialog(); 这一航后面,结果没有作用,我正奇怪呢,看到了你的回帖。Thank you!