private void 前を変更するRToolStripMenuItem_Click(object sender, EventArgs e) { int rowidx = getFirstSelectedRowIndex(); if (rowidx == -1) { return; } Ground.ServerInfo si = siSheetGetRow(rowidx); string valTitle = si.title; for (; ;) { if (InputStringDlg.perform( "新しい名前を入力して下さい。", ref valTitle, 1000 ) == false ) { break; } try { if (valTitle == "") { throw new FailedOperation("名前が入力されていません。"); } for (int rr = 0; rr < siSheet.RowCount; rr++) { if (rr != rowidx && valTitle == siSheetGetRow(rr).title) { throw new FailedOperation("名前が重複しています。"); } } // 変更を反映 si.title = valTitle; siSheetSetRow(rowidx, si); Utils.adjustColumnsWidth(siSheet); break; } catch (Exception ex) { FailedOperation.caught(ex); } } }
public static bool perform(string prompt, ref string value, int lenmax = 1000) { using (InputStringDlg f = new InputStringDlg(prompt, value, lenmax)) { f.ShowDialog(); if (f.okPressed) { value = f.retValue; return(true); } } return(false); }