首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >画布仪表板应用程序winforms

画布仪表板应用程序winforms
EN

Stack Overflow用户
提问于 2012-03-29 23:12:45
回答 1查看 239关注 0票数 1

我希望构建一个应用程序,最终用户可以在运行时将控件拖放到窗体上。我在这个主题上搜索了很多东西,但不确定这种类型的应用程序到底是什么类型的。我搜索过画布应用程序、仪表板应用程序、组件应用程序、小部件、可视化编程和图表。我的设想与Visual风格的界面有点不同,因为我认为每个组件都可以拖到一个表面上,而不是窗口。我已经看到这是使用网格布局或画布样式布局完成的。我并不像在图表中那样需要“连接器”,但是我想要“表面”功能。

我的问题是:

  1. 是否为允许用户在运行时将控件拖放到表面的应用程序有一个特定的名称?
  2. --
  3. --第三方、开源和商业组件为WInforms、
  4. 提供了此功能--第三方、开源和商业组件为WPF、
  5. 和WPF提供了此功能。这是画布的“内置”功能吗?
EN

回答 1

Stack Overflow用户

发布于 2012-03-31 16:27:33

在Winforms中,可以通过在单击事件处理程序时将事件处理程序添加到控件中,然后通过在窗体的MouseMove事件中添加事件处理程序,将控件的位置设置为当前鼠标位置,从而创建类似表面/结构的画布。

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    bool isDraggable = true;
    private void mycontrolClick(object sender, EventArgs e)
    {
        isDraggable = !isDraggable;           
    }

    private void Form_MouseMove(object sender, MouseEventArgs e)
    {
        if (isDraggable)
        {

            Point newLocation = new Point(e.X, e.Y);
            myControl.Location = newLocation;
        }
    }

其他步骤是为此目的向控件添加一个可拖动的图标(点击测试)区域(或模式),并可能添加某种形式的碰撞检测,比如边界框,这样控件就可以互相推送而不是覆盖。最后一步是添加一个序列化例程来保存画布的位置。此外,它可能需要气泡事件/鼠标事件。

另一个解决方案是创建一个传统的MDI应用程序。

http://msdn.microsoft.com/en-us/library/aa984330%28v=vs.71%29.aspx

使用画布结构的好处是,单个控件可以自定义绘制,因此当使用MDI容器进行比较时,可以使用“轻量级”(房地产方面)。甚至可以使用设计模式来布局仪表板,然后切换到运行时模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9938498

复制
相关文章
如何根据特定值找到IDOC
IDOC的官方名称叫Intermediate Document,用于两个模块,或者两个系统间交换信息。
用户5495712
2020/10/22
1.8K0
如何根据特定值找到IDOC
GitHub 如何从特定的版本中创建分支
在 Git 的操作中,我们可能需要从特定的版本中创建分支。 首先需要的第一步是活的当前项目的提交历史列表。 然后在特定的版本后,选择 <> 标记,进入这个版本的提交历史。 在左上角上,选择提交历史。 在弹出的对话框中输入分支名称。 在你输入名称后,将会提示你创建分支。 这个的意思是从当前的提交版本中创建一个分支。 然后可以从上面的提交中创建一个分支。 在创建完成后,可以从分支列表中查看创建的分支列表。 https://www.ossez.com/t/github/13414
HoneyMoose
2021/04/02
6.8K0
GitHub 如何从特定的版本中创建分支
如何从列表中获取元素
观察URAM的物理管脚,不难发现A/B端口都有相应的地址、使能、读写控制信号。与BRAM不同的是URAM的读写使能信号是同一个管脚RDB_WR_A/B,其为0时执行读操作,为1时执行写操作,这意味着一旦A/B端口独立,同一端口的读写操作就无法同时发生,因此,如果采用上一篇文章中介绍的方法将其配置为两个独立的单端口RAM,其读写行为与常规的单端口RAM是不同的,进一步而言,此时的读写行为类似于NO_Change模式。
Lauren的FPGA
2019/10/30
17.3K0
js中如何判断数组中包含某个特定的值_js数组是否包含某个值
array.includes(searchElement[, fromIndex])
全栈程序员站长
2022/09/27
18.5K0
使用GuzzleHttp从HTTP调用获取cookie的值
- 发送登录请求以后想看Cookies的值,文档只提供直接使用Cookie没有查看值的介绍,下面给大家讲一下实现代码。 实现代码
axiomxs
2021/11/26
4.5K0
jmeter使用Beanshell预处理器从指定列表中获取随机值
变量mynation从列表{"china", "US", "UK"}中随机取值 String[] nation = new String[]{"china", "US", "UK"}; Random random = new Random(); int i = random.nextInt(nation.length); vars.put("mynation",nation[i]); 在需要使用的 地方直接 ${mynation} 引用即可 如果要设置两个变量且变量值随机但不重复,可以通过两个列表放置不同值
流柯
2018/08/31
4.6K0
WordPress 技巧:如何从 WordPress 页面菜单中移除特定页面
从 wp_list_pages() 中生成的页面菜单中移除特定的页面是非常简单的,只需要把下面代码加入到主题的 functions.php 文件中:
Denis
2023/04/15
1.9K0
如何在Mule 4 Beta中实现自动流式传输
原文地址:https://dzone.com/articles/how-automatic-streaming-in-mule-4-beta-works
Steve Wang
2018/06/07
2.2K0
【说站】Springboot如何从yml或properties配置文件中获取属性值
配置文件如下: server.port=8081person.name=孙超person.age=22person.birth=2022/12/12person.map.k1=k1person.list=a,bc,cperson.dog.name=xiaogouperson.dog.age=2 @Value 获取配置文件的值 package com.sunchao.demo.bean;import org.springframework.beans.factory.annotation.Value;i
很酷的站长
2022/11/24
7.9K0
【说站】Springboot如何从yml或properties配置文件中获取属性值
如何在Java中获取context-param值?
“ context-param”标记在“ web.xml”文件中定义,并且为整个Web应用程序提供参数。
全栈程序员站长
2022/09/13
2.8K0
RabbitMQ(从安装到使用)
  RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
Wyc
2018/09/11
5220
RabbitMQ(从安装到使用)
使用 Python 删除大于特定值的列表元素
Lambda 函数,通常称为“匿名函数”,与普通的 Python 函数相同,只是它可以在没有名称的情况下定义。def 关键字用于定义普通函数,而 lambda 关键字用于定义匿名函数。但是,它们仅限于单一的表达方式。与常规函数一样,它们可以接受多个参数。
很酷的站长
2023/02/23
10.7K0
使用 Python 删除大于特定值的列表元素
如何使用AndroidQF快速从Android设备中获取安全取证信息
AndroidQF,全称为Android快速取证(Android Quick Forensics)工具,这是一款便携式工具,可以帮助广大研究人员快速从目标Android设备中获取相关的信息安全取证数据。该工具基于Snoopdroid项目实现其功能,利用的是官方ADB源码,并且使用了Go语言进行重构。
FB客服
2021/12/27
7.1K0
如何使用AndroidQF快速从Android设备中获取安全取证信息
获取listbox中的值
List<string> list=new List<string>();             for (int i = 0; i < lbLog.Items.Count - 1; i++)             {                 list.Add(lbLog.Items[i].ToString());             }
2018/09/03
6.2K0
Spring 如何从 IoC 容器中获取对象?
前面几篇文章主要分析了 Spring IoC 容器如何初始化,以及解析和注册我们定义的 bean 信息。
WriteOnRead
2021/03/12
9.7K0
Spring 如何从 IoC 容器中获取对象?
练习4—寻求特定值
题目 编写程序,从键盘上输入N个学生的考试成绩存入一维数组中,求该数组中成绩的最高分、最低分及平均分并输出到屏幕。 解题步骤 (1)定义常量N值; (2)建立用于存放数据的一维数组; (3)接收用户输入; (4)查询 / 计算特定值; (5)输出结果; Java import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner input = ne
攻城狮杰森
2022/06/03
3650
使用rvest从COSMIC中获取突变表格
在学习如何爬取网页之前,要了解网页本身的结构。 用于构建网页的主要语言为 HTML,CSS和Javascript。HTML为网页提供了其实际结构和内容。CSS为网页提供了其样式和外观,包括字体和颜色等细节。Javascript提供了网页功能。在此,我们将主要关注如何使用R包来读取构成网页的 HTML 。
生信技能树
2022/04/14
1.9K0
使用rvest从COSMIC中获取突变表格
如何使用DNS和SQLi从数据库中获取数据样本
泄露数据的方法有许多,但你是否知道可以使用DNS和SQLi从数据库中获取数据样本?本文我将为大家介绍一些利用SQL盲注从DB服务器枚举和泄露数据的技术。
FB客服
2019/03/08
11.5K0
如何使用DNS和SQLi从数据库中获取数据样本
如何使用特定显卡跑pyTorch
如何使用特定显卡跑pyTorch。方法一:改变系统变量使得仅目标显卡可见:export CUDA_VISIBLE_DEVICES=0 #这里是要使用的GPU编号,正常的话是从0开始然后再运行pyTorch即可。方法二:使用torch.cuda接口:#在生成网络对象之前:torch.cuda.set_device(0)方法三:使用多pytorch的并行GPU接口:net = torch.nn.DataParallel(model, device_ids=[0])方法四:初始化模型时net = Net.cuda
狼啸风云
2020/02/13
2.9K0
点击加载更多

相似问题

从Mule中的结果集中获取特定值

10

RabbitMQ与Mule相比如何?

34

从Mule中的JSON获取数据值

20

如何在mule 4中从json中获取数组值

11

在Mule 4中如何从xml中获取类型值

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文