首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用c#在表控件上绘制图像?

如何使用c#在表控件上绘制图像?
EN

Stack Overflow用户
提问于 2011-07-13 13:18:13
回答 1查看 3.4K关注 0票数 1

我必须使用C#在一个表控件中绘制图像。我几乎没有什么提示,可以将DrawMode改为OwnerDrawFixed,将SizeMode更改为Fixed。在此之后,DrawItem事件的写处理程序如下:

代码语言:javascript
复制
this.tabControl1.DrawItem += 
    new System.Windows.Forms.DrawItemEventHandler(this.OnDrawItem);

private void OnDrawItem(object sender, DrawItemEventArgs e)
{
    Graphics g = Graphics.FromHwnd(tabPage1.Handle);/*e.Graphics;*/         

    DrawArrowImage(g);
}

现在,这个DrawImage()函数启动一个定时器,它将继续在下一个点重新绘制箭头图像,以类似于移动的箭头。现在我有几个问题:

在运行应用程序时,没有调用

  1. OnDrawItem (类似于OnPaint())。我怎么做呢?
  2. 作为调用Invalidate()导致调用OnPaint()事件,它调用OnPaint(),有没有方法调用'DrawItem‘事件,从而可以调用OnDrawItem()?

谢谢,RPS

EN

回答 1

Stack Overflow用户

发布于 2011-07-13 13:26:54

您做错了,DrawItem事件只用于自定义绘制选项卡,而不是选项卡页。只需实现选项卡页的画图事件即可。一定要使用交给您的e.Graphics进行绘图。

代码语言:javascript
复制
...
this.tabPage1.Paint += this.OnDrawPage;
...

private void OnDrawPage(object sender, PaintEventArgs e)
{
    DrawArrowImage(e.Graphics);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6679535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档