日期:2014-05-18  浏览次数:20392 次

OpenFileDialog.ShowDialog()弹出在IE后面(非模态)
今天做一个浏览文件的按钮时调用了OpenFileDialog.ShowDialog()函数,等了半天(页面在刷新),才发现弹出的对话框在浏览器后面... - -! 这是怎么回事?
查看ShowDialog()函数需要一个参数IWin32Window owner,但是页面里不能提供这样的参数啊.求大神指点.
C# code

        OpenFileDialog dialog = new OpenFileDialog();
        dialog.InitialDirectory = "C:\\";
        dialog.Filter = "文本文件|*.*|C#文件|*.cs|所有文件|*.*";
        dialog.RestoreDirectory = true;
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            ...
        }



------解决方案--------------------
js也可以的

1. 要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
parent.htm
<script>
var obj = new Object();
obj.name="51js";
window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>
modal.htm
<script>
var obj = window.dialogArguments
alert("您传递的参数为:" + obj.name)
</script>
-------------------------------
2. 可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
------------------------------
parent.htm
<script>
str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(str);
</script>
modal.htm
<script>
window.returnValue="http://homepage.yesky.com";
</script>