【问题标题】:C# what object can be used like Picturebox in VB6? where its possible to put objects to it?C#什么对象可以像VB6中的Picturebox一样使用?在哪里可以放置对象?
【发布时间】:2011-05-16 09:55:05
【问题描述】:

标题说明了一切。

如果有什么我可以使用的,我只是在徘徊

在vb6中,图片框可以像容器一样使用

例子。我可以将文本框的.. 命令按钮放在图片框内。

感谢任何建议..

【问题讨论】:

标签: c# containers


【解决方案1】:

就其作为容器的使用而言,最接近 VB6 的图片框的是面板。 Vb6 面板控件不是很好,我一直使用图片框,但 C# 面板几乎为您提供了 VB6 的图片框所做的一切,包括背景图像。您的情况的主要区别是 C# 面板不允许在其上绘图。也就是说,你可以在里面放图片,但不能用Circle、Line、PSet等来画。

还请查看您的工具箱。根据您工作的环境,您可能会看到您的控件分组在“Common Controls”、“Containers”、“Components”等下。查看“Containers”下的哪些控件可以用作容器。

您还可以将其他控件用作容器,例如图片框。对于 Picturebox,您可以在运行时将其设置为控件的父级。我认为“MyControl.Parent = Picturebox1;”应该管用。但是在设计期间,您不能将控件放在图片框上以使其成为父级。

最后,您可以创建自定义控件或充当容器的用户控件。作为一个简单的示例,我将展示如何使图片框充当容器,您可以在设计时将控件拖放到该容器上。

using System.Windows.Forms;
using System.ComponentModel;
using System.ComponentModel.Design;

namespace Whatever
{
  [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design",
       typeof(IDesigner))] 
  public class MyPicContainer : PictureBox
  {
  }
}

在这里,我创建了一个自定义控件,方法是创建一个继承自现有控件的类。然后我通过设置适当的属性使其表现得像一个设计时容器。我还必须添加一些用法。

现在您可以像任何其他控件一样将 MyPicContainer 粘贴在表单上。它的行为就像一个图片框,因为它是一个图片框,但同时它的行为就像任何其他容器控件一样。

但除非您想在运行时在其上绘制线条和圆圈,否则您要查找的控件是 Panel。

【讨论】:

  • 奇怪的投反对票,这篇文章是准确的。使用面板的 Paint 事件来绘制 btw。注意它不是双缓冲的。
猜你喜欢
  • 2015-06-30
  • 2020-09-06
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多