C# 窗体程序自定义类 调用form中的方法

问题描述

我在窗体中弄了一个文本框新建一个类做一些操作我想把这些操作的过程输出到这个文件框中即调用下面这个在From中的方法:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}publicvoidShowInfo(stringInfo){textBox1.AppendText(Info);textBox1.AppendText(Environment.NewLine);textBox1.ScrollToCaret();}}自定义的cs类调用form中的ShowInfo()不能使用new

解决方案

解决方案二:
把问题发去C#专区啊亲,这是C/C++区
解决方案三:
你最好不要在类里面控制UI组件,你可以通过自定义事件(委托)去让form绑定事件
解决方案四:
引用2楼bdmh的回复:

你最好不要在类里面控制UI组件,你可以通过自定义事件(委托)去让form绑定事件

怎么实现求具体的代码我的目的就是想在窗体上显示当前所进行的操作(类似日志窗口)
解决方案五:
不知道你要做什么程序具体需求是什么不过我到时经常直接弹出一个控制台窗口显示日志[DllImport("kernel32.dll")]publicstaticexternIntPtrAllocConsole();然后调用AllocConsole()就可以弹出控制台窗口了然后程序里面直接用Console.Wr....就可以了

解决方案六:
没有看到你的自定义类也没看到对Form1.ShowInfo的调用
解决方案七:
一般是上层调用底层的。窗体应该是最上层的,去调用底层的数据和方法。楼主,你的思考方法存在问题。应该在窗体中调用你底层类的方法比如form1中stringresult=TestClass.Test();然后将result赋值给控件。而不是说,底层类去调用上层类的方法。
解决方案八:
staticForm1Instance;这个思路能满足吗
解决方案九:
引用5楼xuzuning的回复:

没有看到你的自定义类也没看到对Form1.ShowInfo的调用

我是不知道怎么调用不知道写才问的求实现代码
解决方案十:
引用4楼crystal_lz的回复:

不知道你要做什么程序具体需求是什么不过我到时经常直接弹出一个控制台窗口显示日志[DllImport("kernel32.dll")]publicstaticexternIntPtrAllocConsole();然后调用AllocConsole()就可以弹出控制台窗口了然后程序里面直接用Console.Wr....就可以了

我是这样的话我直接输出就可以了我是想在窗体控件上面输出
解决方案十一:
publicclassTest{//你的自定义类publicdelegatevoidXXXEventHandler(objectobj,XXXEventArgse);publiceventXXXEventHandlerXXX;//XXX是事件名字protectedvirtualvoidOnXXX(XXXEventArgse){if(this.XXX!=null)this.XXX(e);}//在你需要输出日志的地方this.OnXXX(newXXXEventArgs("yourlog"));publicclassXXXEventArgs:EventArgs{privatestring_Text;publicstringText{get{return_Text;}}publicXXXEventArgs(stringstrText){this._Text=strText;}}}//====调用Testt=newTest();t.XXX+=newXXXEventHandler(test_XXX);privatevoidtest_XXX(objectobj,XXXEventArgse){//这里事件会被触发自己YY吧}

不是让你的类去调用窗体而是应该在你类里面提供一个事件让别的东西来绑定
解决方案十二:
把Form传给你的类就行了classXXX{privateForm1form1;publicXXX(Form1form1){this.form1=form1;}......form1.ShowInfo("xxxx");......}

时间: 2024-07-28 20:39:30

C# 窗体程序自定义类 调用form中的方法的相关文章

c#窗体程序主窗口中tabPage中显示子窗口中控件tabPage不能显示第二页

问题描述 c#窗体程序主窗口中tabPage中显示的子窗口中控件tabPage不能显示第二页1,主窗口FROM1中有一个控件tabPage,用如下代码把窗口FROM2显示到主窗口FROM1的tabPage中来 from2f=newfrom2();f.TopLevel=false;f.Show();f.Parent=this.tabControl1.SelectedTab;2,但是子窗口的tabPage只能显示第一页的内容,第二页的显示不了,用弹出窗口就能正常显示第二页.3,第二页的内容其实有如下

i-封装一个类库,怎样调用nsobject中的方法创建一个视图并进行跳转

问题描述 封装一个类库,怎样调用nsobject中的方法创建一个视图并进行跳转 如题:我想知道的是在NSObject这个类中的方法该怎么实现?需要用到什么,求具体代码讲解!!!坐等~~~~~~ 解决方案 参考:http://www.2cto.com/kf/201110/108584.html

我想咨询下如何在UI层界面中调用DAL中的方法

问题描述 我想咨询下如何在UI层界面中调用DAL中的方法,学习3层我想在原开始层ui层调用DAL层中的方法,知道这样做不合理但是不会调用把DAL可以NEW出来但是在使用方法的时候不能使用不知道是什么问题·. 解决方案 解决方案二:不能使用,是神马意思?解决方案三:如果你需要跨层调方法,那你应该定义成静态的..然后添加引用添加using什么的都要加才行..不过不推荐你这样..这样等于你第一层直接和第3层发生关系了解决方案四:那三层架构是必须要层层递进吗,有没有关于三层架构的资料推荐的书籍解决方案五

iOS重写父类中的方法时要先调用父类中的方法的原因

现有两个类: 1.Object001继承自NSObject #import <Foundation/Foundation.h>   @interface Object001 : NSObject   //Object001的头文件,我只是在这里面声明了个方法 -(void)printfString;   @end   #import "Object001.h"   @implementation Object001   //Object001的实现文件,我实现了声明的pri

js调用Flex中的方法并向flex中传参及flex调用js示例

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra

[急]asp中调用javascript中的方法

问题描述 1.vs2008模板中JScript文件与Javascript是否一样,有没有区别2.如何创建.js文件(怎么在里面写的方法,页面不能调用)functionGetPic(){varm=10;varn=Math.floor(Math.random()*m+1);if(true){document.write("<imgsrc='include/img/top"+n+".gif'/>");}}3.如何调用.js文件中的一个方法...如果我要在一个&

Anroid 求解答代码中如何获取到抽象类的对象,从而调用抽象类中的方法。(急)

问题描述 Anroid 求解答代码中如何获取到抽象类的对象,从而调用抽象类中的方法.(急) public abstract class DataSource { protected static DataSource me; public static DataSource getInstance() { if (me == null) {} try { if (me == null) { //下面这一行代码在Application中是空实现 MyApplication.getInstance(

js调用Flex中的方法并向flex中传参及flex调用js示例_Flex

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra

托管C++调用DLL中的方法时遇到yield时该如何? [问题点数:40分]

问题描述 假设className,methodName是参数被传入我用下面的代码调用了某个DLL中的方法Assembly^dllAssembly=Assembly::LoadFrom(dllPath);array<System::Type^>^selectType=dllAssembly->GetTypes(className);MethodInfo^selectedMethod=selectType->GetMethod(methodName);System::Object^in