Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > C# WinApp ช่วยดู datagrid ให้หน่อยครับ อยากให้รหัสเดียวกันเป็น สีเดียวกัน



 

C# WinApp ช่วยดู datagrid ให้หน่อยครับ อยากให้รหัสเดียวกันเป็น สีเดียวกัน

 



Topic : 127503



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



1311

อย่างที่เห็นครับ
FD 0247 กับ FD 0247 S เป็นหรหัสเดียวกันอยากให้เป็นสีเดียวกัน
หรือสรุปง่ายๆก็คือ สนใจแค่ตัวเลข ข้างหลังจะเป็น อะไรก็ได้ ขอแค่ข้างหน้าเหมือนกันก็ให้ถือว่าเป็น รหัสเดียวกัน

อย่าง FD 0247 กับ FD 0247 S กับ FD 0247 A กับ FD 0247 B กับ FD 0247 Spi กับ FD 0247 D หรืออื่นๆก็ให้เป็นรหัสเดียวกันครับ

โค้ดสำหรับเปลี่ยนสี

Code (C#)
Color cl = Color.Beige;
            for (int i = 1; i < dataGridView1.Rows.Count - 1; i++)
            {
                cl = (dataGridView1[0, i].Value.ToString() == dataGridView1[0, i - 1].Value.ToString()) ? cl : (cl != Color.Beige) ? Color.Beige : Color.LightGreen;
                dataGridView1.Rows[i].DefaultCellStyle.BackColor = cl;
                dataGridView1[0, i].Style.ForeColor = (dataGridView1[0, i].Value.ToString() == dataGridView1[0, i - 1].Value.ToString()) ? cl : dataGridView1[0, i].Style.ForeColor;
            }




Tag : .NET, C#, VS 2012 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-05-08 14:12:40 By : lamaka.tor View : 868 Reply : 6
 

 

No. 1

Guest


เคยทำแบบนี้อ่ะครับ
DataGridView.CellFormatting Event

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1


อีกแบบที่เคยทำคือเขียนคำสั่งให้ได้สีตั้งแต่ใน stored procedure เลย แล้วก็มาใช้ CellFormatting ทำต่อก็ง่ายดี






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-09 17:52:42 By : ABC
 


 

No. 2



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : ABC เมื่อวันที่ 2017-05-09 17:52:42
รายละเอียดของการตอบ ::
ผมทำใน DataBindingComplete ครับ

ตอนเปลี่ยนสีไม่มีปัญหาครับ จะมีปัญหาตอน เช็คว่าเป็นรหัสเดียวกันครับ

อย่าง FD 0247 กับ FD 0247 S กับ FD 0247 A กับ FD 0247 B กับ FD 0247 Spi กับ FD 0247 D หรืออื่นๆก็ให้เป็นรหัสเดียวกันครับ

ตัวนี้ผมดึงข้อมูลมาจาก excel ครับ(ไฟล์ แบบฟอร์ม เป็น excel)

Code (C#)
         void RefreshData()
        {

            Cursor = Cursors.WaitCursor;
            textBox1.Text = "";
            comboBox1.Text = "แสดงทั้งหมด";
            System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(@"(?:([A-Za-z]+).*?([0-9]+))");
            if (System.IO.Directory.GetFiles(TORServices.PathFile.PathData.Path_AllReport, "*.Report", System.IO.SearchOption.AllDirectories).Length <= 0) { Cursor = Cursors.Default; return; }
            if (dt != null) { dt = null; }
            dt = new DataTable();
            dt.Columns.Add(new DataColumn("SampleID", typeof(string)));
            dt.Columns.Add(new DataColumn("Parameter", typeof(string)));
            dt.Columns.Add(new DataColumn("Value", typeof(string)));
            dt.Columns.Add(new DataColumn("Date", typeof(string)));
            dt.Columns.Add(new DataColumn("ผู้วิเคราะห์", typeof(string)));
            dt.Columns.Add(new DataColumn("ผู้ตรวจสอบ", typeof(string)));
            dt.Columns.Add(new DataColumn("Seleced", typeof(Boolean)));
            string FileExcel,sampleID;
            int _i;
            foreach (string _f in System.IO.Directory.GetFiles(TORServices.PathFile.PathData.Path_AllReport, "*.Report",System.IO.SearchOption.AllDirectories))
            {
                //เช็คการเปิดไฟล์ถ้าเปิดให้ก๊อบไปวางที่ Temp
                if (System.IO.File.GetCreationTime(_f) >= dateTimePicker1.Value && System.IO.File.GetCreationTime(_f) <= dateTimePicker2.Value.AddDays(1))
                {
                    FileExcel = pathTemp + "\\" +  String.Format("{0:ddMMyyyy HHmmss}", DateTime.Now) +  System.IO.Path.GetExtension(_f);
                        System.IO.File.Copy(_f, FileExcel);
                        try
                        {
                            OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(new System.IO.FileInfo(FileExcel));
                            OfficeOpenXml.ExcelWorksheet sheet = package.Workbook.Worksheets[1];

                            int item;
                            if (sheet.Cells[2, 3].Value != null)
                            {
                                DateTime dd = (DateTime)sheet.Cells[2, 3].Value;
                                for (int i = 1; i < sheet.Dimension.End.Row; i++)
                                {
                                    item = 15;
                                    if (sheet.Cells[i, item].Value != null)
                                    {

                                        if (sheet.Cells[i, item].Value.ToString() != "" && rgx.IsMatch(sheet.Cells[i, item].Value.ToString()))
                                        {
                                            DataRow dr = dt.NewRow();
                                            sampleID =  sheet.Cells[i, item].Value.ToString();
                                            dr["SampleID"] =rgx.Match(sampleID).Groups[1].Value.ToUpper() + " " +string.Format("{0:0000}",  int.Parse(rgx.Match(sampleID).Groups[2].Value));
                                            dr["Parameter"] = sheet.Cells[i, item + 1].Value;
                                            dr["Value"] = sheet.Cells[i, item + 2].Value.ToString();
                                            dr["Date"] = dd;
                                            dr["ผู้วิเคราะห์"] = sheet.Cells[i, item + 4].Value;
                                            dr["ผู้ตรวจสอบ"] = sheet.Cells[i, item + 5].Value;
                                            dr["Seleced"] = false;
                                            dt.Rows.Add(dr);
                                        }
                                    }
                                }
                                sheet = package.Workbook.Worksheets[2];
                                for (int i = 1; i < sheet.Dimension.End.Row; i++)
                                {
                                    item = 18;
                                    if (sheet.Cells[i, item].Value != null)
                                    {
                                        if (sheet.Cells[i, item].Value.ToString() != "" && rgx.IsMatch(sheet.Cells[i, item].Value.ToString()))
                                        {
                                            DataRow dr = dt.NewRow();
                                            sampleID = sheet.Cells[i, item].Value.ToString();
                                            dr["SampleID"] = rgx.Match(sampleID).Groups[1].Value.ToUpper() + " " + string.Format("{0:0000}", int.Parse(rgx.Match(sampleID).Groups[2].Value));
                                            dr["Parameter"] = sheet.Cells[i, item + 1].Value;
                                            dr["Value"] = sheet.Cells[i, item + 2].Value.ToString();
                                            dr["Date"] = dd;
                                            dr["ผู้วิเคราะห์"] = sheet.Cells[i, item + 4].Value;
                                            dr["ผู้ตรวจสอบ"] = sheet.Cells[i, item + 5].Value;
                                            dr["Seleced"] = false;
                                            dt.Rows.Add(dr);
                                        }
                                    }
                                }
                            }
                            package = null;
                        }
                        catch { }
                        finally { System.IO.File.Delete(FileExcel); }
                    }
                try
                {
                    dataGridView1.Invoke(new Action(() =>
                    {
                        dataGridView1.DataSource = dt;
                        dataGridView1.Columns[2].Width = 120;
                        dataGridView1.Columns[3].Width = 150;
                        dataGridView1.Columns[4].Width = 180;
                        dataGridView1.Columns[5].Width = 180;
                        dataGridView1.Columns[6].Width = 80;
                        dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
                    }));
                }
                catch { }
                }
            Cursor = Cursors.Default;

            }

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            //Color cl1 = Color.Beige;
            //Color cl2 = Color.LightGreen;
            Color cl = Color.Beige;
            for (int i = 1; i < dataGridView1.Rows.Count - 1; i++)
            {
                cl = (dataGridView1[0, i].Value.ToString() == dataGridView1[0, i - 1].Value.ToString()) ? cl : (cl != Color.Beige) ? Color.Beige : Color.LightGreen;
                dataGridView1.Rows[i].DefaultCellStyle.BackColor = cl;
                dataGridView1[0, i].Style.ForeColor = (dataGridView1[0, i].Value.ToString() == dataGridView1[0, i - 1].Value.ToString()) ? cl : dataGridView1[0, i].Style.ForeColor;
            }
        }



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-09 18:10:44 By : lamaka.tor
 

 

No. 3



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตัว detail ต่างๆเราไม่สามารถกำหนดได้เพราะขึ้นอยู่กับ User ว่าเขาจะใส่อะไรไปบ้าง(โดยจะต้องต่อท้ายเท่านั้น)

แต่หลัก จะดูที่รหัสตัวอย่างเป็นหลัก เช่น FD 0247 หรือ FD 247 ส่วนจะต่อท้ายเพิ่มอะไร ก็ยังถือว่าเป็นรหัสเดียวกันอยู่

อย่าง FD 0247 กับ FD 0247 S กับ FD 0247 A กับ FD 0247 B กับ FD 0247 Spi กับ FD 0247 D หรืออื่นๆก็ให้เป็นรหัสเดียวกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-09 18:14:23 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-10 19:27:04 By : lamaka.tor
 


 

No. 5

Guest


ถ้าเป็นผมคง...ลองใช้ select substring , left , right จากพวก FD 0247 กับ FD 0247 S และอื่นๆ ออกมา 7 digits ให้ได้อีก column นึง แล้วค่อยมาให้โค้ดเปลี่ยนสีพิจารณาจาก column ใหม่นี้จะง่ายกว่ามั้ยครับ
ตอนแสดงที่ gridview ก็ซ่อน column นี้ไว้

หวังว่าเราจะมีโชคตรง digit ของ column SampleID นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-11 16:30:17 By : ABC
 


 

No. 6



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : ABC เมื่อวันที่ 2017-05-11 16:30:17
รายละเอียดของการตอบ ::
เด๋วจะลองดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-11 19:01:56 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp ช่วยดู datagrid ให้หน่อยครับ อยากให้รหัสเดียวกันเป็น สีเดียวกัน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่