Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 处理线条自定义控件的最佳方法是什么?_Visual Studio 2010_C# 4.0_Custom Controls_Drawing2d - Fatal编程技术网

Visual studio 2010 处理线条自定义控件的最佳方法是什么?

Visual studio 2010 处理线条自定义控件的最佳方法是什么?,visual-studio-2010,c#-4.0,custom-controls,drawing2d,Visual Studio 2010,C# 4.0,Custom Controls,Drawing2d,我正在编写一个数据库图表工具(VS2010,C#4.0),我遇到了一个问题。我已经编写了TableEntity自定义控件,现在需要编写关系控件。但我不确定最好的方法是什么。 据我目前所知,我只能在当前控件的ClientRectangle范围内绘制。因此,如果我要编写一个连接两个表的关系控件,该控件必须足够大以包含两个端点,或者需要多个物理控件来表示一个逻辑控件 如果控件很大,它们会在几个地方重叠,我需要一个详细的HitTest来确定用户正在单击什么(以及一个消息传递系统,用于将单击传递给下面的控

我正在编写一个数据库图表工具(VS2010,C#4.0),我遇到了一个问题。我已经编写了TableEntity自定义控件,现在需要编写关系控件。但我不确定最好的方法是什么。 据我目前所知,我只能在当前控件的ClientRectangle范围内绘制。因此,如果我要编写一个连接两个表的关系控件,该控件必须足够大以包含两个端点,或者需要多个物理控件来表示一个逻辑控件

如果控件很大,它们会在几个地方重叠,我需要一个详细的HitTest来确定用户正在单击什么(以及一个消息传递系统,用于将单击传递给下面的控件,以便他们进行HitTest)

如果使用多个物理控件,如何将它们表示为单个逻辑控件?当表实体移动时,重塑它们是否会太慢

有没有一种我根本没有想到的“正确”方法


提前感谢您的帮助。

正确的方法是不要使用控件。只需在容器的绘制事件中绘制所有内容。IsVisible使命中测试变得很容易。所以,要确定鼠标是否在桌子上,我需要遍历容器上的每个图形?每次鼠标移动事件?这真的是最好的方法吗?你只要让一个人快乐就行了。谁也看不出一微秒和50毫秒之间的差别。如果你需要超过50毫秒,那么你做了一些非常错误的事情。