private void contextMenuStrip2_Opening(object sender, CancelEventArgs e) { var sqlObj = (SqlObject)DGVObject.CurrentRow.DataBoundItem; TsmiCompare.DropDownItems.Clear(); TsmiSync.DropDownItems.Clear(); foreach (var info in DBConnInfoList.Where(x => x != CurrDBConnInfo)) { var miCompare = new ToolStripMenuItem(info.FullName); //比對 miCompare.Click += (obj, args) => { var sourFile = SqlDefinition.ExportDefinitionToTempCompareFile(CurrDBConnInfo, sqlObj.Name); var trgtFile = SqlDefinition.ExportDefinitionToTempCompareFile(info, sqlObj.Name); var cmd = $@"{System.IO.Directory.GetCurrentDirectory()}\Tools\WinMergeU.exe ""{sourFile}"" ""{trgtFile}"""; CommandUtils.ExecuteCommandSync(cmd); }; TsmiCompare.DropDownItems.Add(miCompare); var miSync = new ToolStripMenuItem(info.FullName); miSync.Click += (obj, args) => { if (MessageBox.Show($"是否確定同步物件[{sqlObj.Name}]從{CurrDBConnInfo.FullName}-->{info.FullName}", "物件同步", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } var rslt = SqlDefinition.SyncObj(CurrDBConnInfo, info, sqlObj.Name); MessageBox.Show(rslt != string.Empty ? rslt : "同步成功"); }; TsmiSync.DropDownItems.Add(miSync); } }