无法访问类中的 Winforms 控件

2023-12-25

我目前正在使用 Visual studio 2008 使用 C# 开发一个小型 Windows 窗体项目。 我已向项目添加了一个自定义类,但在该类中我无法访问表单控件(如列表框、文本框、按钮)以便以编程方式更改其属性。

该类文件包含 using system.windows.forms,并且所有文件都位于同一命名空间中。 令人惊讶的是,我也无法访问 form1 类本身中的控件,除非我在类中创建一个方法,然后智能感知弹出各种控件的名称。

然而,在自定义类中,智能感知根本不显示控件的名称。

如果有人能解释为什么会发生这种情况,我将不胜感激。

Thanks


封装意味着你单独的类不应该直接与控件对话。相反,您应该在(外部)公开属性和方法Control- 例如:

public string TitleText {
    get {return titleLbl.Text;}
    set {titleLbl.Text = value;}
}

对于更复杂的操作,最好使用方法;属性适用于离散值的简单读/写。

这提供了多种优点:

  • 如果需要,您可以将详细信息抽象为接口(或类似接口)
  • 您可以更改实现(例如,使用表单的文本作为标题),而无需更改调用代码
  • 它只是......更好;-p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法访问类中的 Winforms 控件 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 如何访问工件的 BUILDNUMBER 是 Visual Studio Team Services 发布管理

    我需要访问 Visual Studio Team Services 发布管理中的工件的内部版本号 以便可以将该值发送到任务 我的工件名称中有一个空格 Production Branch 我一直在阅读以下文档 https www visual
  • SwiftUI 节标题 - 使用非大写?

    创建列表如下 struct ContentView View var body some View List Section header Text Header Text Row 1 Text Row 2 listStyle PlainL
  • 避免重复的浏览器选项卡或窗口 (window.open())

    在 Javascript 中 我们可以使用 window open 打开新的浏览器窗口或选项卡 但如果选项卡已打开 则应仅突出显示该选项卡 它不应该打开重复的选项卡 怎么做 The 第二个参数 https developer mozilla
  • 使用 ggplot facet_grid 在不同条件下绘制相同变量的散点图?

    我想将数据帧的同一列与具有不同行值的点相关联 例如 在iris数据框 我想制作三个散点图进行比较Petal Length of virginica与那个versicolor setosa with virginica and versico
  • 数据库服务器或数据库表中的用户

    我遇到了一个关于客户端服务器应用程序设计的有趣问题 我们有一个基于浏览器的管理应用程序 有许多用户使用该系统 显然 在该应用程序中我们有一个用户管理模块 我一直认为在数据库中拥有一个用户表来保存所有登录详细信息就足够了 然而 一位资深开发人
  • 在java中将HTML表格写入PDF [重复]

    这个问题在这里已经有答案了 可能的重复 将 HTML 文件转换为 PDF https stackoverflow com questions 633780 converting html files to pdf 从 XML 或 HTML
  • 使用变量 self 与 this 之间的区别

    我一直在努力将这些 this 与 bind 方法一起使用以及变量 self this 的使用 在得到两个不同的结果时 所以我错过了一个概念 案例如下 Defining a callback class to use after retrie
  • 使用 posix 而不是 fork/execv 运行 bash

    我有一个 CLI 其中一个命令是进入 Linux bash shell 这是使用 fork 和 execv 执行此操作的代码 if pid fork lt 0 syslog debug LOG ERR Could not fork if p
  • Delphi 和 ADO:日期时间到字符串的转换

    我使用 Delphi 2006 和 ADO 连接到 MS Access 数据库 我检索的一些字段是日期字段 在 Access 中格式为 中日期 即 20 4 2010 但是我必须将它们作为字符串检索 FValue FAccessADOQue
  • 获取父对象的值

    有没有办法从对象的父对象获取键值 在下面的例子中 我想结合urlParent with section const linkItems id 1 name Home Page urlParent home subItems subId 1
  • 应用程序配置错误,无法使用发布密钥哈希进行 Facebook 登录

    我已将 Facebook 集成到我的应用程序中 我用调试密钥哈希测试了我的应用程序在模拟器和我的设备 HTC 中都正常 当我为签名的 APK 尝试发布密钥哈希时 我的设备 HTC One X 中总是出现 应用程序配置错误 无法登录 Face
  • 脚本错误:溢出:'CInt' - VBScript

    将计数器添加到 5 位以上的下一个数字时 有溢出 如果是 5 位数字 则不会出现错误 我用的是VBScript Counter CInt Counter CInt Qty 我想在分子中使用 7 位数字 如何解决这个问题呢 很确定这个问题之前
  • 使用 class-validator 包在 Nest.js 创建用于图像上传的自定义验证器

    我想验证 Nest js 中文件的 mimetype 但我不能 UseInterceptors FileInterceptor image Post upload profile photo async uploadProfilePhoto
  • 为什么 el.style.backgroundImage 在此功能上下文中不起作用?

    我针对这个问题写了一个答案 根据 url 新背景 https stackoverflow com questions 13000944 new background according to url 我在答案中发布的代码是检查 URL 中是
  • 城市飞艇在起飞时坠毁。非法参数异常

    我在 Application onCreate 中的代码 该应用程序崩溃于UAirship takeoff this options 请帮忙 public class LiveVideoApplication extends Applica
  • React:如何仅显示特定 div 的模式弹出窗口

    为了更清楚地说 基本上我想做的就是像亚马逊一样 将会有一堆产品 一旦您单击该产品 只有该产品及其详细信息将显示在弹出模态上 就我而言 我已将 3 个数据存储在一个数组中 我已将其映射出来 这将创建 3div 和 3Modal Popup 每
  • 重新排列字符串中字符的 C# 算法

    我想要一个 C 算法来重新排列长度动态的字符串中的字符 很难找到一个 但我知道一定有一个 该算法必须重新排列元素 以在所有可能的组合中形成新的字符串 例如 cat 会产生以下结果 猫 cta tca tac 行为 atc 这是一个相当常见的
  • 如何挑选出发送到仅采用可变参数的宏的第一个参数

    我尝试获取发送到可变参数宏的第一个实际参数 这是我尝试过的 在 VS2010 中不起作用 define FIRST ARG N N define MY MACRO decltype FIRST ARG VA ARGS 当我查看预处理器输出时
  • Python 中的 MongoDB 通知

    我正在将 MongoDB 与 Python Web 应用程序一起使用 我想知道来自 mongodb 的通知 无论我在 mongodb 中进行了更改 我正在使用代码 from pymongo import Connection import
  • 无法访问类中的 Winforms 控件

    我目前正在使用 Visual studio 2008 使用 C 开发一个小型 Windows 窗体项目 我已向项目添加了一个自定义类 但在该类中我无法访问表单控件 如列表框 文本框 按钮 以便以编程方式更改其属性 该类文件包含 using