static Form _CreateForm ( string[] commandArgs ) { if (commandArgs.Length != 0) { string encodingName = commandArgs[0]; Encoding encoding; switch (encodingName) { case "default": case "ansi": case "ANSI": encoding = Encoding.Default; break; default: if (encodingName.IsPositiveInteger()) { int codePage = NumericUtility.ParseInt32(encodingName); encoding = Encoding.GetEncoding(codePage); } else { encoding = Encoding.GetEncoding(encodingName); } break; } Console.InputEncoding = encoding; } string text = Console.In.ReadToEnd(); PlainTextForm result = new PlainTextForm(text) { Icon = Properties.Resources.Pipe }; ToolStripButton button = new ToolStripButton ( "Send to console and close (F2)", Properties.Resources.PipeEnd.ToBitmap() ); EventHandler handler1 = (sender, args) => { string modifiedText = result.Text; Console.Out.Write(modifiedText); result.Close(); }; button.Click += handler1; result.Editor.TextBox.KeyDown += (sender, args) => { if (args.KeyCode == Keys.F2) { handler1(sender, args); } }; result.AddButton(button); return(result); }
private async void _reportButton_Click ( object sender, EventArgs e ) { string place = _placeBox.Text.Trim(); if (string.IsNullOrEmpty(place)) { WriteLine("Не задано место хранения"); return; } ReadRecordCommand.ThrowOnVerify = false; _reportButton.Enabled = false; _confirmButton.Enabled = false; StringBuilder list = new StringBuilder(); Task task = Task.Factory.StartNew ( () => { long[] all = Kladovka.GetAllPodsob(place); long[] marked = Kladovka.GetAllMarked(place); long[] diff = all.Except(marked) .OrderBy(x => x) .ToArray(); Write("Build list (" + diff.Length + "): "); int count = 0; foreach (long number in diff) { count++; if (count % 10 == 1) { Write((count - 1) + " "); } string line = string.Format ( "{0} \tНет описания", number ); int[] mfns = Kladovka.FindRecords ( "\"IN={0}\"", number ); if (mfns.Length == 1) { MarcRecord record = Kladovka.ReadMarcRecord(mfns[0]); line = string.Format ( "{0} \t{1}", number, record.Description ); } list.AppendLine(line); } } ); try { await task; } catch (Exception ex) { ex = ExceptionUtility.Unwrap(ex); ExceptionBox.Show(this, ex); } _reportButton.Enabled = true; _confirmButton.Enabled = true; WriteLine(string.Empty); WriteDelimiter(); string text = list.ToString(); PlainTextForm.ShowDialog(this, text); }