C#:如何将文本附加到类中表单上的文本框?

2023-12-11

我有一个名为“Form1.cs”的表单,它调用一个我们将称为“Class1.cs”的类,以及另一个名为“Form2.cs”的表单。如果 Form2 打开,Class1 中的子例程需要更新 Form2 中的文本框。文本需要在附加到文本框中的当前文本后出现,以便实时更新。我不知道如何进行这项工作。我尝试了很多方法,他们没有给我错误,但他们也不将文本写入文本框。

这里的每个请求是我当前的代码。请记住,这是一个测试项目,用于在将其实施到实际项目之前解决这一问题。

Form1.cs 中的代码

namespace Test
{
    public partial class Form1 : Form
    {
        Form2 cs_form2 = new Form2();
        Class1 cs_class1 = new Class1();
        public Form1()
        {
            InitializeComponent();

        }
        public void button1_Click(object sender, EventArgs e)
        {
            cs_class1.Writelog();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            cs_form2.Show();
        }
        public void writeToTextbox()
            {
                i = 0;
                while(i<=10)
                {
                    cs_form2.testTextBox.AppendText("still works");
                    i++;
                }
            }
    }
}

Form2.cs 中的代码

namespace Test
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void clear_Click(object sender, EventArgs e)
        {

            testTextBox.Text = "";
        }

        public void AppendText()
        {
            testTextBox.AppendText("asklvhslieh");
        }
    }
}

1 类代码

namespace Test
{
    class Class1
    {
        Form2 cs_form2 = new Form2();

        public void Writelog()
        {
            cs_form2.testTextBox.AppendText("asg");
        }
    }
}

EDIT: 通过写作new Form2(),你的代码在Class1正在创建一个新实例Form2.
该实例与创建的其他实例没有任何关系Form1(也可以通过写new Form2())实际上是可见的。
你需要给予Class1的现有实例Form2,也许使用静态属性(如下所述)。


Pre-Edit

要将文本附加到文本框,您应该调用AppendText method.

要在之外做到这一点Form2,你应该做一个public方法上Form2那个叫AppendText.

例如:

partial class Form2 : Form {
    ...
    public void AppendMyText(string text) {
        myTextbox.AppendText(text);
    }
    ...
}

要在中调用此方法Class1,您需要引用Form2 object.
如果你只有一个Form2一次,您可以创建一个静态属性,如下所示:

partial class Form2 : Form {
    static Form2 instance;
    public static Form2 Instance { get { return instance; } }

    protected override void OnShown(EventArgs e) {
        base.OnShown(e);
        instance = this;
    }
    
    protected override void OnClosed(EventArgs e) {
        base.OnClosed(e);
        instance = null;
    }

In Class1(或其他任何地方),然后你可以写

if (Form2.Instance != null)
    Form2.Instance.AppendMyText(someString);

请注意,您需要在 UI 线程上执行此操作;如果你在后台线程上运行,你可以调用BeginInvoke.

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

C#:如何将文本附加到类中表单上的文本框? 的相关文章

  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 如何在另一个应用程序中挂钩 api 调用

    我正在尝试挂钩另一个应用程序的 ExtTextOut 和 DrawTextExt GDI 方法调用 我知道我需要使用 GetProcAddress 来查找 gdi32 dll 中那些方法的地址 并用我的函数的地址覆盖我想要挂钩的进程中的地址
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • MS Office PIA“向后兼容性”

    我已经成功完成了与 MS Word 集成的 Windows 窗体应用程序 该应用程序写入 Word 模板中的合并字段 我使用 MS Word 2007 制作了该模板 但以兼容模式将其保存为 97 2003 dot 文件 由于我安装了 Off
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 与 White 的集成测试[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有人有白色框架的经验吗 www co
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • C 中的逻辑运算不符合预期

    有人可以解释一下以下代码的功能吗 include
  • 如何在CSS中绘制循环箭头?

    如何使用 CSS 在中心绘制循环箭头和文本 如下图所示 我尝试过创建曲线箭头 但我不知道如何使其看起来像我想要的那样 arrow width 200px height 200px border 6px solid border radius
  • 通过 setup.exe 创建日志的 msiexec 参数不起作用

    我正在尝试从我的安装中获取使用以下命令的日志setup exe 我可以得到一个日志setup exe V l v c temp installlog txt 但我想通过x参数以及获取 额外的调试信息 当我尝试时setup exe V l v
  • 如何根据 swift 3 中的数组选择复选标记?

    我有一个数组 其中选定的名称将被存储并传递到视图控制器之前 当我需要转到上一个视图控制器时 则需要选择先前选择的复选标记 但在这里它启用了最后一个选定的元素 唯一的问题是如果我选择三个 那么它不是选择三个 它只是检查标记最后一个元素 但我需
  • C# 不通过返回类型推断重载方法

    我正在编写一个 C 程序来抓取目录并提供最后 CSV 行中的日期小于当前日期的文件列表 由于这是一个程序 因此我并没有真正花费太多时间使代码变得非常干净或任何东西 但这只是一个意见问题 我想 奇怪的是下面的一组代码片段 三个静态方法都在同一
  • AngularUI - 兼容的浏览器

    我尝试打开 AngularUI 网站 http angular ui github io 在 IE8 中 UI 在 IE8 中无法正确呈现 在最新版本的 chrome firefox 中工作正常 这促使我搜索 AngularUI 模块的浏览
  • IndexError:列表赋值索引超出范围 - 使用数组的 Python

    我最近开始使用 python 但对于该语言的很多东西我仍然是新手 这段代码应该打印一系列行 例如 47 815 47 54 48 065 57 45 我从几个文本文件 称为 2t1 2t19 3t1 3t19 作为输入以及结束后的文件名 每
  • Cheerio 不会等待正文加载

    我制作了一个非常简单的脚本 它抓取了一个食谱网站以获取标题 准备时间和成分 除了脚本无法抓取数组的每一页之外 一切工作正常 有时我得到 4 个 有时 2 个 有时甚至 0 个 看来脚本不会等待主体完全加载 我完全知道 Cheerio 不理解
  • 带有被安全/ASR 规则阻止的宏的工具 - 如何修复?

    我有一个 Excel 工具 xlsm 文件 我正在向用户传播 他们从我们的网站下载该文件 然后就可以使用它 简而言之 该工具有自己的菜单栏和一堆宏 例如进行计算 从 API 提取数据等 我使用 Unviewable 对用户隐藏代码 我用证书
  • 是否可以以编程方式检测 元素中的插入符位置?

    假设有一个常规的
  • 在python中比较两个字典以获得相似键的最大值

    我有这两个命令 a test1 90 test2 45 test3 67 test4 74 b test1 32 test2 45 test3 82 test4 100 如何提取同一键的最大值以获取新字典 如下所示 c test1 90 t
  • 使用delphi将PNGImage转换为灰度

    你好呀 这是我的代码 procedure TForm4 Button1Click Sender TObject var png TPNGImage data PRGBQarray p tagRGBQuad i o integer begin
  • 在Where 子句或替代选项中使用别名?

    我如何让它工作 它可以在没有Where子句的情况下工作 否则使用Where子句 我会得到明显的错误 但这基本上是需要做的 有人知道如何解决这个问题吗 select ID Name case T N when 1 then City1 whe
  • PUSH 数组 C++?

    如何动态向数组添加值 推送 我可以在 AS3 中执行此操作 但在 C 中找不到它的函数 如果它是静态定义的数组 则不能 如下所示 int array 10 它的大小是固定的 但是 如果您使用诸如std vector你会用 std vecto
  • D3 带边界框的力定向布局

    我是 D3 新手 在设置力导向布局的边界时遇到困难 我已经设法 从示例中 拼凑出我想要的内容 但我需要包含图表 在刻度函数中 变换 翻译将正确显示我的图形 但是当我将 cx 和 cy 与 Math max min 一起使用时 请参阅注释代码
  • 犰狳中的 Rcpp 糖命令

    我正在尝试使用ifelse Rcpp 糖的命令arma vec 代码失败并出现错误 ifelse was not declared in this scope 我找不到解决方案 下面是一个简单的示例代码 导致错误 include
  • 安装 Visual Studio 2015 RTM 后未加载包

    问题 我安装了 Visual Studio 2015 RC 并在其上安装了 Visual Studio 2015 RTM 我在互联网上找不到任何表明您不能这样做的内容 我不知道这是否与问题相关 不幸的是 当我重新启动后第一次启动 Visua
  • 我需要知道用户单击按钮时是否按下(按下)某个键

    在 Flutter 桌面应用程序中 我想知道当用户用鼠标单击按钮时 他们是否也按住了某个键 如 Shift Control Alt 等 如何才能做到这一点 EDIT 我最初的问题不够清楚 我有一个动态复选框列表 我想使用 SHIFT 单击来
  • 我应该使用哪种数据结构从 CSV 中搜索字符串?

    我有一个 csv 文件 其中包含近 200000 行 其中包含两列 姓名和工作 然后 用户输入一个名称 例如 user name 我必须搜索整个 csv 以查找包含模式 user name 的名称 最后将输出打印到屏幕 我在 Java 中使
  • C#:如何将文本附加到类中表单上的文本框?

    我有一个名为 Form1 cs 的表单 它调用一个我们将称为 Class1 cs 的类 以及另一个名为 Form2 cs 的表单 如果 Form2 打开 Class1 中的子例程需要更新 Form2 中的文本框 文本需要在附加到文本框中的当