private void button_OK_Click(object sender, System.EventArgs e) { string strTarget = ""; string strStyle = ""; if (radioButton_skip.Checked == true) { strStyle = "skip"; } if (radioButton_append.Checked == true) { if (this.textBox_appendDbName.Text == "") { MessageBox.Show(this, "在选择了追加方式的情况下,必须选择目标库..."); return; } strTarget = this.textBox_appendDbName.Text; strStyle = "append"; } if (radioButton_overwrite.Checked == true) { if (this.textBox_overwriteDbName.Text == "") { MessageBox.Show(this, "在选择了覆盖方式的情况下,必须选择目标库..."); return; } strTarget = this.textBox_overwriteDbName.Text; strStyle = "overwrite"; } // 如果要仅仅当次起作用,需要深复制Map,以便对话框调主使用后自动丢弃 if (checkBox_notAskWhenSameOrigin.Checked == false) { this.Map = this.Map.Clone(); } string strError = ""; if (Map.NewItem(Origin, strTarget, strStyle, out strError) == null) { MessageBox.Show(this, strError); return; } this.DialogResult = DialogResult.OK; this.Close(); }
// 询问无法匹配的源路径如何处理 // return: // -1 出错 // 0 cancel全部处理 // 1 已经选择处理办法 public static int AskNotMatchOriginBox( IWin32Window owner, ApplicationInfo ap, string strComment, SearchPanel searchpanel, string strOrigin, DbNameMap map) { DbNameMapItemDlg dlg = new DbNameMapItemDlg(); dlg.Font = GuiUtil.GetDefaultFont(); dlg.Comment = strComment; dlg.AskMode = AskMode.AskNotMatchOrigin; dlg.SearchPanel = searchpanel; dlg.Origin = strOrigin; dlg.Target = ""; dlg.WriteMode = "append"; dlg.Text = "请指定映射关系"; if (ap != null) { ap.LinkFormState(dlg, "AskNotMatchOriginBox_state"); } dlg.ShowDialog(owner); if (ap != null) { ap.UnlinkFormState(dlg); } if (dlg.DialogResult != DialogResult.OK) { return(0); // cancel } string strError = ""; if (map.NewItem(dlg.Origin, dlg.Target, dlg.WriteMode, 0, // 插入最前面 out strError) == null) { MessageBox.Show(owner, strError); return(-1); } return(1); }