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,037

HOME > .NET Framework > Forum > ลูป for ในการ remove datagridview เมื่อเลือกแล้ว ลบหลายๆอัน



 

ลูป for ในการ remove datagridview เมื่อเลือกแล้ว ลบหลายๆอัน

 



Topic : 118930



โพสกระทู้ ( 202 )
บทความ ( 0 )



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




คือ มันเพิ่มไป2อันนะครับแต่มันลบไปแค่อันเดียว อยากไห้ลบหลายๆ อันครับ
removeCode (C#)
นี่โค๊ดครับ
private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
                    
                    if ((bool)item.Cells[0].Value == true)
                    {
                        if (item.Selected == true)
                        {
                            dataGridView2.Rows.Remove(item);
                        }
                    }
                   
                }
            }




Tag : .NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-09-17 11:20:54 By : phuriwat View : 1595 Reply : 22
 

 

No. 1



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



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

Code (C#)
namespace WindowsFormsApplication1
{
    
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 25; i++)
            {
                dataGridView1.Rows.Add(false, "Test A " + i, "Test B " + i, "Test C " + i);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount-1; i++)
            {
                if ((bool)dataGridView1[0, i].Value == true)
                {
                    
                    dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[1, i].Value);
                    dataGridView1.Rows.RemoveAt(i);

                }
            }
        }
    }
}


ผมไม่รู้สาเหตุเกิดจากอะไรแต่

Code (C#)
foreach (DataGridViewRow item in dataGridView1.Rows)


มันจะลบได้ที่ count-1
แต่ Code (C#)
 for (int i = 0; i < dataGridView1.RowCount-1; i++)


ใช้ได้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 15:04:36 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


Code (C#)
foreach (DataGridViewRow item in dataGridView1.Rows)

คือไห้เขียนนอกหรอครับ คือผมลองแล้วก็ยังไม่ได้นะครับ มันไปไม่หมดตามที่ติกอ่าครับ ตามโค๊ด ในปุ่ม button1_Click เลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 15:47:05 By : phuriwat
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-17 15:47:05
รายละเอียดของการตอบ ::

foreach (DataGridViewRow item in dataGridView1.Rows)
มันจะลบได้ที่ count-1
แต่
for (int i = 0; i < dataGridView1.RowCount-1; i++)
ใช้ได้ครับ


เขียนมางั้นไม่ใช่เรอะครับ

คำอธิบาย
***
Code (C#)
 foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
                    
                    if ((bool)item.Cells[0].Value == true)
                    {
                        if (item.Selected == true)
                        {
                            dataGridView2.Rows.Remove(item);
                        }
                    }
                   
                }


มันจะลบได้ที่ Rowcount-1

แต่
Code (C#)
 for (int i = 0; i < dataGridView1.RowCount-1; i++)
            {
                if ((bool)dataGridView1[0, i].Value == true)
                {
                    
                    dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[1, i].Value);
                    dataGridView1.Rows.RemoveAt(i);

                }
            }

ใช้ได้ครับ


55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 16:19:09 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


อันนี้พอเข้าใจครับ แต่คือผม new โปรเจคมาไหม่แล้วเอาโค๊ด ที่คุณมาแปะเลยนะมันยัง ไปทีละ 2ตัวครับแล้วเหลือตัวสุดท้ายไม่สามารถเอาออกจาก grid1 ได้เลยอ่าครับ (คือมันก็ไม่ได้เหมือนกันครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 16:30:11 By : phuriwat
 


 

No. 5



โพสกระทู้ ( 821 )
บทความ ( 0 )



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


จะย้ายข้อมูลจาก datagrid1 ==> datagrid2
แล้วจะลบข้อมูลใน datagrid1 ทิ้งใช่ไหมครับ

เวลาลบข้อมูลใน datagrid1 ให้ลบจากแถวสุดท้ายไปหาแถวแรกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 16:33:41 By : fonfire
 


 

No. 6



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


พอจะมีตัวอย่างไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-17 16:38:51 By : phuriwat
 


 

No. 7



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



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-17 16:30:11
รายละเอียดของการตอบ ::
ขอดูล่าสุดหน่อยครับ

https://drive.google.com/open?id=0B-JZ2hYujzUAY2tFRlhvQUxBWUU




ประวัติการแก้ไข
2015-09-18 08:42:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 08:12:15 By : lamaka.tor
 


 

No. 8



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


นี่ล่าสุดครับCode (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            SqlConnection conn = new SqlConnection(@"Data Source=ADMIN;Initial Catalog=BTEC_MANAGEMENT;User ID=Programmer;Password=1234");
            conn.Open();
            SqlDataAdapter sda = new SqlDataAdapter("select private_code, product_code, serial,name, unit_name, description, remark, add_date FROM products", conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.Rows.Clear();
            foreach (DataRow item in dt.Rows)
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = false;
                dataGridView1.Rows[n].Cells[1].Value = item["private_code"].ToString();
                dataGridView1.Rows[n].Cells[2].Value = item["product_code"].ToString();
                dataGridView1.Rows[n].Cells[3].Value = item["serial"].ToString();
                dataGridView1.Rows[n].Cells[4].Value = item["name"].ToString();
                dataGridView1.Rows[n].Cells[5].Value = item["unit_name"].ToString();
                dataGridView1.Rows[n].Cells[6].Value = item["description"].ToString();
                dataGridView1.Rows[n].Cells[7].Value = item["remark"].ToString();
                dataGridView1.Rows[n].Cells[8].Value = item["add_date"].ToString();

            }

            conn.Close();

        }

        private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {
            if ((bool)dataGridView1.SelectedRows[0].Cells[0].Value == false)
            {
                dataGridView1.SelectedRows[0].Cells[0].Value = true;
            }
            else
            {
                dataGridView1.SelectedRows[0].Cells[0].Value = false;

            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

            foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();                 
                                      
                }

                foreach (DataGridViewRow item2 in dataGridView1.Rows)
                {
                    for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
                    {
                        if ((bool)dataGridView1.Rows[i].Cells[0].FormattedValue)
                        {
                            dataGridView2.Rows.Add();
                        }
                    }
                }
                                     
            }

            //foreach (DataGridViewRow item in dataGridView1.Rows)
            //{
            //    if ((bool)item.Cells[0].Value == true)
            //    {
            //        dataGridView2.Rows.Remove(item);
            //    }
            //}   





        }

        private void button2_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow item in dataGridView2.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView1.Rows.Add();
                    dataGridView1.Rows[n].Cells[0].Value = false;
                    dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();

                }
            }
            foreach (DataGridViewRow item in dataGridView2.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    if (item.Selected == true)
                    {
                        dataGridView2.Rows.Remove(item);
                    }
                }
            }




        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 09:13:17 By : phuriwat
 


 

No. 9



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



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

ตอบความคิดเห็นที่ : 8 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-18 09:13:17
รายละเอียดของการตอบ ::
อันนี้พอเข้าใจครับ

ตัวนี้ผมแย้งนะครับ
แสดงว่าไม่เข้าใจครับ

แบบที่ทำใช้ไม่ได้ครับ
ที่ใช้ได้คือ

Code (C#)
for (int i = 0; i < dataGridView1.RowCount-1; i++)
           {
               if ((bool)dataGridView1[0, i].Value == true)
               {
                   
                   dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[1, i].Value);
                   dataGridView1.Rows.RemoveAt(i);

               }
           }




มันบอกมาแบบนั้นไม่ใช่เหรอครับ
มันมีแค่นั้น

Code (C#)
foreach (DataGridViewRow item2 in dataGridView1.Rows)
                {
                    for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--) // ซ้ำซ้อนกับ foreach ด้านบน ครับ
                    {
                        if ((bool)dataGridView1.Rows[i].Cells[0].FormattedValue)
                        {
                            dataGridView2.Rows.Add();
                        }
                    }
                }



รูปแบบบ้าน ๆๆ มันมีแค่นั้นจริงๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 09:22:09 By : lamaka.tor
 


 

No. 10



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


คือเป็นแบบนี้นะครับ คือในรูปมัน add ได้ 2ตัวจริง แต่มันยังเหลือตัวข้างบนอีก1ตัว อะครับ
test
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 09:49:05 By : phuriwat
 


 

No. 11



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


อันนี้โค๊ด ครับ
Code (C#)
foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();

                    for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                    {
                        if ((bool)dataGridView1[0, i].Value == true)
                        {

                            dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[3, i].Value,
                            dataGridView1[4, i].Value, dataGridView1[5, i].Value,dataGridView1[6, i].Value,dataGridView1[7, i].Value,dataGridView1[8, i].Value);
                              
                            dataGridView1.Rows.RemoveAt(i);

                        }
                    }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 09:49:45 By : phuriwat
 


 

No. 12



โพสกระทู้ ( 821 )
บทความ ( 0 )



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


ผม copy code ของคุณ phuriwat กับคุณ TOR_CHEMISTRY มาผสมกัน
แล้วพิมพ์ใน Notepad น่ะครับ
ผิดถูกขออภ้ย


Code (C#)
foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();

                    for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                    {
                        if ((bool)dataGridView1[0, i].Value == true)
                        {

                            dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[3, i].Value,
                            dataGridView1[4, i].Value, dataGridView1[5, i].Value,dataGridView1[6, i].Value,dataGridView1[7, i].Value,dataGridView1[8, i].Value);
                              
                           

                        }
                    }

for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
{
                        if ((bool)dataGridView1[0, i].Value == true)
                        {
                            dataGridView1.Rows.RemoveAt(i);
                        }
                    }




ประวัติการแก้ไข
2015-09-18 10:34:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:01:31 By : fonfire
 


 

No. 13



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



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

ตอบความคิดเห็นที่ : 11 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-18 09:49:45
รายละเอียดของการตอบ ::
ผิดครับ
ใช้แค่
Code (C#)
 for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                    {
                        if ((bool)dataGridView1[0, i].Value == true)
                        {

                            dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[3, i].Value,
                            dataGridView1[4, i].Value, dataGridView1[5, i].Value,dataGridView1[6, i].Value,dataGridView1[7, i].Value,dataGridView1[8, i].Value);
                              
                            dataGridView1.Rows.RemoveAt(i);

                        }
                    }


หรือไม่ก็
Code (C#)
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = dataGridView1[1, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = dataGridView1[2, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value =dataGridView1[3, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = dataGridView1[4, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = dataGridView1[5, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value =dataGridView1[6, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = dataGridView1[7, i].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value =dataGridView1[8, i].Value.ToString();

                            
                            dataGridView1.Rows.RemoveAt(i);

                        }
                    }

เลือกเอาซักอย่างครับ
แต่ผมถนัดแบบแรกเพราะมันไม่ต้องเขียนโค้ดหลายบรรทัดครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:01:35 By : lamaka.tor
 


 

No. 14



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


ยังไม่ได้เลย ครับ มันก๊อป ได้แถวเดียว อีกแถวไม่ก๊อปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:28:03 By : phuriwat
 


 

No. 15



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


นี่โค๊ดครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=ADMIN;Initial Catalog=BTEC_MANAGEMENT;User ID=Programmer;Password=1234");
            conn.Open();
            SqlDataAdapter sda = new SqlDataAdapter("select private_code, product_code, serial,name, unit_name, description, remark, add_date FROM products", conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.Rows.Clear();
            foreach (DataRow item in dt.Rows)
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = false;
                dataGridView1.Rows[n].Cells[1].Value = item["private_code"].ToString();
                dataGridView1.Rows[n].Cells[2].Value = item["product_code"].ToString();
                dataGridView1.Rows[n].Cells[3].Value = item["serial"].ToString();
                dataGridView1.Rows[n].Cells[4].Value = item["name"].ToString();
                dataGridView1.Rows[n].Cells[5].Value = item["unit_name"].ToString();
                dataGridView1.Rows[n].Cells[6].Value = item["description"].ToString();
                dataGridView1.Rows[n].Cells[7].Value = item["remark"].ToString();
                dataGridView1.Rows[n].Cells[8].Value = item["add_date"].ToString();

            }

            conn.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                if ((bool)dataGridView1[0, i].Value == true)
                {

                    dataGridView2.Rows.Add(false, dataGridView1[1, i].Value, dataGridView1[2, i].Value, dataGridView1[3, i].Value,
                    dataGridView1[4, i].Value, dataGridView1[5, i].Value, dataGridView1[6, i].Value, dataGridView1[7, i].Value, dataGridView1[8, i].Value);

                    dataGridView1.Rows.RemoveAt(i);

                }
            }
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:30:22 By : phuriwat
 


 

No. 16



โพสกระทู้ ( 821 )
บทความ ( 0 )



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


รอบในการ Add กับ Remove ต้องแยกกันน่ะครับ
สมมุติมันมี 2 row

รอบที่ 1 เราเพิ่มได้ แต่เราลบแถวที่ 1 ออก
เวลาที่ i=2
มันจะหาแถวที่ 2 ไม่เจอน่ะครับ
เพราะมันเหลือแถวเดียวแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:33:57 By : fonfire
 


 

No. 17



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


แล้วจะต้องโค๊ดอย่างไรครับ ผมงงครับ ช่วยหน่อยครับ Y^Y
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:44:41 By : phuriwat
 


 

No. 18



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


ผม ได้ แล้วครับ ขอบคุณทั้งสองคนมากครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:51:00 By : phuriwat
 


 

No. 19



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


อันนี้โค๊ดที่ได้นะครับ
Code (C#)
 private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow item in dataGridView1.Rows)
            {
                if ((bool)item.Cells[0].Value == true)
                {
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = false;
                    dataGridView2.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
                    dataGridView2.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
                    dataGridView2.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
                    dataGridView2.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
                    dataGridView2.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();

                }
            }

            List<DataGridViewRow> toDelete = new List<DataGridViewRow>();

                foreach (DataGridViewRow row in dataGridView1.Rows) 
                {
                    bool s = Convert.ToBoolean(row.Cells[0].Value);

                  if (s == true) 
                    {
                        toDelete.Add(row);
                    }
                }

                foreach (DataGridViewRow row in toDelete) 
                {
                    dataGridView1.Rows.Remove(row);
                }

        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 10:51:37 By : phuriwat
 


 

No. 20



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



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

แหล่มครับ
เอาใจช่วย ๆๆๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 11:03:27 By : lamaka.tor
 


 

No. 21



โพสกระทู้ ( 317 )
บทความ ( 0 )



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


อิอิ แหล่มเลยครับ ว่างๆ เลยแวะมาดู ความจริงทำสั่นๆแบบนี้ก็ได้ผลลัพธ์เท่ากันคัรบ

Code (C#)
       private void button1_Click(object sender, EventArgs e)
        {
            List<DataGridViewRow> toDelete = new List<DataGridViewRow>();
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (Convert.ToBoolean(row.Cells[0].Value))
                    toDelete.Add(row);
            }
            foreach (DataGridViewRow row in toDelete)
            {
                dataGridView1.Rows.Remove(row);
            }
        }


ปัญหาที่คุณลบแล้วมันติด คือ เราสั่งให้ลบแถวแบบทันทีออกไปจากกริดเลยไม่ได้ครับ เพราะว่าลำดับการลบมันจะเสียไปทันทีครับ เช่น

1
2
3
4
5

เราลบแถวที่ 1 ออกไป แทนที่มันจะมองแถวที่ 2 เป็นแถวที่ 2 ตามปกติ มันกับจัดลำดับให้ใหม่ เป็น

2=1 ,3=2 แทน ลำดับมันเลยเสียครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 11:40:31 By : Freedom
 


 

No. 22



โพสกระทู้ ( 202 )
บทความ ( 0 )



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


ขอบคุณทุกคนมากครับ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-18 11:52:45 By : phuriwat
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ลูป for ในการ remove datagridview เมื่อเลือกแล้ว ลบหลายๆอัน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่