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

本文关键字:新绘制 绘制 恢复 最大化 选择 选项 最小化 屏幕 窗口 | 更新日期: 2023-09-27 18:19:20

我有一个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]谢谢你的帮助!

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

可能是Update();

(没有检查这种情况,但我见过Update();工作,当Invalidate();没有)

试试this.Invalidate()

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