更改选项卡选择时,除非窗口屏幕最小化,最大化或恢复,否则不会重绘子面板

时间:2012-01-02 22:42:47

标签: c# winforms visual-studio-2010 tabcontrol

我遇到了Windows窗体项目的问题。我更改了标签,但除非我最大化,最小化或恢复整个窗口,否则更改不会反映出来。之后,新选择的选项卡将显示其子内容。

我已将问题范围缩小到我尝试编程创建并命名datagridview

我可以这样做:

            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);

但是一旦我尝试以编程方式将编辑应用于datagridview列,就会出现问题。只需在此处取消注释顶行就会导致错误。

            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;

[edit]感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

尝试此操作。控件的无效()

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

答案 1 :(得分:1)

也许是Update();

(未检查此案例,但我看到Update();工作,而Invalidate();没有。)