通用对话框学习
- 格式:doc
- 大小:115.00 KB
- 文档页数:4
认识windows7的窗⼝和对话框认识windows7的窗⼝和对话框⼀、windows7窗⼝的构成及操作1、窗⼝构成在windows7下,程序都在各⾃的窗⼝中运⾏,掌握窗⼝的构成和操作⽅法是熟练使⽤计算机的基础。
应⽤程序的窗⼝虽然千差万别,但所有窗⼝都有着相同的结构并遵循着统⼀的操作规则。
每个程序运⾏后都在屏幕上占⽤⼀块矩形区域,这个区域称作应⽤程序窗⼝。
下图是记事本程序和画图程序在运⾏时的窗⼝。
各部分的结构如图所⽰,它们代表了两种典型的窗⼝。
1)标题栏窗⼝最上⽅的横条称作标题栏,标题栏上⼀般标着当前程序的名称和当前正在处理的⽂档的名称。
2)窗⼝最⼤化、窗⼝最⼩化和窗⼝关闭图标标题栏最右端是三个控制窗⼝的图标,这三个图标分别⽤于窗⼝的最⼤化、最⼩化和关闭。
3)窗⼝控制图标位于窗⼝左上⾓,通过该图标我们可以通过键盘来控制窗⼝的⼤⼩和移动,现很少使⽤。
按Alt+空格键可激活该图标下的菜单。
窗⼝控制菜单如下图所⽰。
激活菜单后可以通过键盘上的光标移动键(箭头键)选菜单项,回车键执⾏菜单命令,从⽽实现通过键盘完成窗⼝操作。
4)⽔平菜单栏/选项卡标签窗⼝标题栏下⽅的⼀⾏⽂字,称作窗⼝的⽔平菜单栏,相隔的每组⽂字都代表⼀组操作命令,也称作菜单项,点击某菜单项后可打开下级菜单,下级菜单也称作下拉菜单,参见下图3中的红框区域。
⽐如我们点击“⽂件”菜单项,则出现与“⽂件”操作相关的下拉菜单,下拉菜单中有⼀组与⽂件相关的操作命令。
Windows7有些程序将菜单栏改成了选项卡标签,虽然也可称作菜单,但选中后并不出现下拉菜单⽽是进⾏功能区的切换。
功能区分类集中存放了程序⽤到的⼤部分⼯具。
这种功能区实际是将菜单命令⽤图形来表⽰了。
下图就展⽰了画图程序的两种功能区。
展⽰了画图程序在选取不同“标签”时窗⼝功能区的变化。
左图是选中“主页”标签后的功能区,右图是选中“查看”标签后显⽰的功能区。
5)窗⼝⼯作区窗⼝的主要区域称作窗⼝⼯作区,不同的程序窗⼝⼯作区显⽰的内容不同,记事本程序窗⼝⼯作区⽤于输⼊⽂字,画图程序则⽤来绘制图形。
[PyQt⼊门教程]PyQt5基本控件使⽤:消息弹出、⽤户输⼊、⽂件⽬录选择对话框本⽂主要介绍PyQt界⾯实现中常⽤的消息弹出对话框、提供⽤户输⼊的输⼊框、打开⽂件获取⽂件/⽬录路径的⽂件对话框。
学习这三种控件前,先想⼀下它们使⽤的主要场景:1、消息弹出对话框。
程序遇到问题需要退出需要弹出错误提⽰框、程序执⾏可能造成的风险需要弹出警告窗⼝提⽰⽤户是否进⼀步执⾏等等。
2、⽤户输⼊框。
⽐如常见的让⽤户选择执⾏的程序分⽀、yes/no等等。
3、⽂件对话框。
获取本地⽂件或者⽂件夹的完整路径甚⾄是直接打开⽂件显⽰⽂件内容。
本⽂主要针对这三种控件的主要场景进⾏介绍。
1、QMessageBox:弹出消息对话框控件QMessageBox是⼀种通⽤的弹出式对话框,⽤于显⽰消息,允许⽤户通过单击不同的标准按钮对消息进⾏反馈。
弹出式对话框有很多类型,如提⽰、警告、错误、询问、关于等对话框。
这些不同类型的QMessageBox对话框只是显⽰时图标不同,其他功能⼀样。
QMessageBox类中常⽤⽅法information(QWdiget parent,title,text,buttons,defaultButton):弹出消息对话框。
question(QWidget parent,title,text,buttons,defaultButton):弹出问答对话框warning(QWidget parent,title,text,buttons,defaultButton):弹出警告对话框critical(QWidget parent,title,text,buttons,defaultButton):弹出严重错误对话框about(QWidget parent,title,text):弹出关于对话参数解释如下:parent:指定的⽗窗⼝控件。
title:表⽰对话框标题。
text:表⽰对话框⽂本。
buttons:表⽰多个标准按钮,默认为ok按钮。
对话框中常见的几种组成元素对话框中常见的几种组成元素对话框是我们在使用电脑、手机等设备时经常遇到的一种界面形式。
它能够方便地与人进行交流和操作,常见于软件、应用程序、网页等。
在对话框中,有几种常见的组成元素,包括标题栏、菜单栏、工具栏、按钮、输入框、文本框、滚动条等。
下面我们将详细介绍这几种组成元素。
首先是标题栏。
标题栏位于对话框的顶部,通常包含了对话框的名称和一些最基本的操作按钮,比如最小化、最大化和关闭按钮。
通过标题栏,我们可以方便地识别和切换不同的对话框,同时也能快速进行窗口的最小化、最大化和关闭操作。
其次是菜单栏。
菜单栏通常位于标题栏下方,包含了一系列的菜单和子菜单。
通过菜单栏,我们可以找到各种功能和操作,比如文件、编辑、视图、工具等。
点击菜单栏上的选项,可以打开相应的功能和界面,用于对对话框进行更详细的设置和操作。
接下来是工具栏。
工具栏通常位于对话框的上方或下方,包含了一些常用的工具按钮。
这些按钮能够快速执行一些常用的操作,比如新建、打开、保存、剪切、复制、粘贴等。
通过工具栏,我们可以方便地进行常用操作,提高工作效率。
然后是按钮。
按钮通常位于对话框的中央或底部,用于触发某些特定的操作。
按钮通常是一个矩形区域,上面标有一些文字或图标,通过点击按钮,可以执行相应的操作,比如确定、取消、下一步、上一步等。
按钮的样式和功能可以根据对话框的不同而有所变化。
接下来是输入框。
输入框通常用于接受用户的输入内容,比如用户名、密码、搜索关键词等。
输入框通常是一个矩形区域,用户可以在其中输入所需的内容。
输入框通常具有一定的限制条件,比如最大长度、格式要求等,以确保输入的数据符合要求。
最后是文本框。
文本框通常用于显示一些信息或文本内容,比如提示信息、操作结果、错误信息等。
文本框通常是一个矩形区域,用于展示较长的文本内容,用户可以通过滚动条来滚动文本框中的内容,以便查看全部内容。
文本框通常具有只读或可编辑的属性,用于不同的展示和交互需求。
Qt5种标准对话框及使⽤⽅法详解(Dialog )引⽤⾃: (侵删);QT 为应⽤程序设计提供了⼀些常⽤的标准对话框,如打开⽂件对话框、选择颜⾊对话框、信息提⽰和确认选择对话框、标准输⼊对话框等,⽤户⽆需再⾃⼰设计这些常⽤的对话框,这样可以减少程序设计⼯作量。
在前⾯⼏章的实例中,或多或少地⽤到了其中的⼀些对话框。
Qt 预定义的各标准对话框的类,及其主要静态函数的功能见表 1(由于输⼊参数⼀般较多,省略了函数的输⼊参数,只列出了函数的返回值类型)。
表 1 Qt 预定义标准对话框对话框常⽤静态函数名称函数功能QFileDialog⽂件对话框QString getOpenFileName() QStringList getOpenFileNames()QString getSaveFileName() QString getExistingDirectory()QUrl getOpenFileUrl()选择打开⼀个⽂件 选择打开多个⽂件 选择保存⼀个⽂件 选择⼀个⼰有的⽬录选择打幵⼀个⽂件,可选择远程⽹络⽂件QcolorDialog 颜⾊对话框QColor getColor()选择颜⾊QFontDialog 字体对话框QFont getFont()选择字体QinputDialog 输⼊对话框QString getText() int getlnt() double getDouble()QString getltem()QString getMultiLineText()输⼊单⾏⽂字 输⼊整数 输⼊浮点数从⼀个下拉列表框中选择输⼊ 输⼊多⾏字符串QMessageBox 消息框StandardButton information() StandardButton question()StandardButton waming() StandardButton critical() void about()void aboutQt()信息提⽰对话框 询问并获取是否确认的对话框 警告信息提⽰对话框 错误信息提⽰对话框 设置⾃定义信息的关于对话框 关于Qt 的对话框实例 samp6_1 演⽰使⽤这些对话框,程序运⾏界⾯如图 2 所⽰。
第五章对话框对话框是一种用户界面,它的主要功能是输出信息和接收用户的输入。
对话框与控件是密不可分的,在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互。
一个典型的对话框例子是选择了File-Open命令后弹出的文件对话框。
5.1对话框和控件的基本概念5.1.1对话框的基本概念对话框(Dialog)实际上是一个窗口。
在MFC中,对话框的功能被封装在了CDialog类中,CDialog类是CWnd类的派生类。
对话框分为模态对话框和非模态对话框两种。
大部分读者都会有这样的经历,当你通过File-Open命令打开一个文件对话框后,再用鼠标去选择菜单将只会发出嘟嘟声,这是因为文件对话框是一个模态对话框。
模态对话框垄断了用户的输入,当一个模态对话框打开时,用户只能与该对话框进行交互,而其它用户界面对象收不到输入信息。
我们平时所遇到的大部分对话框都是模态对话框。
非模态对话框的典型例子是Windows95提供的写字板程序中的搜索对话框,搜索对话框不垄断用户的输入,打开搜索对话框后,仍可与其它用户界面对象进行交互,用户可以一边搜索,一边修改文章,这样就大大方便了使用。
本节主要介绍模态对话框,在第四节将介绍非模态对话框。
从MFC编程的角度来看,一个对话框由两部分组成:1.对话框模板资源。
对话框模板用于指定对话框的控件及其分布,Windows根据对话框模板来创建并显示对话框。
2.对话框类。
对话框类用来实现对话框的功能,由于对话框行使的功能各不相同,因此一般需要从CDialog类派生一个新类,以完成特定的功能。
5.1.2控件的基本概念图5.1对话框中的控件控件(Control)是独立的小部件,在对话框与用户的交互过程中,控件担任着主要角色。
控件的种类较多,图5.1显示了对话框中的一些基本的控件。
MFC的控件类封装了控件的功能,表5.1介绍了一些常用的控件及其对应的控件类。
表5.1控件实际上都是窗口,所有的控件类都是CWnd类的派生类。
1. Dialog box for confirming processing step (CONFIRM, POPUP)CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'EXPORTINGtextline1 = text-006titel = text-005IMPORTINGanswer = t_code.CHECK t_code = 'J'.2. Dialog box for confirming processing step: With diagnosis text CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE' EXPORTINGtitel = text-100diagnosetext1 = textdiagnosetext2 = text-102textline1 = text-103defaultoption = 'Y'IMPORTINGanswer = answer.IF answer = 'A' OR answer = 'N'.ELSEIF answer = 'J'.ENDIF.3. Dialog box for choosing from a list without diagnosis(提供選擇列表供用戶選擇) * 填充選項列表:selectlist-varoption = 'A. Wal Mart'.APPEND selectlist.selectlist-varoption = 'B. COLE'.APPEND selectlist.selectlist-varoption = 'C. Private lable'.APPEND selectlist.* 顯示列表dialog供用戶選擇CALL FUNCTION 'POPUP_TO_DECIDE_LIST'EXPORTINGmark_flag = 'X'mark_max = 0textline1 = '請選擇執行標准'titel = '請選擇執行標准:'TABLESt_spopli = selectlistEXCEPTIONSnot_enough_answers = 1too_much_answers = 2too_much_marks = 3OTHERS = 4.IF sy-subrc = 0.ENDIF.4.上載文件(自帶路徑選擇對話框的上載函數UPLOAD,下載DOWNLOAD)PARAMETER: P_FILE LIKE RLGRAP-FILENAME.CALL FUNCTION 'WS_UPLOAD'EXPORTINGFILENAME = P_FILEFILETYPE = 'ASC'TABLESDATA_TAB = IN_PRO.5.選擇屏幕的值選擇對話框(按F4出現)DA TA: BEGIN OF fields OCCURS 3.INCLUDE STRUCTURE help_value.DA TA: END OF fields.DA TA: BEGIN OF valuetab OCCURS 3,atwrt LIKE cawn-atwrt,atwtb LIKE cawnt-atwtb,END OF valuetab.SELECT-OPTIONS: p_cost FOR cawn-atwrt.AT SELECTION-SCREEN ON V ALUE-REQUEST FOR p_cost-low. PERFORM get_value .CALL FUNCTION 'HELP_V ALUES_GET_WITH_TABLE' EXPORTINGtitle_in_values_list = '成本分類﹕'titel = '請選擇成本分類:' IMPORTINGselect_value = p_cost-lowTABLESfields = fieldsvaluetab = valuetab.FORM get_value .CLEAR fields. REFRESH fields.CLEAR valuetab. REFRESH valuetab.fields-tabname = 'CAWN'.fields-fieldname = 'ATWRT'.fields-selectflag = 'X'.APPEND fields. CLEAR fields.SELECT b~atwrt c~atwtbINTO CORRESPONDING FIELDS OF TABLE valuetabFROM cabn AS a INNER JOIN cawn AS b ONa~atinn = b~atinn INNER JOIN cawnt AS cON b~atinn = c~atinn AND b~atzhl = c~atzhlWHERE a~atnam = 'ADDITIONAL_MATERIAL_CHAR'AND c~spras = 'M'.ENDFORM. " get_value6.選擇屏幕日期選擇對話框(F4)DATA: week_s LIKE sy-datum,week_e LIKE sy-datum.PARAMETER: s_week LIKE scal-week OBLIGATORY.AT SELECTION-SCREEN ON V ALUE-REQUEST FOR s_week. PERFORM get_week.FORM get_week.DATA: sel_week LIKE scal-week.CLEAR: week_s,week_e.CALL FUNCTION 'F4_DATE'IMPORTINGselect_week = sel_weekselect_week_begin = week_sselect_week_end = week_e EXCEPTIONScalendar_buffer_not_loadable = 1date_after_range = 2date_before_range = 3date_invalid = 4factory_calendar_not_found = 5holiday_calendar_not_found = 6parameter_conflict = 7OTHERS = 8.IF sy-subrc = 0.s_week = sel_week.ENDIF.ENDFORM. " get_week7.信息List提示框:DA TA w_display1(70) TYPE c.DA TA w_display2(70) TYPE c.CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'EXPORTINGtitel = '還有尚未確認的單據:'textline1 = w_display1textline2 = w_display2start_column = 10start_row = 6.8. Dialog Box for the Display of a Text List (Texts in a Table)顯示文本ListDATA: t_line LIKE TABLE OF tline WITH HEADER LINE.CALL FUNCTION 'COPO_POPUP_TO_DISPLAY_TEXTLIST' EXPORTINGtask = 'DISPLAY'titel = text-004TABLEStext_table = t_line.9.文件路徑選擇對話框DATA: t_path LIKE rlgrap-filename. "文件路徑**取文件路徑PARAMETERS: p_file LIKE rlgrap-filename .AT SELECTION-SCREEN ON V ALUE-REQUEST FOR p_file. PERFORM get_filename.FORM get_filename.CALL FUNCTION 'KD_GET_FILENAME_ON_F4'EXPORTINGmask = '*.XLS'static = 'X'CHANGINGfile_name = P_FILEEXCEPTIONSmask_too_long = 1.IF sy-subrc <> 0.MESSAGE e999 WITH '路徑不正確或選擇文件錯誤'. ENDIF.ENDFORM.10.調用方法產生文件路徑對話框DATA: p_file LIKE rlgrap-filename.FIELD-SYMBOLS <fs> TYPE file_table.FIELD-SYMBOLS <f>.DATA: f_table TYPE filetable.DATA: rc TYPE i.DATA: user_action TYPE i.DATA: l_index TYPE i.CALL METHOD cl_gui_frontend_services=>file_open_dialog EXPORTINGwindow_title = '請選擇要匯入的文件'file_filter = 'Excel files (*.XLS)|*.XLS'initial_directory = 'D:\'CHANGINGfile_table = f_tablerc = rcuser_action = user_actionEXCEPTIONScntl_error = 1file_open_dialog_failed = 2error_no_gui = 3.CALL METHOD cl_gui_cfw=>flushEXCEPTIONS cntl_system_error = 1cntl_error = 2.CLEAR p_file.READ TABLE f_table ASSIGNING <fs> INDEX 1.IF sy-subrc = 0.p_file = <fs>-filename.ENDIF.11.提示信息dialogCALL FUNCTION 'POPUP_TO_INFORM'EXPORTINGtitel = '匯入文件說明'txt1 = text-004txt2 = text-005txt3 = text-006txt4 = text-007.12.程序運行時狀態欄提示call function 'SAPGUI_PROGRESS_INDICATOR'exportingpercentage = 0text = t_text. “t_text:數據處理中13. Dialog box for displaying a text with parameters(例程:RGUREP01)INITIALIZATION.PERFORM README_FIRST.FORM README_FIRST.CLEAR SA VE_TCODE.MOVE SY-TCODE TO SA VE_TCODE.CLEAR SY-TCODE.IF SY-BATCH EQ SPACE.IF SA VE_TCODE EQ 'SE38'.CALL FUNCTION 'POPUP_DISPLAY_TEXT_WITH_PARAMS' EXPORTINGLANGUAGE = SY-LANGUPOPUP_TITLE = TEXT-400* START_COLUMN = 10* START_ROW = 3TEXT_OBJECT = 'GLX_TABLE_REPAIR'IMPORTINGCANCELLED = ANSWERTABLESPARAMETERS = TEXT_PARAMS EXCEPTIONSERROR_IN_TEXT = 1TEXT_NOT_FOUND = 2OTHERS = 3.IF ANSWER NE SPACE.CLEAR ANSWER.LEA VE TO TRANSACTION SA VE_TCODE.ELSE.* EXIT.CLEAR SY-TCODE.ENDIF.ENDIF.ENDIF.ENDFORM.14.文件路徑getCALL FUNCTION 'WS_FILENAME_GET' EXPORTINGDEF_FILENAME = FILENAMEDEF_PATH = '\'MASK = ',*.*,*.csv;*.txt.'MODE = 'O'TITLE = TEXTDAW* 'Dateiauswahl'(flw) IMPORTINGFILENAME = FILENAME EXCEPTIONSINV_WINSYS = 01NO_BA TCH = 02SELECTION_CANCEL = 03SELECTION_ERROR = 04.IF SY-SUBRC <> 0. ENDIF. " ok。
第六章对话框的设计6.1 预定义对话框在应用程序中添加对话框最容易的方法是使用预定义对话框,因为不必考虑设计、装载或者显示对话框方面的问题。
然而,其控件在外观上要受到限制。
预定义的对话框总是模式的。
表6.1中列出了在Visual Basic应用程序中添加预定义对话框时所使用的函数。
6.1.1 输入框InputBox函数用来产生要求输入数据的输入框;在输入框中显示提示文本、文本框和按钮;等待用户的输入或按下按钮,并返回用户在文本框中输入的内容。
如图6.1所示的输入框就是使用InputBox函数所产生的,用来提示用户输入要在窗体上显示的内容。
生成该输入框的代码如下所示:Word=InputBox(“请输入要在窗体中显示的内容:”、“输入”)只需再做一点工作就可以将上面的文本输入框使用到程序中了。
实例6.1使用输入框。
在窗体中放置一个按钮控件,并设置它的Caption属性的值为“输入要显示的内容”,双击这个按钮控件打开它的代码窗口,编写如下代码:个参数是指输入框中的用户提示字符串,第二个参数是指输入框的标题:InputBox(prompt[,title][,default][,spos][,ypos][,helpfile,context])InputBox函数语法中的各参数的含义如表6.2所示。
如果同时提供了Helpfile与Context,用户可以按F1键来查看与Context相应的帮助主题。
如果用户单击输入框中的【确定】按钮,则InputBox函数返回文本框中的内容。
如果用户单击【取消】按钮,则此函数返回一个长度为零的字符串(“”)。
如果要省略某些位置参数,则必须加入相应的逗号分界符。
例如,要指定实例6.1中输入框的位置,而缺省输入框的初始值,则语句如下:word =InputBox(“请输入要在窗体中显示的内容:”,“输入”,200,200)。
6.1.2 消息框MsgBox函数用来产生一个消息框。
html页⾯的简单对话框(alert,confirm,prompt)html页⾯简单的三种对话框例如以下:1、alert(),最简单的提⽰框:alert("你好!");2、confirm(),有确认和取消两个button:if(confirm("还有继续吗?")){alert("继续");}else{alert("再见");}3、prompt()。
能够输⼊信息:var name = prompt("你的名字是:");alert("你好。
" + name);完整的html代码:<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="content-type" content="text/html; charset=UTF-8"><title>对话框測试</title><script>function confirmDialog(){if(confirm("还要继续吗?")){alert("继续");}else{alert("再见");}}function promptDialog(){var name = prompt("你的名字是:");alert("你好。
" + name);}</script></head><body>对话框測试:<div style="margin-top:50px"><input type="button" value="alert" onclick="alert('你好!')" /><input type="button" value="confirm" onclick="confirmDialog()" /><input type="button" value="prompt" onclick="promptDialog()" /></div></body></html>(原创⽂章。
公用对话框CommonDialog的用法!公用对话框。
CommonDialogCommonDialog 控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。
通过运行 Windows 帮助引擎控件还能显示帮助。
一、添加CommonDialog 控件CommonDialog 控件是一种ActiveX控件,一般情况下,启动VB后,在工具箱中没有公用对话框控件。
要使用对话框控件,首先要在工具箱中添加公用对话框控件,步骤如下:1)“工程”----->“部件”:2)在“部件”对话框中选择“控件”选项卡,在控件列表框中选择“Microsoft common Dialog control 6.0"3)单击“确定”,公用对话框就被添加到工具箱中,如下图所示:二、CommonDialog 控件提供的六种标准对话框1、显示文件对话框包括“打开”和“另存”对话框。
2、使用“颜色”对话框3、使用“字体”对话框4、使用“打印”对话框5、使用“帮助”对话框方法所显示的对话框ShowOpen 显示“打开”对话框ShowSave 显示“另存为”对话框ShowColor 显示“颜色”对话框ShowFont 显示“字体”对话框ShowPrinter 显示“打印”或“打印选项”对话框ShowHelp 调用 Windows 帮助引擎下面将分别进行介绍。
三、显示文件对话框通过使用 CommonDialog 控件的 ShowOpen 和 ShowSave 方法可显示“打开”和“另存为”对话框。
两个对话框均可用以指定驱动器,目录,文件扩展名和文件名。
除对话的标题不同外,另存为对话外观上与打开对话相似。
(一)、显示“打开”和“另存为”对话框的步骤:1、在窗体上建立一个CommonDialog 控件:2、在窗体上选择CommonDialog 控件后单击右键:3、选择“属性”,出现“属性页”:其中:1)、对话框标题:是“打开”和“另存为”对话框的标题。
mfc对话框使用
MFC对话框是Windows编程中常用的GUI界面,它提供了一种方便快捷的方式来创建和
管理用户界面。
使用MFC对话框,可以轻松地添加控件、处理事件和响应用户操作。
创建MFC对话框的步骤很简单。
打开Visual Studio并创建一个新的MFC应用程序。
然后,选择“对话框”作为应用程序类型,并选择所需的对话框模板。
接下来,可以在对话框中添
加所需的控件,例如按钮、文本框、列表框等。
可以使用MFC框架提供的事件处理程序
来响应用户操作。
MFC对话框的优点在于它的易用性和灵活性。
通过使用MFC对话框,可以快速创建一个
功能完善的用户界面,同时还可以轻松地对其进行自定义和扩展。
MFC框架还提供了许
多有用的功能,例如自动布局、对话框管理和资源管理等。
MFC对话框是一种非常有用的工具,可以帮助Windows程序员快速创建和管理用户界面。
无论是初学者还是经验丰富的开发人员,都可以从MFC对话框的使用中受益。
通用对话框学习一:OpenFileDialog
(2011-12-21 17:19:51)
转载▼
标签:
it
分类: vs.net
在进行WinForm程序的开发时,经常会有提示用户输入特定的信息,但是对于常见的任务,例
如,打开和保存文件,可以使用预先编写好的对话框类,而不是定制的对话框。
对话框是一个在另一个窗口中显示的窗口,在继续执行程序流之前,可以让
用户在对话框中输入一些数据。通用对话框常常用于从用户处获取一般性的信
息,大多数应用程序都需要它,例如输入文件名,它是Windows操作系统的一部
分。除了PrintPreviewDialog外,其他的对话框都派生子抽象基类
CommonDialog。CommonDialog定义了一些方法和事件,他们对于所有的对话框
类来说都是通用的。
通用方法:
Reset
在派生类中被重写时,将通用对话框的属性重置为默认值。
ShowDialog 已重载。 运行通用对话框。
通用的事件:
HelpRequest
当用户单击通用对话框中的“帮助”按钮时发生。
CommonDialog类是一个抽象类,它有一个抽象的方法,
abstract bool RunDialog ,因此它的继承类均需要实现这个方法。这次主要学
习OpenFileDialog类的使用。
OpenFileDialog类是一个sealed类,因此只能实例化。MSDN解释“提示
用户打开文件。无法继承此类。”使用此类课检查某个文件是否存在并打开该文
件。ShowReadOnly属性确定是否在对话框中显示只读复选框,ReadOnlyChecked
属性指示是否选中只读复选框。
它有很多的属性,下面通过一个例子来了解一些属性的使用。
新建一个WinForm程序,有两个控件,button控件和一个textbox控件,
事先在D盘建一个文本文档Test.txt,在里面任意添加内容。界面如下:
对于button的点击事件,编写如下的代码:
ODF的使用
private void button1_Click(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "d:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Clear();
using(StreamReader read = new StreamReader(openFileDialog1.FileName,Encoding.
Default))
{
string line;
while ((line=read.ReadLine())!=null)
{
textBox1.AppendText(line);
}
}
}
}
复制代码
打开的文件对话框的一些属性时可以进行设置的,比如打开什么路径下的
文件,可以对文件夹中的文件进行筛选。
openFileDialog1.Title="选择文件";Title属性设置打开对话框的名字,
默认是“打开”,但是i这个名字并不是最好的。
openFileDialog1.InitialDirectory = "c:\\";InitialDirectory属性,
设置打开的默认目录,默认情况在C盘。这里是D盘。
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files
(*.*)|*.*";Filter属性文件过滤器,是对文件进行筛选。这里的话可以看出是
对*.txt和*.*进行选择。过滤器前后不允许有空白,如果写成 txt files
(*.txt)|*.txt |All files (*.*)|*.*,则会出现异常。
openFileDialog1.FilterIndex = 1;表示默认筛选情况。
openFileDialog1.FileName,FileName属性用来获得打开文件的文件名。
获取或设置一个包含在文件对话框中选定的文件名的字符串。
下面重点介绍一下,OFD的showDialog()方法。原型如下:
public DialogResult ShowDialog ()
它显示一个打开文件对话框。返回值是一个枚举类型DialogResult。指
定标识符以指示对话框的返回值。对于OFD对话框,如果用户在对话框中单击
“确定”,则为DialogResult.OK,否则为DialogResult.Cancel。
前面说到,ShowReadOnly属性确定是否在对话框中显示只读复选框,
ReadOnlyChecked属性指示是否选中只读复选框。加一句
openFileDialog1.ShowReadOnly = true;这是什么效果呢,如下:
总结:使用OFD,首先要创建一个OFD的实例,设置一下这个
实例的属性,包括默认的打开路径,文件的筛选,然后再调用
ShowDialog()方法,在根据用户的选择来处理相关操作。
自己对于OFD的一个另类的理解:一个OFD对话框,终极的目标就是为
了获得文件的名字,因为有名字就可以进行访问了!
PS:文件过滤器的文本字符串的构成
每一部分用“|”来个开,而每一个部分又可以分成2块,中间依旧用“|”来隔开。
每一部分的2个块中,第一个快表示的是在下拉列表中显示的文本,第二个块表示
是对文件进行的筛选。例如:
TxT文件|*.txt 则下拉中出现“TxT文件”,而里面是筛选后的"txt"文件。
DialogResult枚举:
它定义了Abort,Cancel,Ignore,No,None,OK,Retry,Yes等。
None是默认值,只要用户没有关闭这个对话框,就设置这个值。根据单击的情况来
返回相应的结果,对于OFD只有OK和Cancel。
FileNames属性之补充:
前面是打开一个文件的当Multiselect属性设置为true时,可以选中多个文件,
则FileNames属性返回的是一个string[]。包含了所选中的文件的名字。