c#.Net 中的绘制事件

发布于 2024-11-06 19:22:28 字数 208 浏览 1 评论 0原文

我的应用程序中有以下控件,

  • 用户控件由面板和
  • “打开”按钮 组成 我使用 Paint 事件在用户控件上绘制图像(使用 OpenFileDialog 浏览和选择)。对于第一张图像来说效果很好。如果我使用 OpenFileDialog 打开第二个图像,则 OpenFileDialog 大小的部分不会显示在控件中。使用 Paint 事件有问题吗?

I have the following controls in my application,

  • A user control consists of a panel
  • An 'Open' button
    I use Paint event to draw the image(browsed and selected using OpenFileDialog) on the user control. It works fine for first image. If I use the OpenFileDialog to open second image, the part with the size of OpenFileDialog is not shown in the control. Is it problem using with Paint event ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

流年已逝 2024-11-13 19:22:28

将此用于您处理其绘制事件的控件。如果该控件是您的用户控件
只需在对话框之后执行即可:

myUserControl.Invalidate()

Invalidate 方法自动再次调用指定控件的绘制事件。

use this for control that you handle its paint event.if the control is you usercontroll
Just do it after dialog:

myUserControl.Invalidate()

Invalidate method calls paint event for specified control again automatically.

九厘米的零° 2024-11-13 19:22:28

我认为您必须在 OpenFileDialog 关闭后手动调用面板的更新方法。

I think you have to manually call the update method of your panel after the OpenFileDialog is closed.

甜柠檬 2024-11-13 19:22:28

我认为这样更好:

//you have a picturebox in the form pictureBox1
// openFileDialog ofd

if (ofd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
    this.pictureBox1.Image = new BitMap(ofd.FileName);
}

I think this is better:

//you have a picturebox in the form pictureBox1
// openFileDialog ofd

if (ofd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
    this.pictureBox1.Image = new BitMap(ofd.FileName);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文