精华内容
下载资源
问答
  • 虽然在IE下可以通过模式窗体的方式创建更丰富的对话框功能,但毕竟只有IE得到支持。为了得到更丰富的自定义对话框功能,于是用JQuery编写了一个对话框插件;只需简单地引用相关JavaScript就能得到丰富的自定义对话框...
  • 对话框的窗口标题不会显示在任务栏中的,任务栏仅会显示主窗体的名称。 对于模式对话框(Model Dialog),只有对话框关闭后,背后父窗体才会获得焦点。无模式对话框(Modeless Dialog)没有这样的限制。   那么...

    1. 关于标准对话框

    首先,一个标准的对话框应该严格具备至少如下特点:

    1. 只要背后父窗体显示,它一定会显示,并且覆盖在父窗体之上。
    2. 对话框的窗口标题不会显示在任务栏中的,任务栏仅会显示主窗体的名称。
    3. 对于模式对话框(Model Dialog),只有对话框关闭后,背后父窗体才会获得焦点。无模式对话框(Modeless Dialog)没有这样的限制。

     

    那么,举个例子,比如记事本中的字体选择对话框就是一个模式对话框,它的行为举止完全符合上述特点。

    image

     

     

    除了上述3点最不可缺少的。其次就是一些细节问题,比如对话框该不该显示图标?

    一般情况下多数对话框都是没有图标的,不过额外为对话框添加图标也可以的。

     

    还有就是对话框的大小问题,对话框该不该允许用户调节大小?

    我个人认为如果没有什么特殊要求的话,每个对话框都应该允许用户调节大小的。毕竟固定大小的对话框会在大分辨率环境下觉得太小,或者小分辨率环境下用户觉得太大。当然有些对话框在显示前会根据显示器环境参数来自动调节大小,不过如果可能的话,还是允许用户调整大小比较好也比较方便。

     

     

    好了,通过上面了解了对话框的基本要求和特点,下面就开始讲对于WPF框架,怎样创建一个更好的对话框。

    首先我们需要把Window的ShowInTaskbar属性设置成False,这样对话框不会在任务栏中显示。

     

    其次是对话框的颜色问题,标准对话框的背景颜色应该和Windows窗体控件颜色保持一致,在WPF中,窗体的默认颜色是白色的,在Windows 7下多数亮度比较大的Aero主题下可能看得不明显,把主题调节成经典Windows主题,再看对话框背景就很明显了,比如,记事本中的对话框:

    image

     

    WPF中的SystemColors类型提供系统预定义颜色的封装,可以动过一个简单的DynamicResource标记扩展就可以显示成系统控件颜色。其中的ControlColor就是我们想要的颜色。由于WPF中背景颜色类型是Brush同时用DynamicResource绑定一个资源键,所以最后用SystemColors的ControlBrushKey属性。(这里用DynamicResource可以随时根据系统颜色变化而改变当前程序的颜色)。

     

    代码如下:

    Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"

     

     

    接着关于对话框的大小,对于固定大小的对话框,设置Window类型的ResizeMode属性为NoResize,对话框的大小就固定了,如下:

    image

     

    对于可以调节大小的对话框,你可以直接使用默认样式,不过这样的话最大化和最小化按钮还在,这种对话框看起来比较不舒服也很少见,所以你可以把WindowStyle设置成ToolWindow就是工具窗口,这样就只有关闭按钮显示了(不过,工具窗口的关闭按钮要略小):

    image

     

    而对于大多数标准可调节大小的Windows对话框,比如打开文件对话框,它的右上角只显示标准的关闭按钮(比工具窗口的关闭按钮要大),同时右下角有一个调节大小指示区域来提示用户虽然我看起来像固定大小的对话框但是我是可以调节大小的:

    image

     

    对于右下角的缩放提示区域,可以设置Window类型的ResizeMode为CanResizeWithGrip。

     

    上述要求,在WPF中可以实现的功能有如下代码:

    ShowInTaskbar="False"

    ResizeMode="CanResizeWithGrip"

    Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"

     

    不过不幸的是,当前的WPF不能直接隐藏最小化按钮和最大化按钮,同时也不支持窗体图标的隐藏。解决方案可以参考:WPF:窗体不显示或禁用最大化、最小化、关闭按钮、图标以及对话框显示

     

    那么当上述功能都实现后,一个最标准的可调节大小的Window对话框就的结果应该是这样的(注意背景不是白色的):

    image

     

    在经典主题下是这样的:

    image

     

    上面都是讲标准Windows对话框。不过,我个人认为,既然对话框应该允许用户更改大小,那么为什么要把最大化按钮去掉呢?有了最大化按钮可以使对话框立即铺满屏幕而不需要用户再用鼠标慢慢放大。当然最小化按钮是不该有的,因为对话框不显示在任务栏里。

     

    所以理想对话框应该是这样的(可能看起来有些不优美,但是最实用):

    image

     

    (文章后面下载部分会给出一个实例工程可以快速创建出上述各种对话框)

     

     

    返回目录

    2. 关于ShowDialog方法

    OK,创建好对话框后,就是怎么显示的问题了。这里还是有一些问题的需要警惕的。

     

    在Windows Forms框架中,显示对话框窗体的方法:Form.ShowDialog有一个可以指定窗体所有者Owner的重载:

    public DialogResult ShowDialog(IWin32Window owner);

    Form类型也继承自IWin32Window接口。所以通过这个方法我们可以很快得显示一个对话框并且设置它的Owner。

     

     

    而WPF中的窗体:Window类型并没有提供这样的重载,它的ShowDialog方法只有这样一个原型:

    public bool? ShowDialog();

     

    于是开发者调用ShowDialog时往往会直接忘记设置对话框的Owner属性,这样的后果是什么呢?我们慢慢来演示。

     

    比如我们已经创建好了一个对话框,然后在主窗体里需要按照模式对话框显示,但是没有设置Owner直接调用ShowDialog:

    new MyDialog().ShowDialog();

     

    结果:

    image

     

    OK,看起来不错,对话框显示在主窗体上面,同时对话框不关闭主窗体无法获得焦点。

     

    不过当你在任务栏中点击主窗体的图标后,你会发现,这个对话框会显示在主窗体之后了:

    image

    而且此时主窗体仍无法获得焦点,只有关闭后面的对话框才可以。

     

    那么问题是当你把主窗体最大化后,再点任务栏中的主窗体图标,对话框没了,现在的问题就是由于主窗体是最大化状态,你根本没把点到也不可能关闭背后的对话框!而主窗体无法获得焦点没法点,程序就这样明明没死但是因无法操作而完蛋了。(如果WindowStyle不是ToolWindow的对话框,此时可以通过切换其他窗口或再次点击程序任务栏图标对话框即可再次出现在主窗体之上,如果没法出现,程序只能通过任务管理器强制结束。)

     

    因此不管上面的问题你怎么看,相信谁也不想因为这种小问题而惹恼用户,那么乖乖地设置Owner吧,像这样:

    var dlg = new MyDialog();

    dlg.Owner = this;

    dlg.ShowDialog();

     

    这样不仅不会由上面的问题,当模式对话框没有关闭但用户尝试点击主窗体时,对话框还会不停得闪动来提示用户先完成对话框的工作。

     

    当然,对于上面讲的WPF的ShowDialog没有提供快速设置Owner属性的重载,我们可以写一个扩展方法。一个可以设置Owner,另一个会自动把当前应用程序的主窗体(通过Application.Current.MainWindow)作为对话框的Owner并显示对话框。

    static class WindowExtension

    {

        public static void ShowDialog(this Window win, Window owner)

        {

            win.Owner = owner;

            win.ShowDialog();

        }

     

        public static void ShowDialogEx(this Window win)

        {

            win.ShowDialog(Application.Current.MainWindow);

        }

    }

     

    这样的话,使用起来就更方便了:

    new MyDialog().ShowDialogEx();

    //或者

    new MyDialog().ShowDialog(this);

    展开全文
  • 对话框的窗口标题不会显示在任务栏中的,任务栏仅会显示主窗体的名称。 对于模式对话框(Model Dialog),只有对话框关闭后,背后父窗体才会获得焦点。无模式对话框(Modeless Dialog)没有这样的限制。   那么...

    1. 关于标准对话框

    首先,一个标准的对话框应该严格具备至少如下特点:

    1. 只要背后父窗体显示,它一定会显示,并且覆盖在父窗体之上。
    2. 对话框的窗口标题不会显示在任务栏中的,任务栏仅会显示主窗体的名称。
    3. 对于模式对话框(Model Dialog),只有对话框关闭后,背后父窗体才会获得焦点。无模式对话框(Modeless Dialog)没有这样的限制。

     

    那么,举个例子,比如记事本中的字体选择对话框就是一个模式对话框,它的行为举止完全符合上述特点。

    image

     

     

    除了上述3点最不可缺少的。其次就是一些细节问题,比如对话框该不该显示图标?

    一般情况下多数对话框都是没有图标的,不过额外为对话框添加图标也可以的。

     

    还有就是对话框的大小问题,对话框该不该允许用户调节大小?

    我个人认为如果没有什么特殊要求的话,每个对话框都应该允许用户调节大小的。毕竟固定大小的对话框会在大分辨率环境下觉得太小,或者小分辨率环境下用户觉得太大。当然有些对话框在显示前会根据显示器环境参数来自动调节大小,不过如果可能的话,还是允许用户调整大小比较好也比较方便。

     

     

    好了,通过上面了解了对话框的基本要求和特点,下面就开始讲对于WPF框架,怎样创建一个更好的对话框。

    首先我们需要把Window的ShowInTaskbar属性设置成False,这样对话框不会在任务栏中显示。

     

    其次是对话框的颜色问题,标准对话框的背景颜色应该和Windows窗体控件颜色保持一致,在WPF中,窗体的默认颜色是白色的,在Windows 7下多数亮度比较大的Aero主题下可能看得不明显,把主题调节成经典Windows主题,再看对话框背景就很明显了,比如,记事本中的对话框:

    image

     

    WPF中的SystemColors类型提供系统预定义颜色的封装,可以动过一个简单的DynamicResource标记扩展就可以显示成系统控件颜色。其中的ControlColor就是我们想要的颜色。由于WPF中背景颜色类型是Brush同时用DynamicResource绑定一个资源键,所以最后用SystemColors的ControlBrushKey属性。(这里用DynamicResource可以随时根据系统颜色变化而改变当前程序的颜色)。

     

    代码如下:

    Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"

     

     

    接着关于对话框的大小,对于固定大小的对话框,设置Window类型的ResizeMode属性为NoResize,对话框的大小就固定了,如下:

    image

     

    对于可以调节大小的对话框,你可以直接使用默认样式,不过这样的话最大化和最小化按钮还在,这种对话框看起来比较不舒服也很少见,所以你可以把WindowStyle设置成ToolWindow就是工具窗口,这样就只有关闭按钮显示了(不过,工具窗口的关闭按钮要略小):

    image

     

    而对于大多数标准可调节大小的Windows对话框,比如打开文件对话框,它的右上角只显示标准的关闭按钮(比工具窗口的关闭按钮要大),同时右下角有一个调节大小指示区域来提示用户虽然我看起来像固定大小的对话框但是我是可以调节大小的:

    image

     

    对于右下角的缩放提示区域,可以设置Window类型的ResizeMode为CanResizeWithGrip。

     

    上述要求,在WPF中可以实现的功能有如下代码:

    ShowInTaskbar="False"

    ResizeMode="CanResizeWithGrip"

    Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"

     

    不过不幸的是,当前的WPF不能直接隐藏最小化按钮和最大化按钮,同时也不支持窗体图标的隐藏。解决方案可以参考:WPF:窗体不显示或禁用最大化、最小化、关闭按钮、图标以及对话框显示

     

    那么当上述功能都实现后,一个最标准的可调节大小的Window对话框就的结果应该是这样的(注意背景不是白色的):

    image

     

    在经典主题下是这样的:

    image

     

    上面都是讲标准Windows对话框。不过,我个人认为,既然对话框应该允许用户更改大小,那么为什么要把最大化按钮去掉呢?有了最大化按钮可以使对话框立即铺满屏幕而不需要用户再用鼠标慢慢放大。当然最小化按钮是不该有的,因为对话框不显示在任务栏里。

     

    所以理想对话框应该是这样的(可能看起来有些不优美,但是最实用):

    image

     

    (文章后面下载部分会给出一个实例工程可以快速创建出上述各种对话框)

     

     

    返回目录

    2. 关于ShowDialog方法

    OK,创建好对话框后,就是怎么显示的问题了。这里还是有一些问题的需要警惕的。

     

    在Windows Forms框架中,显示对话框窗体的方法:Form.ShowDialog有一个可以指定窗体所有者Owner的重载:

    public DialogResult ShowDialog(IWin32Window owner);

    Form类型也继承自IWin32Window接口。所以通过这个方法我们可以很快得显示一个对话框并且设置它的Owner。

     

     

    而WPF中的窗体:Window类型并没有提供这样的重载,它的ShowDialog方法只有这样一个原型:

    public bool? ShowDialog();

     

    于是开发者调用ShowDialog时往往会直接忘记设置对话框的Owner属性,这样的后果是什么呢?我们慢慢来演示。

     

    比如我们已经创建好了一个对话框,然后在主窗体里需要按照模式对话框显示,但是没有设置Owner直接调用ShowDialog:

    new MyDialog().ShowDialog();

     

    结果:

    image

     

    OK,看起来不错,对话框显示在主窗体上面,同时对话框不关闭主窗体无法获得焦点。

     

    不过当你在任务栏中点击主窗体的图标后,你会发现,这个对话框会显示在主窗体之后了:

    image

    而且此时主窗体仍无法获得焦点,只有关闭后面的对话框才可以。

     

    那么问题是当你把主窗体最大化后,再点任务栏中的主窗体图标,对话框没了,现在的问题就是由于主窗体是最大化状态,你根本没把点到也不可能关闭背后的对话框!而主窗体无法获得焦点没法点,程序就这样明明没死但是因无法操作而完蛋了。(如果WindowStyle不是ToolWindow的对话框,此时可以通过切换其他窗口或再次点击程序任务栏图标对话框即可再次出现在主窗体之上,如果没法出现,程序只能通过任务管理器强制结束。)

     

    因此不管上面的问题你怎么看,相信谁也不想因为这种小问题而惹恼用户,那么乖乖地设置Owner吧,像这样:

    var dlg = new MyDialog();

    dlg.Owner = this;

    dlg.ShowDialog();

     

    这样不仅不会由上面的问题,当模式对话框没有关闭但用户尝试点击主窗体时,对话框还会不停得闪动来提示用户先完成对话框的工作。

     

    当然,对于上面讲的WPF的ShowDialog没有提供快速设置Owner属性的重载,我们可以写一个扩展方法。一个可以设置Owner,另一个会自动把当前应用程序的主窗体(通过Application.Current.MainWindow)作为对话框的Owner并显示对话框。

    static class WindowExtension

    {

        public static void ShowDialog(this Window win, Window owner)

        {

            win.Owner = owner;

            win.ShowDialog();

        }

     

        public static void ShowDialogEx(this Window win)

        {

            win.ShowDialog(Application.Current.MainWindow);

        }

    }

     

    这样的话,使用起来就更方便了:

    new MyDialog().ShowDialogEx();

    //或者

    new MyDialog().ShowDialog(this);

    展开全文
  • 虽然在IE下可以通过模式窗体的方式创建更丰富的对话框功能,但毕竟只有IE得到支持。为了得到更丰富的自定义对话框功能,于是用JQuery编写了一个对话框插件;只需简单地引用相关JavaScript就能得到丰富的自定义对话框...
    JavaScript为我们提供几种对话框功能,但功能都十分有限;虽然在IE下可以通过模式窗体的方式创建更丰富的对话框功能,但毕竟只有IE得到支持。为了得到更丰富的自定义对话框功能,于是用JQuery编写了一个对话框插件;只需简单地引用相关JavaScript就能得到丰富的自定义对话框功能。 

    插件功能特点:

           允许通过CSS进行外观控制。

           可以任意把面页的元素作为对话框显示。

           当对话框激活时,对话框外的任何元素不能接受鼠标操作。

           对话框可以在工作区范围内任意移动,根据工作区大小自适应居中功能。

           并不需要编写复杂的JavaScript,通过简单HTML属性描述即可。

           经过测试插件可以在Firefox和IE下正常工作。

    简单使用描述:

           引用JQuery和对话框插件文件:

           <script src=jquery-latest.js></script>

    <script src=messageBox.js></script>  

           定义相关按钮为行:

           <input id="Button4" type="button" value="提问对话框"              showoption="control:test2;width:220;height:120;title:对话框" />

           定义相关对话框显示的内容:

        <div id="test2" style="display:none">

            <table style="width: 200px">

                <tr>

                    <td >

                        JQuery模式对话框插件好用吗?</td>

                </tr>

                <tr>

                    <td align="right" >

                        <input id="Button2" οnclick="CloseMessageBox()" type="button" value="是" />

                        <input id="Button6" οnclick="CloseMessageBox()" type="button" value="否" /></td>

                </tr>

            </table>

        </div>



    具体应用效果:

    /* JQuery 模式对话框插件

    * writer: FanJianHan (henryfan@msn.com)

    * License: GPL (GPL-LICENSE.txt) licenses.

    */

    //是否已初始化过对话框

    var MessageOninit = false;

    //记录body滚动条的x,y偏移量;显示内容的元素对象,显示内容元素对象的父对象

    var MessageBox_scrolltop,MessageBox_scrollleft,Messagebox_AC,MessageBox_PC;

    //对话框对象,对话框宽度,对话框高度

    var MessageBox_win,MessageBox_width,MessageBox_height;

    //对话框是否处于移动状态

    var MessageBox_Moving = false;



    //显示模式提示框

    function ShowMessageBox(option)

    {

        var container,iframe,enabled,enabledframe;

        var height=400;

        var width =400;

        MessageBox_scrolltop =0;

        MessageBox_scrollleft =0;

        if(!MessageOninit)

        {

           CreateContainer(option);

           MessageOninit = true;

           $('#messagebox_close').click(function(){

                 CloseMessageBox();

           });

           $(window).resize(function(){

                SetStyle(option);

                SetEnabledStyle();

          

           });

           $(window).scroll(function(e){

                MessageBox_scrolltop =document.documentElement.scrollTop;

                MessageBox_scrollleft = document.documentElement.scrollLeft;

                SetEnabledStyle();

           });

           MessageBox_win = $("#messagebox_win");

           $('#messagebox_title').mousedown(handleMouseDown);

           $('#messagebox_title').mouseup(handleMouseUp);

           $('#messagebox_title').mousemove(handleMouseMove);

           document.onmouseup = handleMouseUp;

          

          

        }

        

        

        if(option.height)

            height = parseInt(option.height);

        if(option.width)

            width = parseInt(option.width);

        MessageBox_height = height;

        MessageBox_width = width;

        Messagebox_AC = $('#'+option.control);

        MessageBox_PC = Messagebox_AC.parent();

        Messagebox_AC.css('display','');

        enabled='<div id="messagebox_enabled" style="background-color: lightgrey;width:100%;height:100%;position:absolute;z-index:99998;"></div>'

        enabledframe='<iframe id="messagebox_enabledframe"  frameborder=0 scrolling=no style="position:absolute; visibility:inherit; top:0px; left_0px; width:100%;height:100%;z-index:99997; "></iframe>';

        $('#messagebox_enabledframe').remove()_

        $('#messagebox_enabled').remove();

        $('#messagebox_title').html(option.title);

      

        $('#messagebox_from').append(Messagebox_AC);

        SetStyle(option);

        $(document.body).append(enabledframe);

        $(document.body).append(enabled);

        SetEnabledStyle();

        $('#messagebox_win').fadeIn("slow");

      

        

        //创建对话框容器

        function CreateContainer(option)

        {

            var html;

            html='<div id="messagebox_win" style="position:absolute;z-index:99999;"><table  cellpadding="0" cellspacing="0" id="messagebox_table"><tr><td id="messagebox_title_td"><table id="messagebox_title_table" ><tr><td style="width:99%;" ><div id="messagebox_title" style="width:100%;cursor: default;"></div></td><td><button id="messagebox_close"></button></td></tr></table></td></tr><tr id="messagebox_body_td"><td valign="top" ><div id="messagebox_from" style="text-align: center;"></div></td></tr></table></div>';

            if(option.parent)

            {

                $('#' + option.parent).append(html);

            }

            else

            {

                $(document.body).append(html);

            }

        }

        

        //设置显示时背景式样

        function SetEnabledStyle()

        {

            var de,w,h,css,region;

            region = GetDocumentRegion();

            css ={width:region.width+"px",height:region.height+"px",

            left: MessageBox_scrollleft+'px',top: MessageBox_scrolltop +'px'}

            GetOpacity(css);

            $("#messagebox_enabled").css(css);

            $("#messagebox_enabledframe").css(css);

        }

        

        //设置透明式样

        function GetOpacity(css)

        {

            if(window.navigator.userAgent.indexOf('MSIE')>=1)

            {

                css.filter= 'progid:DXImageTransform.Microsoft.Alpha(opacity=30)';

            }

            else

            {

                css.opacity= '0.3';

            }  

        }

        

        //设置对话框试样

        function SetStyle(option)

        {

            var region,css;

            region = GetDocumentRegion();

            css ={width:MessageBox_width+'px',height:MessageBox_height+'px',

            left: ((region.width - MessageBox_width)/2)+'px',top: ((region.height - MessageBox_height)/2)+'px'}

            if(region.height < MessageBox_height )//如果body显示的高度小于对话框高度

            {

                css.top=10+'px';

            }

            else

            {

                css.top=((region.height - MessageBox_height)/2)+'px'

            }

            $('#messagebox_win').css(css);

            css.top='0px';

            css.left='0px';

            $('#messagebox_table').css(css);

            css.width='100%';

            css.height='16px';

            $('#messagebox_title_td').css(css);

            css.height= height-46 +'px';

            $('#messagebox_body_td').css(css);

          

          

        }

        

        var down_x,down_y,cx,cy;

        function handleMouseDown(e)

        {

                var evt = e || event;

              

             down_x=evt.clientX;

             down_y = evt.clientY;

             cx =(parseInt(MessageBox_win.css('left'))|0);

             cy = (parseInt(MessageBox_win.css('top'))|0)

             MessageBox_Moving= true;&sup3;

             document.documentElement.onselectstart = function(){return false};

             document.documentElement.ondrag = function(){return false};

             document.onmousemove = handleMouseMove;

             $(document.body).append('<div id="messagebox_move" style="position: absolute; z-index:100000;border-right: midnightblue 1px dashed; border-top: midnightblue 1px dashed; border-left: midnightblue 1px dashed; border-bottom: midnightblue 1px dashed;"></div>');

             $('#messagebox_move').css('width',MessageBox_win.css('width'));

             $('#messagebox_move').css('height',MessageBox_win_u99 ?ss('height'));

             $('#messagebox_move').css('left',MessageBox_win.css('left'));

             $('#messagebox_move').css('top',MessageBox_win.css('top'));

          

          

        }

      

        function GetDocumentRegion()

        {

            var w,h,de;

            de = document.documentElement;

            w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;

            h = self.innerHeight || (de&&de.clientHeight)|| document.body.clientHeight;

            return {height:h,width:w};

        }

        

        function handleMouseMove(e)

        {

            var left,top,region;

            if (MessageBox_Moving)

            {

                var evt = e || event;

                

                left =evt.clientX+cx-down_x;

                top = evt.clientY+cy-down_y;

                region = GetDocumentRegion();

                if(left+ MessageBox_width > region.width)

                {

                    left = region.width - 10- MessageBox_width;

                }

                if(top + MessageBox_height >region.height)&sup3;

                {

                    top = region.height-10 - MessageBox_height;

                }

                if(left <10)

                    left =10;

                if(top <10)

                    top =10;

                var css ={left:left+'px',top:top+'px'}

                $('#messagebox_move').css(css);

            }

        }

        

        function handleMouseUp()

        {

            if(MessageBox_Moving)

            {

                MessageBox_win.css('width',$('#messagebox_move').css("width"));

                MessageBox_win.css('height',$('#messagebox_move').css("height"));

                MessageBox_win.css('left',$('#messagebox_move').css("left"));

                MessageBox_win.css('top',$('#messagebox_move').css("top"));

            }

            MessageBox_Moving _u61 ? false;

            document.onmousemove = null;

           $('#messagebox_move').remove();

        }



        

    }



    //关闭模式对话框

    function CloseMessageBox()

    {

        if(MessageOninit)

        {

           $('#messagebox_win').hide();

           $('#messagebox_enabled').remove();

           $('#messagebox_enabledframe').remove();

          Messagebox_AC.css('display','none');

           MessageBox_PC.append(Messagebox_AC);

            

        }

         document.documentElement.onselectstart = null;

             document.documentElement.ondrag = null;

    }

    $(document).ready(function(){

        $(document).find('[@showoption]').each(function(){

            var namevalue;

            //虽然显示的元素id,显示宽度,显示高度,标题,对话框寄居的元素对象id

            var option={control:'',width:'400',height:'400',title:'',parent:null};

            var properties = $(this).attr('showoption').split(';');

            for(i=0;i<properties.length;i++)

            {

                namevalue = properties[i].split(':');

                if(namevalue.length >1)

                {

                    execute ="option." + namevalue[0] +'=/''+ namevalue[1]+'/';';

                    eval(execute);

                }

            }

            

            $(this).click(function(){

                ShowMessageBox(option);

                document.body.focus();

            });

        });    

    });
    展开全文
  • 本产品为用户提供了多种可用来创建对话框窗体的控件。 (11) 强大的统计计算系统 您可以计算各种条件下的一个报表、分组、列、页面的总增长等各种统计值。本产品支持如下的聚合函数:总和、计数、平均值、最大值、...
  • 71套AlphaControls最新版本皮肤

    热门讨论 2012-01-04 17:53:04
    皮肤支持所有常见Windows对话框和消息 内置PNG格式支持,TsAlphaImageList组件非常方便工作 最简单,功能强大皮肤引擎,支持 内部和外部皮肤 ,一个控制类型可以在某些类型皮肤。 所有图纸(除模式)...
  • 50套AlphaControls最新版本皮肤

    热门讨论 2011-03-17 10:45:33
    皮肤支持所有常见Windows对话框和消息 内置PNG格式支持,TsAlphaImageList组件非常方便工作 最简单,功能强大皮肤引擎,支持 内部和外部皮肤 ,一个控制类型可以在某些类型皮肤。 所有图纸(除模式)...
  • Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单...
  • 本产品为用户提供了多种可用来创建对话框窗体的控件。 (11) 强大的统计计算系统 您可以计算各种条件下的一个报表、分组、列、页面的总增长等各种统计值。本产品支持如下的聚合函数:总和、计数、平均值、最大值、...
  • 本产品为用户提供了多种可用来创建对话框窗体的控件。 (11) 强大的统计计算系统 您可以计算各种条件下的一个报表、分组、列、页面的总增长等各种统计值。本产品支持如下的聚合函数:总和、计数、平均值、最大值、...
  • MFC程序开发参考大全 (全部代码).7z

    热门讨论 2009-11-04 09:45:13
    13.3.8 从动态链接库中导出对话框窗体对象 509 第14章 串口程序开发 515 14.1 计算机串口通信概述 516 14.1.1 串口通信的特点 516 14.1.2 串口通信的传输方式 516 14.1.3 通信方式 516 14.2 Windows ...
  • ASP.NET网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    总体来说,ASP.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而ASP.NET应用程序适应大型的网站开发、维护等。 4.2 代码隐藏页模型的解释过程 在ASP.NET的代码隐藏页模型中,一个完整的.aspx...
  • 5.1.2 面向对象编程语言的特点 88 5.2 类 89 5.2.1 类的概念 89 5.2.2 类的声明 89 5.2.3 类成员的访问 89 5.2.4 类成员的保护 90 5.3 对象 90 5.3.1 对象的声明和实例化 90 5.3.2 类与对象的关系...
  • 皮肤支持所有常见Windows对话框和消息 内置PNG格式支持,TsAlphaImageList组件非常方便工作 最简单,功能强大皮肤引擎,支持 内部和外部皮肤 ,一个控制类型可以在某些类型皮肤。 所有图纸(除模式)...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    C++自绘窗体的完整代码 注释非常详细,相信会帮助大家设计好自己的个性窗体。 C++_Primer_第4版_中文+英文 原书源码+课后习题答案。 CameraController(云界面) 实现了自绘控件,云端控制主要在CnComm类多线程串口...
  • 1.在打开文件或其它子窗体时,可能因为某些输入法冲突导致子窗体卡在下层,解决办法是按Ctrl+Alt+Del键打开任务管理器,即可见到子窗体。 2.支持Win7,Win8,Win10,强烈建议win10,更低版本不支持。 3.如果因...
  • javaSE代码实例

    2016-06-21 22:30:18
    1.1.3 Java的特点 4 1.2 安装开发工具包 5 1.2.1 下载JDK 5 1.2.2 安装JDK 6 1.2.3 安装后Java目录的解读 7 1.3 学会使用API 7 1.4 第一个Java程序 8 1.4.1 开发源代码 8 1.4.2 编译运行 9 1.5 ...
  • 软件界面设计工具_3款合集

    千次下载 热门讨论 2010-06-29 03:52:47
    此时,你可以选择打开窗体、打开网页、弹出对话框、修改属性值和关闭本身窗体等五种效果,这里我们选择“打开窗体”,然后在弹出的对话框里指向弹出窗体的文件。最后,点击“完成”按钮即可。 图八、使用UI...
  • TXT小说阅读器 V12.11.29

    2012-11-29 16:13:55
    TXT小说阅读器 使用说明 ... 部分操作快捷键 鼠标左键 【下一页】 鼠标右键 【上一页】 ...8 新增全屏模式 最大限度利用屏幕 方便更好阅读 ESC退出全屏模式 9 程序工具栏按钮功能作了小改动 方便阅读
  • 4.2.2 非模式对话框 159 4.2.3 属性页对话框 163 4.3 消息对话框 173 4.4 通用对话框 175 4.4.1 文件打开对话框 176 4.4.2 文件保存对话框 178 4.4.3 颜色对话框 179 4.4.4 字体对话框 181 4.4.5 查找对话框 183 ...
  • 4.2.2 非模式对话框 159 4.2.3 属性页对话框 163 4.3 消息对话框 173 4.4 通用对话框 175 4.4.1 文件打开对话框 176 4.4.2 文件保存对话框 178 4.4.3 颜色对话框 179 4.4.4 字体对话框 181 4.4.5 查找对话框 183 ...
  • 4.2.2 非模式对话框 159 4.2.3 属性页对话框 163 4.3 消息对话框 173 4.4 通用对话框 175 4.4.1 文件打开对话框 176 4.4.2 文件保存对话框 178 4.4.3 颜色对话框 179 4.4.4 字体对话框 181 4.4.5 查找对话框 183 ...
  • 第12天 01接口 02接口的特点 03接口练习 03解决接口与方法重名问题 04收银系统 Banana BuDaZhe CangKu ....... 第13天 01第12天_接口 第14天 01MDI窗体设计 02PictureBox实现图片切换 03PictureBox和timer练习 第...
  • Qt5开发及实例(完整版PDF)part1

    热门讨论 2015-03-06 13:35:41
    7.1.1 Graphics View的特点 247 7.1.2 Graphics View的三元素 248 7.1.3 GraphicsView的坐标系统 249 7.2 图形视图 251 7.2.1 飞舞的蝴蝶实例 252 7.2.2 地图浏览器实例 257 7.2.3 各种图元创建及实例 264 7.2.4 ...
  • Qt5开发及实例(完整版PDF).part2

    热门讨论 2015-03-06 13:37:18
    7.1.1 Graphics View的特点 247 7.1.2 Graphics View的三元素 248 7.1.3 GraphicsView的坐标系统 249 7.2 图形视图 251 7.2.1 飞舞的蝴蝶实例 252 7.2.2 地图浏览器实例 257 7.2.3 各种图元创建及实例 264 7.2.4 ...
  • asp.net知识库

    2015-06-18 08:45:45
    SQL Server 200530个最重要特点 同时安装sql2000和sql2005经验 类如何与界面绑定 在Asp.net中如何用SQLDMO来获取SQL Server中对象信息 使用Relations建立表之间关系并却使用PagedDataSource类对DataList进行...
  • 7.1.1 Graphics View的特点 247 7.1.2 Graphics View的三元素 248 7.1.3 GraphicsView的坐标系统 249 7.2 图形视图 251 7.2.1 飞舞的蝴蝶实例 252 7.2.2 地图浏览器实例 257 7.2.3 各种图元创建及实例 264 7.2.4 ...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

模式对话框窗体的特点