我試圖將此C++ MFC應用程序移植到C#WinForm中。這是一項正在進行的工作。基本上,我想要做一些拉伸成組框區域:在組框中使用WinForm Paint事件
我加了油漆處理程序的形式做我的工作:
private void FullColourPaletteForm_Paint(object sender, PaintEventArgs e)
{
// Do painting with e.Graphics
}
我很驚訝地看到,它沒有不顯示我的渲染。但是,然後我意識到,在Winform中,它不稱爲groupbox
,而是container
。所以,我設置的容器是不可見的,可以理解我的渲染(儘管並不完全正確)現在visble:
我怎麼到容器的區域內做我的畫嗎?
這是爲什麼呢?我所做的只是補充:
private void groupBox1_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
}
現在我的表格畫是可見的。
改爲使用GroupBox的Paint事件。 –
謝謝。請看我更新的問題。 –
每個控件都有自己的繪畫事件。當繪製表單時(當可見性改變時),每個控件的'OnPaint'方法被調用(在繪畫結束時調用'Paint'事件)。你正在做的是創建一個自定義控件來繪製調色板。它不一定是'GroupBox',你可以使用'Control'來代替。如果你想保留那個'GroupBox'邊框,那麼你可以重寫'Paint'方法並首先調用'base.OnPaint',然後在其上繪製。不確定是否是這種情況,但有時候自己繪製一切都是值得的(你可以使用ControlPaint.DrawBorder來繪製邊框)。 – Sinatr