如何修复winform中的“由于其保护级别而无法访问”错误?

2023-12-01

我有一个表格类

    partial class ProgressMainForm : Form
    {
      public ProgressMainForm()
      {
        InitializeComponent();
      }
    }

然后是一个使用该类并包含用户的所有功能的类

    public class ProgressForm
    {
        public ProgressMainForm myProgressForm;

        public ProgressForm(string title)
        {
            myProgressForm = new ProgressMainForm();
            myProgressForm.Text = title;
        }

        public void SetProgressBar(int min, int max)
        {
        ....
    }

然后我在我的项目中使用这个 ProgressForm 类,如下所示

            progresswindow = new ProgressForm("Replacing All Strings");

这边走progresswindow仅包含与功能相关的成员ProgressForm所有这些表单成员对用户都是隐藏的。

但有时我需要访问这些表单成员,例如当我需要时Invoke method.

有没有办法制作myProgressForm in ProgressForm用户无需创建即可访问ProgressMainForm public?

或者说这种做法是错误的?


我认为您不应该直接使用表单。如果我正确地阅读了您的设置,您希望在完成某些工作时显示进度指示器。 ProgressForm 应该公开设置计数器并递增它们的方法;当您在另一个线程上运行它时,表单操作应该从 ProgressForm 的方法内部完成。您的调用属于那里,并用合适的方法包装。如果您想更改 ProgressMainForm 的某些视觉属性,请将这些属性中继到 ProgressForm。

要恢复,调用代码除了设置进度边界、开始、设置当前百分比和停止之外,不应该知道 ProgressForm 做了什么。这样,如果您被要求将应用程序移植到另一个 UI 系统,您需要更改的代码量将大大减少。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复winform中的“由于其保护级别而无法访问”错误? 的相关文章

  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在.NET Core上直接调用F#编译器?

    UPD 我想直接从 NET Core SDK 调用 F 编译器 即 fsc 我了解 dotnet build co 但当我只需要编译一个简单的问题时 即 fsc file fs 就足够的情况下 我不想涉及它们 我尝试在 NET Core S
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr

随机推荐

  • Billingservice Android - 无签名

    我遵循了以下很棒的教程 http blog blundell apps com simple inapp billing payment 我已经完成了教程中所说的所有内容 并且已将所有内容重新阅读了 3 遍 但我仍然没有收到签名intent
  • 如何构建 SQL 查询来查找作为两个特定其他对象的父对象的对象?

    假设我有 2 个表 分别称为父表和子表 一个父母可以有 0 到多个孩子 一个孩子可以有 1 到多个父母 如何找到作为两个特定子元素的父元素的所有父元素 例如 假设我有父母 p a p b p c p d 和孩子 c a c b 它们的结构如
  • 连续训练多个序列模型会减慢速度

    我正在使用 Keras TensorFlow GPU 创建时间序列预测模型 我有 100 倍的时间序列 想为每个时间序列训练一个网络 连续运行几个时间序列很好 但一旦我运行 100 倍或 1000 倍 每个模型的训练时间就会缓慢增加 但肯定
  • 如何在java中设置jasper报表的边距?

    如何在java中设置jasper报表的边距 我有 reports jasper 带边距 但是打印时我必须更改边距 JasperPrint setTopMargins myMarginsValue 不起作用 I use JRPrintServ
  • 将字符串转换为元组并添加到元组

    我有一个这样的配置文件 rects rect1 2 2 10 10 rect2 12 8 2 10 我需要循环遍历这些值并将它们转换为元组 然后我需要制作一个元组的元组 例如 2 2 10 10 12 8 2 10 除了使用正则表达式或 i
  • 使用键盘快捷键触发 Silverlight Prism 命令

    有谁知道是否可以通过快捷方式触发 prism 命令 我的意思是我希望能够以声明方式定义命令与键盘快捷键的绑定 例如ClientUI does 有没有用于此目的的开源库 或者也许是代码示例 I found 这个问题但我不认为它回答了我的问题
  • 获取通用 List 中 T 的实际类型

    如何在运行时使用反射获取通用列表中 T 的实际类型 这取决于您到底要问什么 在泛型类型中编写代码时Blah
  • 将动态参数传递给注释

    我想知道是否有可能将动态值传递给注释属性 我知道注释不是为了修改而设计的 但我正在使用休眠过滤器在我的情况下 要放置的条件不是静态的 我认为唯一的解决方案是使用旨在读取和修改字节码的库 例如 Javassist 或ASM但如果有其他解决方案
  • 处理 tw:counturl addthis 插件中的 <

    我有一个 addthis 插件 用于显示我的 blogspot 博客中的推文总数 我这样用 如果我提到 tw counturl my specific blogger url gt 它会显示推文的确切数量 但问题是 在这种情况下我只能使用一
  • ASP.NET Core 6配置-不同环境下的不同数据库

    我想用不同的配置实现不同的数据库连接 即用于测试的测试和用于生产的演示 但遇到了困难 我实在不知道如何制作配置文件 更不知道如何制作连接的依赖 我有一个 用于测试目的 并且它可以工作 但我不知道如何随环境改变它 这正是他们拥有 launch
  • 来自 boost Spirit 解析器的触发警告

    如何在 boost Spirit 解析器中添加警告 Edit 可以报告位置问题 例如 如果我有一个整数解析器 0 gt gt oct int 我希望能够做这样的事情 0 gt gt oct 0 gt trigger warning nega
  • JavaScript 的内置字符串是什么?

    这个问题很难用问题标题来概括 UPDATE我创建了一个 JSFiddle 它根据从此问题中提取的字母从您的输入中构建一个混淆的字符串 您可以访问它here 或者会是gist更容易吗 我最近发现了一些有趣的混淆 JavaScript这个个人资
  • 如何在 dart2js 之后从 Javascript 调用 dart 方法

    我得到了下面的 Dart 脚本 在使用 dart2js 编译 Dart 脚本后 我想通过 JavaScript 访问 hello world 类中的方法 有人知道这是如何工作的吗 我已经知道如何访问 foo 等函数 这不是问题 但它与类和方
  • 快速切换 char{ case "\u{e2}:

    let splitLines line split separator u e2 case u e2 print FoundBadReturn let newText text replacingOccurrences of u e2 wi
  • Spring MVC 的 Swagger 2.0 不起作用

    我有一些使用 Spring MVC 编写的 REST API 我正在尝试将 Swagger2 0 实现到此 我没有使用 Spring Boot 也没有使用 swagger ui 依赖项 我的目标是生成 JSON 格式的 API 文档 我参考
  • 以编程方式删除导航控制器

    该应用程序包含多个导航控制器 下面的例子 NavigationController1 gt ViewController1 gt TabBarController gt NavigationController2 gt ViewContro
  • VBA 数据排序

    我遇到的问题是 有时数据集中缺少整个标题和数据值 因此使用脚本中的最后一行 数据会向上移动一位 例如 如果我在sheet1上完全删除了H11 H12 那么与A11 K11中的数据集关联的H列的值实际上将来自数据集A13 K13 或单元格值H
  • 如何修复 node_modules/@types/moment-timezone/moment-timezone.d.ts(50,73) 中的此错误

    我在 node modules 中遇到错误 我该如何解决这个问题ERROR in node modules types moment timezone moment timezone d ts 50 73 ERROR in node mod
  • Laravel:未定义索引:驱动程序

    我正在使用 Laravel 5 5 我需要动态更改数据库 例如有两个数据库 db1 and db2 这里有张桌子articles在每个数据库中 现在我想复制文章db1 to db2 in env文件 当前数据库是db1 DB DATABAS
  • 如何修复winform中的“由于其保护级别而无法访问”错误?

    我有一个表格类 partial class ProgressMainForm Form public ProgressMainForm InitializeComponent 然后是一个使用该类并包含用户的所有功能的类 public cla