winform中 一个普通的类如何给Textbox赋值

大_爱 2013-07-16 03:41:47
RT
我在网上看到了很多窗体传值的方式,但是普通的类如何控制就不知道了。

我在 form中new了一个对象,让后把form传进去,但是也不能修改Textbox上的值啊。
...全文
873 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganrongzhong 2015-07-25
  • 打赏
  • 举报
回复
用委托方法 form1代码
        private void button1_Click(object sender, EventArgs e)
        {



            Form2 frm = new Form2();

            frm.FEventDelegate_AllFloorError += new Form2.FDelegate_AllFloorError(FEventDelegate_AllFloorError);
            frm.Show();
        }
        void FEventDelegate_AllFloorError(string ErrorMsg)
        {
            textBox1.Text = textBox1.Text + ErrorMsg;

        }
form2代码
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public delegate void FDelegate_AllFloorError(string ErrorMsg);
        public event FDelegate_AllFloorError FEventDelegate_AllFloorError;

        private void button1_Click(object sender, EventArgs e)
        {
            FEventDelegate_AllFloorError("abc"+"\r\n"); 
        }
    }
异常异长 2013-07-17
  • 打赏
  • 举报
回复
神一样的帖子
liug08 2013-07-16
  • 打赏
  • 举报
回复
学习了,支持一下
zjzhong 2013-07-16
  • 打赏
  • 举报
回复
哈哈,没有仔细看你的代码,这样的话,应该是编译不了,写代码码的时候就提示错了,根本不存在什么访问不到呀!
  • 打赏
  • 举报
回复
那....结贴给分吧
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 18 楼 vb763305825 的回复:
Class A{
private Form f;
public A (Form f){
this.f = f;
} 
public void otherFunl(){
f.Textbox.text = "xxx";//这样就不行。访问不到到Textbox
f.setText();//直接调用我在form中写的方法也不行。
}
}
Form 改成 Form1 改成你写的窗体的那个类名称
万分感谢!就是这个的错误了。
  • 打赏
  • 举报
回复
Class A{
private Form f;
public A (Form f){
this.f = f;
} 
public void otherFunl(){
f.Textbox.text = "xxx";//这样就不行。访问不到到Textbox
f.setText();//直接调用我在form中写的方法也不行。
}
}
Form 改成 Form1 改成你写的窗体的那个类名称
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 16 楼 zjzhong 的回复:
把窗体中的TextBox公开就可以了,或者在窗体公开一个方法去修改这个TextBox的Text值,或者公开一个属性去获取或设置这个TextBox的值就行了。 比如:在你的窗口中有一个TextBox的控件,名称为tbTest,那么可以通过以下方法设置: 1、public TextBox TbTest{ get{return this.tbTest;} } 2、public string TbTestStr{ get{return this.tbTest.Text;} set{this.tbTest.Text = value;} } 3、public void SetTestText(string text){ this.tbTest.Text = text; }
3、public void SetTestText(string text){ this.tbTest.Text = text; } 我就是这样的写的,但是还是访问不到。很奇怪
zjzhong 2013-07-16
  • 打赏
  • 举报
回复
把窗体中的TextBox公开就可以了,或者在窗体公开一个方法去修改这个TextBox的Text值,或者公开一个属性去获取或设置这个TextBox的值就行了。 比如:在你的窗口中有一个TextBox的控件,名称为tbTest,那么可以通过以下方法设置: 1、public TextBox TbTest{ get{return this.tbTest;} } 2、public string TbTestStr{ get{return this.tbTest.Text;} set{this.tbTest.Text = value;} } 3、public void SetTestText(string text){ this.tbTest.Text = text; }
lyx266 2013-07-16
  • 打赏
  • 举报
回复
form中默认控件都是private的 你把要textbox改成public 主要是在form中定义一个public的方法 然后通过方法来更改textbox的值
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 13 楼 vb763305825 的回复:
你把Textbox公开就行了,public
公开了。

 private System.Windows.Forms.Button button5;
        public System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.Button button6;
  • 打赏
  • 举报
回复
你把Textbox公开就行了,public
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 11 楼 vb763305825 的回复:
可以啊,这样的话你就在A类的构造函数里面写了
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            A a = new A(this);
        }        
    }

    class A
    {
        public A(Form1 from1)
        {
            from1.txtBox.Text = "Yes!";
        }
    }
我不想在构造器中对form 的Textbox赋值。 我在class A 中这样写的。

Class A{
private Form f;
public A (Form f){
this.f = f;
} 
public void otherFunl(){
f.Textbox.text = "xxx";//这样就不行。访问不到到Textbox
f.setText();//直接调用我在form中写的方法也不行。
}
}
  • 打赏
  • 举报
回复
可以啊,这样的话你就在A类的构造函数里面写了
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            A a = new A(this);
        }        
    }

    class A
    {
        public A(Form1 from1)
        {
            from1.txtBox.Text = "Yes!";
        }
    }
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 8 楼 vb763305825 的回复:
通过Set方法,窗体Form1把自己交给A类去操作,A喜欢怎么搞就怎么搞
我是通过构造器的方式传入的。 在form中,

A a = new A(this);
然后在A类中想修改Form中的Textbox。这样为什么不行啊?
ztszhq 2013-07-16
  • 打赏
  • 举报
回复
引用 5 楼 beefcattlexiaoyang 的回复:
[quote=引用 3 楼 u011096386 的回复:] button1就是 from 中的按钮啊 textBox1为form 中的文本框 楼主可否举个例子,具体的功能

public class A{
public void xxx(){
//我希望能在这里修改到form控件中的Textbox
}
}

[/quote] 我给你写的例子 就是你要的啊
  • 打赏
  • 举报
回复
通过Set方法,窗体Form1把自己交给A类去操作,A喜欢怎么搞就怎么搞
  • 打赏
  • 举报
回复
就是把窗体的实例传到A类的SetTxtBoxTest方法里面去,在方法内部对窗体的成员进行赋值,还有哪里不明白?
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 4 楼 vb763305825 的回复:
一个普通类给txtBox赋值
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            A a = new A();
            txtBox1.Text = a.TextString;
        }
    }

    class A
    {
        public string TextString
        {
            get { return "Yes"; }
        }
    }
new了一个对象,让后把form传进去
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            A a = new A();
            a.SetTxtBoxTest(this, "Yes");
        }        
    }

    class A
    {
        public void SetTxtBoxTest(Form1 form1,string Text)
        {
            form1.txtBox1.Text = Text;
        }
    }
不是太懂耶
大_爱 2013-07-16
  • 打赏
  • 举报
回复
引用 3 楼 u011096386 的回复:
button1就是 from 中的按钮啊 textBox1为form 中的文本框 楼主可否举个例子,具体的功能

public class A{
public void xxx(){
//我希望能在这里修改到form控件中的Textbox
}
}

加载更多回复(4)
没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 型和变量 型和变量 型 C# 支持两种型:“值型”和“引用型”。值型包括简单型(如 char、int 和 float 等)、枚举型和结构型。引用型包括 (Class) 型、接口型、委托型和数组型。 变量的型声明 变量的型声明 每个变量必须预先声明其型。如 int a; int b = 100; float j = 4.5; string s1; 用 object 可以表示所有的型。 预定义型 下表列出了预定义型,并说明如何使用。 型 object 说明 所有其他型的最终 基型 字符串型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int val = 12; long val1 = 12; -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#(WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号整型 byte val1 = 12; ushort val1 = 12; uint val1 = 12; uint 32 位无符号整型 uint val2 = 34U; ulong val1 = 12; ulong val2 = 34U; ulong 64 位无符号整型 ulong val3 = 56L; ulong val4 = 78UL; float 单精度浮点型 float val = 1.23F;7 位 double val1 = 1.23; double 双精度浮点型 double val2 = ±5.0 × 10?324 ±1.7 × 10 308 0 到 255 0 到 65,535 0 到 4,294,967,295 0 到 18,446,744,073,709,551,615 ±1.5 × 10?45 ±3.4 × 10 38 到 到 4.56D;15-16 布尔型;bool 值或为 真或为假 字符型;char 值是 一个 Unicode 字符 精确的小数型, 具有 28 个有效数字 bool val1 = true; bool val2 = false; char val = 'h'; decimal val = bool char decimal DateTime ±1.0 × 10?28 ±7.9 × 10 28 到 1.23M;28-29 变量转换 简单转换: float f = 100.1234f; 可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#(WINFORM)学习 C# Convert.ToBoolean Convert.ToByte Convert.ToChar Convert.ToDateTime Convert.ToDecimal Convert.ToDouble Convert.ToInt16 Convert.ToInt32 Convert.ToInt64 Convert.ToSByte Convert.ToSingle Convert.ToString Convert.ToUInt16 Convert.ToUInt32 Convert.ToUInt64 备注 Math 常用科学计算方法: C# Math.Abs Math.Sqrt Math.Ro

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧