精华内容
下载资源
问答
  • 因此如果其他类中需要调用B类中函数,则需要使用之前A类中创建的第一个B对象,否则如果重新生成一个B对象则会产生B控件没有生成而调用产生的句柄错误, 这种错误是致命的,原本不应该出现这么二的问题,...

    在A类中创建一个B窗体类对象,并显示B窗体后,B窗体上附带的所有控件,以及变量值都归A类中创建的B对象所有,

    因此如果在其他类中需要调用B类中函数,则需要使用之前在A类中创建的第一个B类对象,否则如果重新生成一个B类对象则会产生B类控件没有生成而调用产生的句柄错误,

    这种错误是致命的,原本不应该出现这么二的问题,但是这个问题困扰了我半天,好久没有写mfc代码原因吧,特此谨记,写的有些乱,

    我是看明白了。

    展开全文
  • C# 窗体中一个类中调用一个窗体的控件或方法

    万次阅读 多人点赞 2017-06-17 16:43:03
    设有form1和from2,假如form1调用form2的控件,form1的代码窗口定义一个form2的对象,把你想要调用的form2的控件的属性Modifier改为Publlic就可以form1的窗体调用了。 一种是创建窗体对象的方式,通过对象...

            设有form1和from2,假如form1调用form2的控件,在form1的代码窗口定义一个form2的对象,把你想要调用的form2的控件的属性Modifier改为Publlic就可以在form1的窗体调用了。


    一种是创建窗体对象的方式,通过对象调用控件或方法 。

    例如:

    Form2 frm2 = new Form1();
    frm2.Button; //调用控件
    frm2.Method();  //调用方法



    另一种是不创建窗体对象 


    在Form2类下定义静态变量,构造方法中引用这个Form2

    class Form2: Form
    {
        public static Form2 frm2;
    
        public Form2()
        {
            InitializeComponent();
            frm2 = this;
        }
    
        public void Method()
        {
    
        }
    }


    调用该窗体的控件或方法

    Form2.frm2.Button;
    Form2.frm2.Method();



    展开全文
  • 种是创建窗体对象的方式,通过对象调用控件或方法 另种是不创建窗体对象 窗体下定义静态变量,构造方法引用这个窗体

    一种是创建窗体对象的方式,通过对象调用控件或方法
    例如:

    Form1 form1 = new Form1();
    form1.Button; //调用控件
    form1.Method();  //调用方法

    当然了,控件的Modifiers属性要设置成public


    另一种是不创建窗体对象
    在Form1类下定义静态变量,构造方法中引用这个Form1

    class Form1: Form
    {
        public static Form1 form1;
    
        public Form1()
        {
            InitializeComponent();
            form1 = this;
        }
    
        public void Method()
        {
    
        }
    }

    调用该窗体的控件或方法

    Form1.form1.Button;
    Form1.form1.Method();
    展开全文
  • C#从一个类中调用控制主窗体的控件

    千次阅读 2014-12-12 18:09:41
    方法一: 新建类,和构造函数 ,Form form1为传进来的参数 class ConnectionDeal { public ConnectionDeal(Form form1...窗体中新建一个类的实体并将form传到类中,this代表本窗体 this.Invoke((EventHandler

    方法一:

    新建类,和构造函数 ,Form form1为传进来的参数

     class ConnectionDeal
    {      
            public ConnectionDeal(Form form1)
            {
            
            }
    }

    在主窗体中新建一个类的实体并将form传到类中,this代表本窗体

    this.Invoke((EventHandler)(delegate { connectionDeal  = new ConnectionDeal(this);}));

    将主窗体的通过类中的构造函数将form传到类中

    public ConnectionDeal(Form form1)

    定义变量

    private Form form1;


    然后在构造函数中遍历所有控件,就可以使用form1任何一个控件

    foreach (Control con in form1.Controls)
    {
          if (con.Name.Equals("textBox4"))
           {
                 this.textBox4 = (TextBox)con;
           }
    }
    然后就可以在类中的线程中使用Invoke

     form1.Invoke((EventHandler)(delegate { textBox4.Text = textBox4.Text + zongshu + "\r\n"; }));


    代码如下:

    主窗体代码

    this.Invoke((EventHandler)(delegate { connectionDeal  = new ConnectionDeal(tcpClient,this);}));
    类中代码

    textBox4可以使用

    namespace WindowsFormsApplication1
    {
        class ConnectionDeal
        {
            private TcpClient tcpClient;
            private NetworkStream networkStream;
            private TextBox textBox1;
            private TextBox textBox4;
            private Form form1;
    
            byte[] readData = new byte[1024];
            //byte[] sendData = new byte[10];
            
            Thread readIn;
    
            public ConnectionDeal(TcpClient tcpClient,Form form1)
            {
                foreach (Control con in form1.Controls)
                {
                    if (con.Name.Equals("textBox4"))
                    {
                        this.textBox4 = (TextBox)con;
                    }
                }
                this.tcpClient = tcpClient;
                this.form1 = form1;
    
                networkStream = tcpClient.GetStream();
                readIn = new Thread(readThread);
                readIn.Start();
            }
    
            private void readThread()
            {
                while (true)
                {
                    try
                    {
    
                        int reader = networkStream.Read(readData, 0, readData.Length);
                        string data = System.Text.Encoding.Default.GetString(readData);
                        //取前4个字符
                        string first = data.Substring(0, 4);
                        if (first.Trim() == "0x01")
                        {                      
                            string zongshu = data.Substring(5, 12);                      
                            //form1.Invoke((EventHandler)(delegate { textBox4.Text = textBox4.Text + zongshu + "\r\n"; }));
                        }
                        else if (first.Trim() == "0x02")
                        {
                            string detail = data.Substring(5, 12);
                           // form1.Invoke((EventHandler)(delegate { textBox1.Text = textBox1.Text + detail + "\r\n"; }));
                        }
                    }
                    catch (Exception)
                    {
                        form1.Invoke((EventHandler)(delegate { textBox4.Text = textBox4.Text + "出现异常:" + "\r\n"; }));
                    }
                }
            }
        }
    }




    方法二:

    新建类,和构造函数 ,Form form1为传进来的参数,若不使用遍历,就将要用到的控件通过参数传递进来就可以了

    public ConnectionDeal(TcpClient tcpClient, TextBox textBox1,Form form1)

    代码如下:

    主窗体代码

    this.Invoke((EventHandler)(delegate { connectionDeal  = new ConnectionDeal(tcpClient, textBox1,this);}));
    类中代码

    textBox1可以使用

    namespace WindowsFormsApplication1
    {
        class ConnectionDeal
        {
            private TcpClient tcpClient;
            private NetworkStream networkStream;
            private TextBox textBox1;
            private TextBox textBox4;
            private Form form1;
    
            byte[] readData = new byte[1024];
            //byte[] sendData = new byte[10];
            
            Thread readIn;
    
            public ConnectionDeal(TcpClient tcpClient, TextBox textBox1,Form form1)
            {
                this.tcpClient = tcpClient;
                this.textBox1 = textBox1;
                this.form1 = form1;
    
                networkStream = tcpClient.GetStream();
                readIn = new Thread(readThread);
                readIn.Start();
            }
    
            private void readThread()
            {
                while (true)
                {
                    try
                    {
    
                        int reader = networkStream.Read(readData, 0, readData.Length);
                        string data = System.Text.Encoding.Default.GetString(readData);
                        //取前4个字符
                        string first = data.Substring(0, 4);
                        if (first.Trim() == "0x01")
                        {                      
                            string zongshu = data.Substring(5, 12);                      
                            form1.Invoke((EventHandler)(delegate { textBox1.Text = textBox1.Text + zongshu + "\r\n"; }));
                        }
                        else if (first.Trim() == "0x02")
                        {
                            string detail = data.Substring(5, 12);
                            form1.Invoke((EventHandler)(delegate { textBox1.Text = textBox1.Text + detail + "\r\n"; }));
                        }
                    }
                    catch (Exception)
                    {
                        //form1.Invoke((EventHandler)(delegate { textBox4.Text = textBox4.Text + "出现异常:" + "\r\n"; }));
                    }
                }
            }
        }
    }
    



    展开全文
  • 大致分4种情况: 1.声明Static静态,有静态、静态变量、内部静态属性等,通过声明static,...2.使用构造函数,通过窗体一个窗体中实例化时传递参数,然后赋予引用取得变量值,这种方式比较常见; eg:Form1...
  • 如题~~感谢.。。。。。。。。。。。。
  • //1定义委托用来掉方法 MyEventArgs要你自己写里面可以加些你认为有用的属性,不想用的话可以不加这参数, public delegate void 相关事件的委托(object sender, MyEventArgs e); //2定义事件 这句话写你的...
  • C# winform中一个类中如何调用一个窗体的控件或方法博客。 致谢! ---------------------------------------------------正文分割线------------------------------------------------------------- 一种是创建...
  • 请问一个解决方案有两个类,分别是窗体a和窗体b如何实现a达到某条件下实行窗体b的调用,谢谢啦
  • 如何在一个bpl中调用另一个bpl中的窗体 列如:有一个班级的bpl和一个学生信息的bpl,两个都不是主窗体,如何在班级的学生列表中调用查看学生的信息 项目中加入要使用的bpl uses要使用的单元 调用该单元的公开变量...
  • 例如我想在窗体中让listview控件显示内容,但是我其他中是没办法直接实现的,这时我就窗体中写可以实现的方法,然后其他类中调用就行了,但是调用之前我们需要做点事情。 首先现在FormSever中定义 ...
  • 个人认为第三种比较好A.设置构造函数参数//窗体2的构造函数public form2(string str) {Initialize...需要调用类中设置静态方法并调用public class form2 : form {public static setTextbox1(string st...
  • 本文实例讲述了类库或winform项目打开另一个winform项目窗体的方法。分享给大家供大家参考。具体如下:一、问题:假设...然后A一个类a实例化B的b类,并把它赋给A的接口,然后调用接口的Show方法就...
  • 最近需要做一个窗体中实时调用类中的一个线程问题,网上找了很多都不符合需求,终于搞定这个问题,Mark一下要不然时间久了就忘记了~ MainWindow: Class1 oid = new Class1();  public MainWindow() {...
  • 第一步,母版类中定义控件属性 //现在我们定义一个类型为 Label 的公共属性, 名为 LbGo, 可读写 public Label LbName { get { return lbName; } //lbName为前台控件的ID set { lbName = value; }
  • 然后A一个类a实例化B的b类,并把它赋给A的接口,然后调用接口的Show方法就可以弹出B指定的窗体. 需要注意的是项目A和项目B需要互相引入对方的EXE或DLL文件. 二、实现代码: 代码如下:namespace His { ...
  • 最近写一个小程序,发现打开另一个窗体的位置不知道怎么居中,上网查了下,基本上是说设置父子窗体实现居中的,还有说用API函数调用的,麻烦。用父子窗体试了下,虽然居中了,但子窗体被其他父窗体的控件挡住了,还...
  • 因项目需要,我要在一个窗体form6中调用创建它的父窗体form4的一个combobox的方法和属性。 网上搜集的,没有统一答案,试验了下。 可行方法如下: 在form6的class定义中加入一个私有成员变量,用来...
  • C#子窗体调用窗体中事件

    千次阅读 2015-07-16 22:33:11
    很多人都苦恼于如何窗体中操作主窗体上的控件,或者窗体中操作子窗体上的控件。...第一种,主窗体中定义一个静态成员,来保存当前主窗体对象,例如: publicstatic yourMainWindow pCurrentWin
  • 增加一个普通drew.cs 增加类中编写Roll()函数;注意:主窗体控件已可调用。 回到Form1.cs[设计],双击button按钮,进入button1_Click(object sender, EventArgs e)事件,写入代码如下: 编译...
  • C#如何普通调用窗体控件

    千次阅读 2018-01-08 17:14:46
    种是创建窗体对象的方式,通过对象调用控件或方法  例如: Form1 form1 = new Form1(); form1.Button; //调用控件 form1.Method();...Form1下定义静态变量,构造方法引用这Form1 clas
  • Form1主窗体中存在一个Panel控件,Panel控件中现有一个子窗体Form2,我想Form2中调用某个方法(最好是公共的方法),实现主窗体的Panel控件中显示另一个子窗体Form3,并关闭当前子窗体Form2 下面是我的代码 ...
  • 方式二:采用Interface接口的方式,先定义好一个接口,主窗口()中实现该接口,子窗口中构建 函数中传入该接口,然后子窗口中调用接口中的函数,实际上就会调用到主程序中的函数。方式三:采用抽象的方法...
  • 假设类库或winform项目为A...然后A一个类a实例化B的b类,并把它赋给A的接口,然后调用接口的Show方法就可以弹出B指定的窗体. 需要注意的是项目A和项目B需要互相引入对方的EXE或DLL文件. 转自:http:...
  • WinForm窗体中调用FontDialog、ColorDialog实现字体、颜色的设置。但是怎么才能利用saveFileDialog将这些设置保存成文件呢? 无论保存成txt还是自定义的格式,再次打开时所有格式化设置全都没有了,只保留了文字...
  • 所以我新建了一个公共文件,里面写了个调用连接数据库的方法 ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528767128_524160.jpg) 然后asp.net后台调用 ![图片说明]...
  • 因为最近研究PCL 点云库。结合C#开发一个软件,实现从3D 模型的用鼠标圈出一块表面。形成一个新的3D 模型。用PCL 把这个表面离散成点云文件。...C#可以调用哪些或者其他API 可以实现我说功能。??
  • 当前的Splash没有保证跨线程方法调用的线程安全,需要使用者Splash窗体的代码保证线程安全的调用,这也是我正在想办法解决的问题。放出包含注释的代码供批判Splash.cs/// /// A bridge class that ...
  • 比如在一个Windows项目,一个OutPut,一个InfoWin窗体类,InfoWin窗体类中有一个ListView控件,ID设为ListView_OutPut.现在我将ListView修饰为Public.我在OutPut类中写如下代码 : static InfoWin infowin = new Info...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 805
精华内容 322
关键字:

在一个窗体中调用一个类