/// <summary>
/// 窗体线程分离出去
/// </summary>
public void ThreadSay(object text) {
if (clickSayModels(Convert.ToString(HelperNumber.UsersNames)))
{
say = new Say();
string cd = Convert.ToString(text);
string[] tt = cd.Split(',');
say.label1.Text = tt[1].ToString();
say.label2.Text = tt[0].ToString();
say.Text = tt[1].ToString();
say.Name = Convert.ToString(HelperNumber.UsersNames);
//say.Owner = this;
sayformlist.Add(say);
say.ShowDialog();
}
else
{
say = (Say)sayformlist[Convert.ToInt32(orderSSort)]; if (say.WindowState == FormWindowState.Minimized)//判断是否最小化
{
say.WindowState = FormWindowState.Normal;//回到原装
}
say.Show();
say.Focus();
}
}
/// <summary>
/// 判断聊天窗体是否存在
/// </summary>
/// <param name="click"></param>
/// <returns></returns>
public bool clickSayModels(string click) {
orderSSort = "0";
try
{
int num = 0;
foreach (Form f in sayformlist)
{
num++;
orderSSort = Convert.ToString(num - 1);
if (f.Name.Equals(click)) {
//f.Activate();
return false;
}
}
return true;
}
catch (Exception ex) {
return true;
}
} /// <summary>
/// 删除聊天窗体
/// </summary>
/// <param name="name"></param>
public static void RemodelDeleteSay(string name) {
orderSSort = "0";
try
{
int num = 0;
foreach (Form f in sayformlist)
{
num++;
orderSSort = Convert.ToString(num - 1);
if (f.Name.Equals(name))
{
sayformlist.RemoveAt(Convert.ToInt32(orderSSort));
}
}
}
catch (Exception ex)
{
}
}
//调用
Thread th = new Thread(ThreadSay);
//object text = dicitiong;
th.Start(dicitiong);
/// 窗体线程分离出去
/// </summary>
public void ThreadSay(object text) {
if (clickSayModels(Convert.ToString(HelperNumber.UsersNames)))
{
say = new Say();
string cd = Convert.ToString(text);
string[] tt = cd.Split(',');
say.label1.Text = tt[1].ToString();
say.label2.Text = tt[0].ToString();
say.Text = tt[1].ToString();
say.Name = Convert.ToString(HelperNumber.UsersNames);
//say.Owner = this;
sayformlist.Add(say);
say.ShowDialog();
}
else
{
say = (Say)sayformlist[Convert.ToInt32(orderSSort)]; if (say.WindowState == FormWindowState.Minimized)//判断是否最小化
{
say.WindowState = FormWindowState.Normal;//回到原装
}
say.Show();
say.Focus();
}
}
/// <summary>
/// 判断聊天窗体是否存在
/// </summary>
/// <param name="click"></param>
/// <returns></returns>
public bool clickSayModels(string click) {
orderSSort = "0";
try
{
int num = 0;
foreach (Form f in sayformlist)
{
num++;
orderSSort = Convert.ToString(num - 1);
if (f.Name.Equals(click)) {
//f.Activate();
return false;
}
}
return true;
}
catch (Exception ex) {
return true;
}
} /// <summary>
/// 删除聊天窗体
/// </summary>
/// <param name="name"></param>
public static void RemodelDeleteSay(string name) {
orderSSort = "0";
try
{
int num = 0;
foreach (Form f in sayformlist)
{
num++;
orderSSort = Convert.ToString(num - 1);
if (f.Name.Equals(name))
{
sayformlist.RemoveAt(Convert.ToInt32(orderSSort));
}
}
}
catch (Exception ex)
{
}
}
//调用
Thread th = new Thread(ThreadSay);
//object text = dicitiong;
th.Start(dicitiong);
改为 LabelTextChange(say.label1,tt[1].ToString()); // 控制Label
public delegate void LabelChangeCallBack(Label tx, string value);
public static void LabelTextChange(Label tx, string value)
{
if (tx.InvokeRequired)
{
LabelChangeCallBack outdelegate = new LabelChangeCallBack(LabelTextChange);
tx.BeginInvoke(outdelegate, new object[] { tx, value });
}
else
{
tx.Text = value;
}
}
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;