news 2026/5/12 20:49:35

低代码C#上位机开发:工业控件库+配置化设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
低代码C#上位机开发:工业控件库+配置化设计

低代码C#上位机开发:工业控件库+配置化设计

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace IndustrialControlLibrary
{
// 工业控件基类
public class IndustrialControl : UserControl
{
public string ControlID { get; set; }
public string DisplayName { get; set; }
public bool IsEditable { get; set; } = true;

public event EventHandler ValueChanged;

protected virtual void OnValueChanged()
{
ValueChanged?.Invoke(this, EventArgs.Empty);
}

public virtual object GetValue() => null;
public virtual void SetValue(object value) { }
}

// 按钮控件
public class IndustrialButton : IndustrialControl
{
private Button button;

public IndustrialButton()
{
button = new Button
{
Dock = DockStyle.Fill,
BackColor = Color.LightBlue,
ForeColor = Color.Black
};
button.Click += (s, e) => OnValueChanged();
Controls.Add(button);
}

public override object GetValue() => button.Text;
public override void SetValue(object value)
{
if (value is string text)
button.Text = text;
}
}

// 显示器控件
public class IndustrialDisplay : IndustrialControl
{
private Label label;

public IndustrialDisplay()
{
label = new Label
{
Dock = DockStyle.Fill,
TextAlign = ContentAlignment.MiddleCenter,
BackColor = Color.Black,
ForeColor = Color.Lime,
Font = new Font("Consolas", 12)
};
Controls.Add(label);
}

public override object GetValue() => label.Text;
public override void SetValue(object value)
{
label.Text = value?.ToString() ?? "";
}
}

// 输入框控件
public class IndustrialInput : IndustrialControl
{
private TextBox textBox;

public IndustrialInput()
{
textBox = new TextBox
{
Dock = DockStyle.Fill,
TextAlign = HorizontalAlignment.Center
};
textBox.TextChanged += (s, e) => OnValueChanged();
Controls.Add(textBox);
}

public override object GetValue() => textBox.Text;
public override void SetValue(object value)
{
textBox.Text = value?.ToString() ?? "";

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 19:00:19

Open-AutoGLM虚拟化支持深度解析:这4个坑90%的人第一次都会踩

第一章:Open-AutoGLM可以挂虚拟机吗Open-AutoGLM 是一个基于 AutoGLM 架构的开源项目,旨在实现自动化语言模型推理与任务调度。由于其轻量级设计和模块化架构,该系统具备在虚拟化环境中部署的能力,因此可以在虚拟机中运行。部署环…

作者头像 李华
网站建设 2026/5/13 8:42:28

如何用Open-AutoGLM在7天内搭建自主决策Agent系统?

第一章:Open-AutoGLM与自主决策Agent的演进Open-AutoGLM 作为新一代开源大语言模型框架,推动了自主决策 Agent 技术的实质性突破。其核心在于将生成式语言模型与环境感知、目标规划和执行反馈机制深度融合,使智能体能够在复杂动态环境中实现闭…

作者头像 李华
网站建设 2026/5/13 10:20:39

互联网大厂Java求职面试实录:Spring Boot与微服务在电商场景中的应用

互联网大厂Java求职面试实录:Spring Boot与微服务在电商场景中的应用 本文通过一场互联网大厂Java开发岗位的面试对话,展现了面试官与求职者谢飞机之间的问答互动。面试围绕电商场景展开,涵盖Java SE、Spring Boot、微服务架构、数据库ORM、消…

作者头像 李华
网站建设 2026/5/11 10:53:28

你真的会用Open-AutoGLM吗?90%开发者忽略的7个关键细节

第一章:你真的了解Open-AutoGLM吗?Open-AutoGLM 是一个开源的自动化语言模型生成框架,专注于提升大语言模型在代码生成、任务编排与自然语言理解中的自主性。它结合了提示工程、思维链(Chain-of-Thought)与工具调用机制…

作者头像 李华
网站建设 2026/5/13 15:32:04

基于 PLC 的卷扬机控制系统设计

第一章 系统方案规划 本系统以 “安全吊运、精准调速、过载防护” 为核心目标,采用 “PLC 变频器 编码器” 架构,实现工业卷扬机(如矿山提升、建筑吊装)的起升 / 下降控制、速度调节、位置限位及故障保护,适配 5-20 …

作者头像 李华