原文:
wpf中使用檔案瀏覽對話方塊的幾種方式
wpf本身並沒有為我們提供檔案瀏覽的控制項, 也不能直接使用forms中的控制項,而檔案瀏覽對話方塊又是我們最常用的控制項之一. 下面是我實現的方式
方式1: 使用win32控制項openfiledialog
? 1 23
4567
microsoft.win32.openfiledialog ofd =
new
microsoft.win32.openfiledialog();
ofd.defaultext =
".xml"
;
ofd.filter =
"xml file|*.xml"
;
if
(ofd.showdialog() ==
true
)
方式2: 使用forms中的openfiledialog控制項
wpf中是不能直接使用forms中的控制項的,否則會提示找不到forms名字控制項. 如果你仍然要用, 答案便是新增.net 引用reference
之後就可以像下面一樣正常使用forms中的控制項了?1
2345
6789
system.windows.forms.openfiledialog openfiledialog1 =
new
system.windows.forms.openfiledialog();
openfiledialog1.initialdirectory =
"c:\\"
;
openfiledialog1.filter =
"txt files (*.txt)|*.txt|all files (*.*)|*.*"
;
openfiledialog1.filterindex = 2;
openfiledialog1.restoredirectory =
true
;
if
(openfiledialog1.showdialog() == system.windows.forms.dialogresult.ok)
類似的有資料夾瀏覽對話方塊:?1
2345
6system.windows.forms.folderbrowserdialog folderbrowserdialog =
new
system.windows.forms.folderbrowserdialog();
system.windows.forms.dialogresult result = folderbrowserdialog.showdialog();
if
(result == system.windows.forms.dialogresult.ok)
方式三: 使用win32 api
bool winapi getopenfilename( __inout lpopenfilename lpofn)使用這種方式, 你需要自己實現lpopenfilename結構和對getopenfilename方法就行封裝:?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
[structlayout(layoutkind.sequential, charset = charset.auto)]
public
class
openfilename
public
class
libwrap
之後的工作就是例項化、初始化和方法呼叫了:?1
2345
6789
1011
1213
1415
openfilename ofn =
new
openfilename();
ofn.structsize = marshal.sizeof(ofn);
ofn.filter =
"project files\0*.xml"
;
ofn.file =
new
string
(
new
char
[256]);
ofn.maxfile = ofn.file.length;
ofn.filetitle =
new
string
(
new
char
[64]);
ofn.maxfiletitle = ofn.filetitle.length;
ofn.initialdir =
"c:\\"
;
ofn.title =
"open project"
;
ofn.defext =
"xml"
;
ofn.structsize = marshal.sizeof(ofn);
if
(libwrap.getopenfilename(ofn))
方式四: 自己寫控制項(王道)或者使用第三方控制項
在WPF中使用資料夾選擇對話方塊
開發中有時會想實現 選擇某個資料夾 的效果 在wpf中,使用microsoft.win32.openfiledialog只能選擇檔案,folderbrowserdialog只能用樹型的方式選擇資料夾,很不好用.終於找到乙個辦法,使用windows api code pack 在vs裡開啟packag...
對話方塊中使用CHtmlEditCtrl
最近由於專案需要,需要在對話方塊中使用chtmleditctrl控制項,網上大部分的 都是直接使用chtmleditview的,很少有chtmleditctrl在對話方塊中使用的示例。網上有乙個 動態表情的 中存在bug,因此給出了可以編譯執行的 1 由於chtmleditctrl的建構函式被宣告為...
瀏覽資料夾對話方塊的使用
新建乙個基於對話方塊的mfc應用程式browsefolderdialogtest,刪除對話方塊中原有控制項。新增乙個按鈕 顯示資料夾選擇對話方塊 新增按鈕的單擊事件函式 如下 void cbrowsefolderdialogtestdlg onbnclickedbutton1 memset brow...