110,567
社区成员
发帖
与我相关
我的任务
分享
/////////////
////////前面通过这个事件激活winform这边的处理函数ShowData()
KindsFunction.SendDat += new KindsFunction.SendDatDelegate(ShowData);
/////////////
private delegate void ShowTextDelegate(double[] Dat);
private void ShowData(object Dat)
{
{
if (this.InvokeRequired)
{
double[] data = null;
data = (double[])Dat;//传过来的数据
object[] obj ={ data };
//异步调用委托
this.BeginInvoke(new ShowTextDelegate(ShowText), obj);
}
else
{
//ShowText_short(data_short);
//ShowText_byte(data_byte);
}
}
}
string SubTag;
string GraphType = "array";
//界面上的控件处理
private void ShowText(double[] Dat)
{
try
{
foreach (Control temp in this.Controls)///遍历整个控件
{
if (temp is TextBox)
{
SubTag = temp.Tag.ToString().Substring(5);
if (Dat[0] == Convert.ToDouble(SubTag))////通过当前控件的tag值,与数据中的标示做比较
{
for (int i = 1; i < Dat.Length; i = i + 99)
{
temp.Text = Dat[i].ToString();//写入数据
}
}
}
else if (temp is AxCWUIControlsLib.AxCWSlide)
{
AxCWUIControlsLib.AxCWSlide Slide = (AxCWUIControlsLib.AxCWSlide)temp;
SubTag = Slide.Tag.ToString().Substring(5);
if (Dat[0] == Convert.ToDouble(SubTag))
{
for (int i = 1; i < Dat.Length; i++)
{
Slide.Value = Dat[i];
}
}
}
else if (temp is AxCWUIControlsLib.AxCWKnob)
{
AxCWUIControlsLib.AxCWKnob Knob = (AxCWUIControlsLib.AxCWKnob)temp;
SubTag = Knob.Tag.ToString().Substring(5);
if (Dat[0] == Convert.ToDouble(SubTag))
{
for (int i = 1; i < Dat.Length; i++)
{
Knob.Value = Dat[i];
}
}
}
else if (temp is AxCWUIControlsLib.AxCWGraph)
{
}
}
}
catch { }
}
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;