none
Корректно снять выделение с ячейки datagrid RRS feed

  • Общие обсуждения

  • добрый вечер!столкнулся с проблемой, есть форма, на ней грид, в гриде при загрузке отрабатывает функция загрузки значений в datagridview.загружаю так:

    public void show_f()
            {
                SqlDataAdapter da;
                SqlConnection con = new SqlConnection(conn.sConSql);
                SqlCommand cmd;
                DataView dv;
                DataTable dt;
     
                cmd = con.CreateCommand();
                cmd.CommandText = "select * from t where id_z=" + ID;
                dt = new DataTable();
                da = new SqlDataAdapter(cmd);
                try
                {
                    con.Open();
     
                    da.Fill(dt);
                    con.Close();
                    dv = new DataView(dt);
                    dv.AllowDelete = false;
                    dv.AllowEdit = true;
                    dv.AllowNew = false;
                    Grid1.DataSource = dv;
                    Grid1.Columns["id"].Visible = false;
                    Grid1.Columns["id_k"].Visible = false;
         }
         catch (Exception ex)
         {
            MessageBox(ex.Message);
         }
    }

    Затем на лоад формы пишу

    private void zak_Load(object sender,EventArgs e)
    {
       show_f();
       Grid1.ClearSelection(); // пробовал здесь, не помогает
       Grid1.Rows[0].selected=false // тоже не помогает
    }

    так как при загрузке, я анализирую значения из базы и в соответствии с этим,выделяю цветом строки,то стала не удобно восприниматься картинка грида, т.е. при загрузке данных в грид, выделяется первая строка, при установленном режиме fullrowselect.
    в лоаде попробовал написать 
    grid1.rows[0].selected=false или grid1.clearselected(); результата нет, попробовал в обработчиках
    CellPainting или RowPostPaint
    выделение снимается, строка в последствии не выделяется, если сделать на событии cell_click

    События были на гриде, но я их закоментил, результат тот же.
    может влияет следующий фактор, хотя врятли:
    данная форма, в которой распложен грид, это редактируемая форма некоторого объекта, который открывается двойным щелчком,т.е. есть список обектов, нарисовано событие double_click, при двойном щелчке, открывается форма редактирования, где и расположен наш интересующий грид, с фнкцией отображения show_f();

    или всему виной fullrowselect ?

    26 марта 2014 г. 18:46