visual que personalizado mostrar modal mensaje form diálogo dialogo cuadros cuadro confirmacion como alertas activa c# winforms dialog customdialog

c# - mostrar - ¿La forma más fácil de crear un cuadro de diálogo personalizado que devuelve un valor?



messagebox form c# (4)

  1. En su botón, establezca la propiedad DialogResult en DialogResult.OK
  2. En su diálogo, establezca la propiedad AcceptButton a su botón
  3. Cree una propiedad pública en su formulario llamado Resultado de tipo int
  4. Establezca el valor de esta propiedad en el evento de clic de su botón
  5. Llama a tu diálogo de esta manera.

    using(myDialog dlg = new myDialog()) { if(dlg.ShowDialog() == DialogResult.OK) { int result = dlg.Result; // whatever you need to do with result } }

Quiero crear un cuadro de diálogo personalizado para mi proyecto de C #. Quiero tener un DataGridView en este cuadro de diálogo personalizado, y también habrá un botón. Cuando el usuario haga clic en este botón, se devolverá un valor entero al llamante. y, a continuación, el cuadro de diálogo se termina.

Cómo puedo conseguir esto ?


No hay cuadro de diálogo en C #. Puede crear un cuadro de solicitud personalizado para hacer esto en su lugar.

public static class Prompt { public static int ShowDialog(string text, string caption) { Form prompt = new Form(); prompt.Width = 500; prompt.Height = 100; prompt.Text = caption; Label textLabel = new Label() { Left = 50, Top=20, Text=text }; NumericUpDown inputBox = new NumericUpDown () { Left = 50, Top=50, Width=400 }; Button confirmation = new Button() { Text = "Ok", Left=350, Width=100, Top=70 }; confirmation.Click += (sender, e) => { prompt.Close(); }; prompt.Controls.Add(confirmation); prompt.Controls.Add(textLabel); prompt.Controls.Add(inputBox); prompt.ShowDialog(); return (int)inputBox.Value; } }

Entonces llámalo usando:

int promptValue = Prompt.ShowDialog("Test", "123");


//combo box dialog c# // public static string DialogCombo(string text,DataTable comboSource,string DisplyMember,string ValueMember) { //comboSource = new DataTable(); Form prompt = new Form(); prompt.RightToLeft = RightToLeft.Yes; prompt.Width = 500; prompt.Height = 200; Label textLabel = new Label() { Left = 350, Top = 20, Text = text }; ComboBox combo = new ComboBox { Left = 50, Top = 50, Width = 400 }; combo.DataSource = comboSource; combo.ValueMember = ValueMember; combo.DisplayMember = DisplyMember; Button confirmation = new Button() { Text = "تایید", Left = 350, Width = 100, Top = 70 }; confirmation.Click += (sender, e) => { prompt.Close(); }; prompt.Controls.Add(confirmation); prompt.Controls.Add(textLabel); prompt.Controls.Add(combo); prompt.ShowDialog(); return combo.SelectedValue.ToString(); }


public static DialogResult InputBox(string title, string promptText, ref string value,bool isDigit=false) { Form form = new Form(); Label label = new Label(); TxtProNet textBox = new TxtProNet(); if (isDigit == true) textBox.TypeNumricOnly = true; textBox.Width = 1000; Button buttonOk = new Button(); Button buttonCancel = new Button(); form.Text = title; label.Text = promptText; textBox.Text = value; buttonOk.Text = "OK"; buttonCancel.Text = "Cancel"; buttonOk.DialogResult = DialogResult.OK; buttonCancel.DialogResult = DialogResult.Cancel; label.SetBounds(9, 20, 372, 13); textBox.SetBounds(12, 36, 372, 20); buttonOk.SetBounds(228, 72, 75, 23); buttonCancel.SetBounds(309, 72, 75, 23); label.AutoSize = true; textBox.Anchor = textBox.Anchor | AnchorStyles.Right; buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; form.ClientSize = new Size(396, 107); form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel }); form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height); form.FormBorderStyle = FormBorderStyle.FixedDialog; form.StartPosition = FormStartPosition.CenterScreen; form.MinimizeBox = false; form.MaximizeBox = false; form.AcceptButton = buttonOk; form.CancelButton = buttonCancel; DialogResult dialogResult = form.ShowDialog(); value = textBox.Text; return dialogResult; }