C#问题
class lis()
{
textBox1.Text = "1111";
}
但是这个类不是在主程序的那个类里的,textBox控件不能使用,要怎么做??新手拜上~
class lis()
{
textBox1.Text = "1111";
}
但是这个类不是在主程序的那个类里的,textBox控件不能使用,要怎么做??新手拜上~
解决方案 »
- “无法获取托管类型的地址和大小,或无法声明指向它的指针”如何解决
- .net调用JAVA带SoapHeader验证的WebService问题
- 兔子的递归问题,谁讲给我听啊,详细,我比较笨
- 引用excel com 发布的问题
- C#,dataset
- web Service使用Timer组件定时执行的程序不停重入,打乱执行步骤,怎样解决?
- 我用dotnet程序,访问远程sqlServer,非常慢,一个普通的一条数据的提交也要1分多钟,有什么需要特殊注意的地方吗?
- 想做类似于MSN Messenger的网络即时通信程序,用C#,在 Socket流 和 Remoting 之间应该如何选择?
- 下面的这段代码(dowamish 7.0 中的代码)是什么意思,里面的参数都看不懂,还有后面继承的base类是干嘛用的
- 关于VS。NET(β2版)编译错误(C#)
- 怎样将复选框放入状态栏
- sql语句的问题,很奇怪,大家帮忙看看!!
{
public void CallMethod(lis p_lis,TextBox textBox1)
{
p_lis.TextControl = textBox1;
p_lis.CalledMethod();
}
}class lis()
{
private TextBox textBox1 = null;
public TextBox TextControl
{
set{textBox1 = value;}
} public void CalledMethod()
{
textBox1.Text = "1111";
}
}
你的意思是哪个?class lis //类
{
}
voud lis() //方法
{
textBox1.Text = "1111";
}
class lis //类
{
voud lis() //方法
{
textBox1.Text = "1111";
}
}
这样子,我想想赋值给textBox1,但textBox1不是在这里创建的
/// 不安全的托管代码,线程内访问窗体控件
/// </summary>
/// <param name="status"></param>
private delegate void addStatusUnSafe(string status);
public void addStatus(string status)
{
DateTime dt = System.DateTime.Now;
string now = "[" + dt.ToShortDateString() + " " + dt.ToShortTimeString() + "]";
status += now;
if (status == "")
{
return;
}
if (this.label_ConnString.InvokeRequired)
{
addStatusUnSafe aus = new addStatusUnSafe(addStatus);
this.label_ConnString.Invoke(aus, new string[] { status });
}
else
{
this.label_ConnString.Text = status;
}
}
你要这样才可以:
class CallClass
{
public void CallMethod(lis p_lis,TextBox textBox1)
{
p_lis.TextControl = textBox1;
p_lis.CalledMethod();
}
}class lis()
{
private TextBox textBox1 = null;
public TextBox TextControl
{
set{textBox1 = value;}
} public void CalledMethod()
{
textBox1.Text = "1111";
}
}
private TextBox tbx = null;public Lis(TextBox t){
if(tbx == null)
{
throw new AugumentNullException();
}
tbx = t;
}public setText(string str)
{
tbx.Text = str;
}
}
{
try
{
tcpl = new TcpListener(5656);//在5656端口新建一个TcpListener对象
tcpl.Start();
// MessageBox .Show ("started listening.."); while (listenerRun)//开始监听
{
Socket s = tcpl.AcceptSocket();
string remote = s.RemoteEndPoint.ToString();
Byte[] stream = new Byte[80];
int i = s.Receive(stream);//接受连接请求的字节流
string msg = "<" + remote + ">" + System.Text.Encoding.UTF8.GetString(stream);
MessageBox .Show (msg);//在控制台显示字符串
//textBox1.Text = msg;//我想问的是这里怎么解决?拜托了
}
}
}
{
textBox1.Text = "1111"; public Textbox SettextBox()
{
return this.textBox1;
}
} 在主程序里调用一下就可以了。
构造一个带参数的构造函数,然后可以传值!直接初始化,要不然就是可以使用线程控制了,不过你是要在另一个过程控制窗体,必须用到委托,不建议这个方法!厄
有个简单的方法Control.CheckForIllegalCrossThreadCalls = false;
public partial class 主类 : Form
{
private lis mylis;
public 主类()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
mylis= new lis();
mylis.mySendtext += new lis.Sendtext(this.rettext);
mylis.Show();
}
string rettext(string str)
{
textBox1.Text = str;
}
}
public partial class lis : Form
{
public lis()
{
InitializeComponent();
}
public delegate void Sendtext(string str);
public event Sendtext mySendtext;
private void button1_Click(object sender, EventArgs e)
{
mySendtext("1111");
}}