C#自定义类如何引用窗体属性

茗香淡然 2014-04-14 01:09:10
不想在自定义类方法中使用参数
class Form1:Form
{
A a = new A(); //实例化 类A

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
//A a = new A(); // 这句放这里也不起效果
a.Ranks();
}

public RichTextBox RichTxtBox
{
get { return this.txtInput; }
set { this.txtInput = value; }
}
public string fileSize
{
get { return this.KB_Size.Text; }
set { this.KB_Size.Text = value; }
}
}

class A
{
Form1 form_1 = new Form1();
public void Ranks()
{
RichTextBox rbox = this.form_1.RichTxtBox;
//代码句...............
form_1.fileSize = string.Format("...");
this.form_1.Text = "XXX";
}
}


进入了死循环,窗体不显示

要怎么获得 Form1.Text RichTextBox.Text KB_Size.Text 属性呢?
...全文
396 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
茗香淡然 2014-04-15
  • 打赏
  • 举报
回复
还有一贴未结,请诸位去看看 http://bbs.csdn.net/topics/390749827?page=1#post-397183028
茗香淡然 2014-04-15
  • 打赏
  • 举报
回复
感谢各位的解答,特别是 feiyun0112 斑竹 !!! zhenghao1977 !!! 两位都热心的帮忙.... 好了,算是不好不坏的结果吧,感觉!!! 分不多,不能完全代表心意!
茗香淡然 2014-04-15
  • 打赏
  • 举报
回复
引用 17 楼 BenBenBears 的回复:
传而不是在里边new。
能说一下怎么传吗?新手你知道
引用 18 楼 feiyun0112 的回复:
class Form1:Form { A a ; public Form1() { a= new A(this); //实例化 类A }
试一下先
feiyun0112 2014-04-15
  • 打赏
  • 举报
回复
class Form1:Form { A a ; public Form1() { a= new A(this); //实例化 类A }
BenBenBears 2014-04-15
  • 打赏
  • 举报
回复
传而不是在里边new。
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 11 楼 feiyun0112 的回复:
貌似 A a = new A(this); //实例化 类A不能用 this a.form_1=this; 不能转换 报什么错?
A a = new A(this); 放在全局不能过,this 关键字不允许出现在全局. 用 A a = new A( Form1); 报Form1是类型,此处当变量使用.... 用在局部可以,但 类 A的全局变量就只能传初始值,不能传 传递值......
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 13 楼 zhenghao1977 的回复:
看你实现的功能,为什么一定要 单独搞一个类出来,直接函数不行吗?invoke 控制一下
要写的函数太多,想分类弄出来,不然全放在窗体类中,要找什么都是个麻烦.....
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 11 楼 feiyun0112 的回复:
貌似 A a = new A(this); //实例化 类A不能用 this a.form_1=this; 不能转换 报什么错?
感觉可以了,就是有点小问题,我看一下...
zhenghao1977 2014-04-14
  • 打赏
  • 举报
回复
看你实现的功能,为什么一定要 单独搞一个类出来,直接函数不行吗?invoke 控制一下
xingeddx 2014-04-14
  • 打赏
  • 举报
回复
A a = new A(); //实例化 类A Form1 form_1 = new Form1(); 感觉这两句造成循环,不停的创建吧, 不用参数又想控制,A从Form1继承一下行不行呢
feiyun0112 2014-04-14
  • 打赏
  • 举报
回复
貌似 A a = new A(this); //实例化 类A不能用 this
a.form_1=this; 不能转换

报什么错?
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
总之你要有一个地方能够方问道form1的实例,那样才能读取上面的信息,控件的modifers属性设置为public,就可以通过form1.xxx直接访问了
具体的要怎么做呢?正在学习.给点代码 -_- !!
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 5 楼 zhenghao1977 的回复:
private void txtInput_KeyUp(object sender, KeyEventArgs e) { //A a = new A(); // 这句放这里也不起效果 a.form_1=this; a.Ranks(); }
a.form_1=this; 不能转换
茗香淡然 2014-04-14
  • 打赏
  • 举报
回复
引用 3 楼 feiyun0112 的回复:
class Form1:Form { A a = new A(this); //实例化 类A class A { Form1 form_1; public A(Form1 frm) { this.form_1=frm; }
呃,斑竹,怪我没说清楚....
class Form1:Form
是窗体的全局类
public partial class Form1:Form
貌似
 A a = new A(this);  //实例化 类A
不能用 this
zhenghao1977 2014-04-14
  • 打赏
  • 举报
回复
试试看吧,不一定好用
zhenghao1977 2014-04-14
  • 打赏
  • 举报
回复
private void txtInput_KeyUp(object sender, KeyEventArgs e) { //A a = new A(); // 这句放这里也不起效果 a.form_1=this; a.Ranks(); }
zhenghao1977 2014-04-14
  • 打赏
  • 举报
回复
A.form_1变成 public 的 试试 private void txtInput_KeyUp(object sender, KeyEventArgs e) { //A a = new A(); // 这句放这里也不起效果 a.Ranks(); }
feiyun0112 2014-04-14
  • 打赏
  • 举报
回复
class Form1:Form
{
A a = new A(this); //实例化 类A

class A
{
Form1 form_1;
public A(Form1 frm)
{
this.form_1=frm;
}

zhenghao1977 2014-04-14
  • 打赏
  • 举报
回复
这种用法不对啊
bdmh 2014-04-14
  • 打赏
  • 举报
回复
总之你要有一个地方能够方问道form1的实例,那样才能读取上面的信息,控件的modifers属性设置为public,就可以通过form1.xxx直接访问了

110,571

社区成员

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

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

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