我尝试将此C ++ MFC应用程序移植到C#WinForm中。这是一项正在进行的工作。基本上,我想在组框区域中进行一些绘制:
我在表单中添加了一个Paint处理程序来完成我的工作:
private void FullColourPaletteForm_Paint(object sender, PaintEventArgs e)
{
// Do painting with e.Graphics
}
我很惊讶地看到它没有显示我的渲染。但是,我意识到在Winform中它不是groupbox
而是container
。因此,我将容器设置为隐形,可以理解的是,我的渲染(尽管不太正确)现在可以看到:
我应该如何在容器区域内进行绘画?
为什么呢?我所做的只是补充:
private void groupBox1_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
}
现在我的表格绘画是可见的。
答案 0 :(得分:1)
每个窗口(控件,窗体等)都有自己的绘画,儿童通常会从该绘画中剪裁(排除)。
如果你想在GroupBox
(或任何控件)中绘制,你应该在相应的控件(你的情况为Paint
)private void groupBox_Paint(object sender, PaintEventArgs e)
{
var area = groupBox.DisplayRectangle;
// Draw inside the area
e.Graphics.FillRectangle(Brushes.Green, area);
}
事件中处理,而不是形式一
contentType: "json",