Search for value in DataGridView in a column

前端 未结 6 1436
名媛妹妹
名媛妹妹 2020-12-01 17:12

I want the user to be able to search for a number in a column in the DataGridView (dgv). The dgv can hold many records. Each record has a Project Number. So I want the user

6条回答
  •  被撕碎了的回忆
    2020-12-01 18:03

    It's better also to separate your logic in another method, or maybe in another class.

    This method will help you retreive the DataGridViewCell object in which the text was found.

        /// 
        /// Check if a given text exists in the given DataGridView at a given column index
        /// 
        /// 
        /// 
        /// 
        /// The cell in which the searchText was found
        private DataGridViewCell GetCellWhereTextExistsInGridView(string searchText, DataGridView dataGridView, int columnIndex)
        {
            DataGridViewCell cellWhereTextIsMet = null;
    
            // For every row in the grid (obviously)
            foreach (DataGridViewRow row in dataGridView.Rows)
            {
                // I did not test this case, but cell.Value is an object, and objects can be null
                // So check if the cell is null before using .ToString()
                if (row.Cells[columnIndex].Value != null && searchText == row.Cells[columnIndex].Value.ToString())
                {
                    // the searchText is equals to the text in this cell.
                    cellWhereTextIsMet = row.Cells[columnIndex];
                    break;
                }
            }
    
            return cellWhereTextIsMet;
        }
    
        private void button_click(object sender, EventArgs e)
        {
            DataGridViewCell cell = GetCellWhereTextExistsInGridView(textBox1.Text, myGridView, 2);
            if (cell != null)
            {
                // Value exists in the grid
                // you can do extra stuff on the cell
                cell.Style = new DataGridViewCellStyle { ForeColor = Color.Red };
            }
            else
            {
                // Value does not exist in the grid
            }
        }
    

提交回复
热议问题