首页 新闻 会员 周边 捐助

类文件调用winform中的控件

0
[已解决问题] 解决于 2012-04-11 14:49

有一个winform ,form.cs , 里面有个textbox控件,用来显示信息

但我的方法都在其他类文件里,如 code.cs

我怎么在code.cs里调用 textbox1.AppendText("XXXX");

hwqqxczx的主页 hwqqxczx | 初学一级 | 园豆:52
提问于:2012-02-27 12:10
< >
分享
最佳答案
0

在form.cs 里调用 code.cs里方法不行吗?如果非要这样,把textbox1设为公共的就可以了,默认是私有的。

奖励园豆:5
会长 | 专家六级 |园豆:12463 | 2012-02-27 12:29

form.cs 是调用 code.cs里的方法,但code.cs方法需要返回当前的执行状态  ,显示到textbox上,比如 开始读取 读取完毕 等等。。

hwqqxczx | 园豆:52 (初学一级) | 2012-02-27 12:35

@Frank Jie: 如果只有 开始读取 读取完毕 ,在分别调用code.cs之前和之后给textBox赋值就行了。估计你还需要在读的过程中实时显示状态。这样的话可以另起个子线程负责读数据,主线程负责显示状态。你是winform吗?用backgroundWork这个组件就可以了。

会长 | 园豆:12463 (专家六级) | 2012-02-28 12:13

这样可以:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestForm
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}

private void buttonGo_Click(object sender, EventArgs e)
{
this.textBox1.Text = new DataReader().ReadData(this.textBox1);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace TestForm
{
class DataReader
{
public String ReadData(TextBox box)
{
for (int i = 0; i < 5; i++)
{
Thread.Sleep(1000);
box.Text = "状态" + i.ToString();
box.Refresh();
}
return "data";
}
}
}




会长 | 园豆:12463 (专家六级) | 2012-02-28 12:22
其他回答(1)
0

用事件

Lukexywang | 园豆:178 (初学一级) | 2012-03-01 14:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册