วันจันทร์ที่ 12 ธันวาคม พ.ศ. 2559

C# MessageBox Input Show Grid แบบง่ายๆ

ต้องการ Message Box Input แบบง่ายๆ ไม่ต้องการสร้าง Form ต่อ ท้าย ใน Class ที่กำลังทำอยู่
เวลาเรียกใช้ ก็

String ins=InputPrompt.ShowDialog("Hello","Question"," default");


 public static class InputPrompt
    {
        public static string ShowDialog(string text, string caption,string defText)
        {
            Form prompt = new Form()
            {
                Width = 500,
                Height = 150,
                FormBorderStyle = FormBorderStyle.FixedSingle,
                Text = caption,
                StartPosition = FormStartPosition.CenterScreen
            };
            Label textLabel = new Label() { Left = 50, Top = 20, Text = text };
            TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
            Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
            confirmation.Click += (sender, e) => { prompt.Close(); };
            prompt.Controls.Add(textBox);
            prompt.Controls.Add(confirmation);
            prompt.Controls.Add(textLabel);
            prompt.AcceptButton = confirmation;
            if (defText != null) textBox.Text = defText;
            return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
        }

    }

เพิ่มสำหรับ แสดง DataTable บน DataGridView
           public static string GridDialog(string caption, object dt)
            {
                System.Windows.Forms.Form prompt = new System.Windows.Forms.Form()
                {
                    Width = 500,
                    Height = 500,
                    FormBorderStyle = FormBorderStyle.FixedSingle,
                    Text = caption,
                    StartPosition = FormStartPosition.CenterScreen,   
                    AutoSizeMode=AutoSizeMode.GrowAndShrink
                    
                };
              
                DataGridView dv = new DataGridView() { Left = 1, Top = 1, Width = 400,Height =400 };
                Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
                //Anchor: Top,Left
                //AutoSizeColumn: Fill
                //Dock: Fill
                dv.Dock = DockStyle.Fill;
                dv.AutoSize = true;
                dv.Anchor = AnchorStyles.Top | AnchorStyles.Left;
                prompt.Controls.Add(dv);
                prompt.Controls.Add(confirmation);
                
                prompt.AcceptButton = confirmation;
                dv.DataSource = dt; // can be datatable , List
                prompt.ShowDialog();
                return"";

            }
// ในกรณี Linq ต้องการแสดงผลบน Grid ต้องใส่ toList() ด้วย
    var result = dt.Rows.Cast<DataRow>()

                    .Select(row=> new{ key= row["BomID"].ToString(),data= row["ChildID"].ToString()}).ToList();

ไม่มีความคิดเห็น:

แสดงความคิดเห็น