0

我们有一个仅在 Win7 中出现的绘画问题。它在 Win Xp 中完美运行。当用户点击自定义控件的某个项目或任何部分(用户控件在下图中以红色矩形标记)时,树形视图和屏幕中的所有控件开始闪烁。仅当鼠标指针移出用户控件时,闪烁才会停止。

如何解决问题?

用户控制代码如下

namespace NeST.ICE.Screens.ICEJobHistory
{
    public partial class CustomControlPropertGrid : System.Windows.Forms.PropertyGrid    
    {
        public CustomControlPropertGrid()
        {
            InitializeComponent();
            this.DoubleBuffered = true;
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            // TODO: Add custom paint code here

            // Calling the base class OnPaint
            base.OnPaintBackground(pe);
            base.OnPaint(pe);

        }
        protected override void OnPaintBackground(PaintEventArgs e)
        {

        }


    }
}

数据填充代码如下。this._waferGrid 是 CustomControlPropertGrid 的对象

 if (dataReader != null && dataReader.Read())
            {
                //FIX_OCT_08: BUG2891 
                WaferProperty wafer = new WaferProperty();

                //FIX_JUN_09:Changed Name to SubstrateID
                wafer.SubstrateID   = dataReader[Constants.NAME_PARAMETER_INDEX].ToString();
                wafer.InCarrier     = dataReader[Constants.SOURCE_INCARRIER_PARAMETER_INDEX].ToString();
                wafer.OutCarrier    = dataReader[Constants.DESTINATION_OUTCARRIER_PARAMETER_INDEX].ToString();
                wafer.InLoadPort    = dataReader[Constants.DESTINATIONSLOT_INLP_PARAMETER_INDEX].ToString();
                wafer.OutLoadPort   = dataReader[Constants.STARTTIME_OUTLP_PARAMETER_INDEX].ToString();
                wafer.StartTime     = dataReader[Constants.WAFER_TIME_PARAMETER_INDEX].ToString();
                wafer.EndTime       = dataReader[Constants.ENDTIME_OPERATION_PARAMETER_INDEX].ToString();
                //<<EHN_AUG_11_WaferLotId 
                //Added the waferLotId parameter to the grid
                wafer.LotID = dataReader[Constants.LOT_ID_PARAMETER_INDEX].ToString();
                //EHN_AUG_11_WaferLotId >>
                //FIX_JUN_09:Changed WaferID to ActualWaferID
                wafer.ActualWaferID = dataReader[Constants.WAFER_STATUS_PARAMETER_INDEX].ToString();
                wafer.RouteRecipe = dataReader[Constants.WAFER_ROUTE_RECIPE_PARAMETER_INDEX].ToString();

                this._waferGrid.SelectedObject =wafer;

            }

在此处输入图像描述

4

0 回答 0