2
私はWindowsフォームアプリケーションで作業しています。テキストボックスのインデックスが保存され、このコードのリストボックスのように示すことができる。ListBoxとTextBoxにJSONファイルをロードするC#
また、私は次のコードで(リストボックスの項目をクリックすることによって)を編集するには、再度テキストボックスにオブジェクトを収集:
private void getParams(FunctionData data)
{
blabla1.Text = data.blabla1name;
blabla2.Text = data.blabla2name;
functionNameBox.Text = data.functionName;
return;
}
private void functionListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in funcParamList)
{
if (obj.functionName == functionListBox.SelectedItem.ToString())
{
getParams(obj);
}
}
}
て保存それらをJSONとしてファイルに貼り付けます:
private void saveFileButton_Click(object sender, EventArgs e)
{
fileName = fileNameBox.Text;
string jsonFunc = JsonConvert.SerializeObject(funcParamList);
System.IO.File.WriteAllText(@"<blablapath>\" + fileName + ".txt", jsonFunc);
}
JSONファイルにListBoxで表示するために使用できる 'functionName'オブジェクトがあります。
私の質問は次のとおりです:このファイルをロードするにはどうすればネイティブ読み込み/ファイルを開くダイアログボックスを開き、ListBoxのオブジェクトを表示して再度編集できますか?私は次のコードでそれを作るために試みたが、それは動作しませんどのように
そして、ここで:
private void loadFileButton_Click(object sender, EventArgs e)
{
OpenFileDialog loadFileDialog = new OpenFileDialog();
...
if (loadFileDialog.ShowDialog() == DialogResult.OK)
{
string jsonFileName = loadFileDialog.FileName;
string jsonFile = File.ReadAllText(jsonFileName);
dynamic loadedFile = JsonConvert.DeserializeObject(jsonFile);
//if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in loadedFile)
{
if (obj.functionName != null)
{
functionListBox.Items.Add(obj.functionName);
getParams(obj); // I get exception here
funcParamList.Add(loadedFile);
functionListBox.Refresh();
}
}
}
OpenFileDialogがダイアログの選択肢です。変更するたびにファイルを書き直す必要があります。 – Mafii
さて、私はそれを使って作業しましたが、私は既にOpenFileDialogでそれをやろうとしましたが、できませんでした。私はどうすればいいのですか? –
https://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog(v=vs.110).aspx下部にスクロールすると、 – Mafii