這是我制作的代碼
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
Nullable<bool> result = openFileDialog.ShowDialog();
openFileDialog.Filter = "Lua scripts (*.lua)|*.lua|Txt Scripts (*.txt*)|*.txt";
openFileDialog.Title = "Save Scripts";
if (result == true)
{
TextEditor.Text = File.ReadAllText(openFileDialog.FileName);
}
uj5u.com熱心網友回復:
- 你在你的代碼集
.ShowDialog()之前openFileDialog.Filter = "Lua scripts (*.lua)|*.lua|Txt Scripts (*.txt*)|*.txt";打電話。 - 另外,不要
System.Windows.Forms.Application.StartupPath在 WPF 中使用,AppDomain.CurrentDomain.BaseDirectory而是使用- 或只是Environment.CurrentDirectory. - IMO,您應該始終
"All files (*.*)"為具有非標準檔案擴展名的用戶提供過濾選項。 - 您可以簡化
if (result == true)為if (result ?? false). - 請注意,
OpenFileDialog不能保證檔案OpenFileDialog.FileName實際存在或有效,您需要自己執行此操作(例如if( File.Exists(...) ) { ... })。
像這樣重新排列你的行:
using Microsoft.Win32;
const String FILTER_LUA = "Lua scripts (*.lua)|*.lua";
const String FILTER_TXT = "Text files (*.txt)|*.txt";
const String FILTER_ALL = "All files (*.*)|*";
// ...
OpenFileDialog ofd = new OpenFileDialog()
{
// InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
InitialDirectory = Environment.CurrentDirectory,
Filter = FILTER_LUA "|" FILTER_TXT "|" FILTER_ALL,
Title = "Open script file"
};
Boolean? result = ofd.ShowDialog();
if( ( result ?? false ) && File.Exists( ofd.FileName ) )
{
String fileText = File.ReadAllText( ofd.FileName );
this.TextEditor.Text = fileText;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521338.html
標籤:C#wpf
上一篇:任務完成時禁用按鈕
下一篇:GitVersion:發布單個檔案時缺少著作權屬性,其中*GenerateAssemblyInfo*設定為*false*
