При изменении выбора вкладок дочерние панели не перерисовываются, пока экран Widnow не свернут, развернут или не восстановлен - PullRequest
0 голосов
/ 03 января 2012

У меня проблема с проектом Windows Forms.Я меняю вкладки, но это изменение не отражается, если я не разверну, не сверну или не восстановлю все окно.После этого на новой выбранной вкладке отобразится ее дочернее содержимое.

Я сузил проблему до того, что пытался программно создать и назову таблицу данных

Я могу сделать это:

            logs_datagrid.Name = "datagrid_logs";
            logs_datagrid.AutoSize = true;
            logs_datagrid.Dock = DockStyle.Fill;
            logs_datagrid.Font = new Font("Microsoft Sans Serif", 8.25F);
            logs_datagrid.DataSource = dt_logs_google;
            logs_datagrid.AllowUserToAddRows = false;
            logs_datagrid.BackColor = System.Drawing.Color.White;
            logs_datagrid.BringToFront(); 

            splitContainer2.Panel2.Controls.Add(logs_datagrid);

, но как только я пытаюсьпрограммно применить изменения к столбцам таблицы данных, в которых возникает проблема.Просто раскомментирование верхней строки приведет к ошибке.

            DataGridViewColumn dvg_col_1 = logs_datagrid.Columns[0];
           // DataGridViewColumn dgv_col_2 = logs_datagrid.Columns[1];
           // DataGridViewColumn dgv_col_3 = logs_datagrid.Columns[3];

            //dgv_col_1.ReadOnly = true;
           // dgv_col_1.MinimumWidth = 200;
            //dgv_col_2.ReadOnly = true;
            //dgv_col_2.MinimumWidth = 200;
            //dgv_col_3.ReadOnly = true;
            //dgv_col_3.MinimumWidth = 200;
           // dgv_col_3.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

[править] Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 03 января 2012

Возможно Update();.

(не проверял этот случай, но я видел Update(); работу, когда Invalidate(); не проверял.)

1 голос
/ 03 января 2012

Попробуйте это. Invalidate () вашего элемента управления

http://windowsclient.net/articles/windowsformspainting.aspx

...