0
我有一個從System.Windows.Forms.UserControl派生的控件,它放置在一個自定義的網格中。當網格的第一列被凍結並且網格滾動幾個像素時,第二列變得部分可見,使得該列中的控件也變得部分可見。如何通過隱藏裁剪顯示控件的一部分?
爲了實現這一點,我希望能夠只顯示通過隱藏/剪裁控件的左側部分可見的控件部分。
我不想修改控件的OnPaint,因爲我沒有訪問控件的代碼。我可以更改顯示控件的網格中的代碼。
我嘗試了以下不起作用的: 1.使只有必須可見的部分控件無效。 2.使用的GraphicsPath如下:
System.Drawing.Drawing2D.GraphicsPath controlPath = new System.Drawing.Drawing2D.GraphicsPath();
controlPath.AddRectangle(visibleRect);
editControl.Region = new Region(controlPath);
任何其他的想法?
您必須截取控件的繪製,以便可以修改Graphics.Clip。派生自己的類並重寫OnPaintBackground和OnPaint。如果這是一個包含其他控件的UserControl,則不起作用。 – 2012-01-18 05:34:17
感謝您的建議。但在我的情況下,我有很多類型的控件可以放置在網格中,因此從現有控件中爲所有控件導出新的控件將是不可行的。 – 2012-01-23 07:37:18