VB控件在C#中的使用

控件

第一步:在C#的工具条右击,在右键菜单上单击“选择项”选项,如下图

第二步:在COM组件中,选中所需的控件即可(这点和VB中完全一样)

 

这时候,COM控件和C#控件就一样使用了。但是,VB中的一些特有的命令,如动态数组和C#有很大不同,

请参考如下代码

VB代码:

  dim lngData( ) as long

call CP243Client1.ReadData(1, lngData(), 3,CP_B, CP_V)

C#代码:

   System.Array lngData=new Int32[1024];

   CP243TCPS.CP241LEN  a=CP243TCPS.CP241LEN.CP_B;
   CP243TCPS.CP241TYPE b=CP243TCPS.CP241TYPE.CP_V;
      
   cp243.ReadData(1, ref lngData, 3, ref a,ref b) ;

---------------------------------

附:C#使用CP243控件的源码

---------------------------------

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace CP243
{
 /// <summary>
 /// Form1 的摘要说明。
 /// </summary>
 public class frmTest : System.Windows.Forms.Form
 {
  private System.Windows.Forms.Button cmdConn;
  private System.Windows.Forms.PictureBox picFlag;
  private AxCP243TCPS.AxCP243Client cp243;
  private System.Windows.Forms.Button cmdClose;
  private System.Windows.Forms.TextBox txtData;
  private System.Windows.Forms.CheckBox chkAuto;
  private System.Windows.Forms.Timer timer1;
  private System.Windows.Forms.Button cmdRead;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.TextBox txtIP;
  private System.Windows.Forms.Label label2;
  private System.Windows.Forms.TextBox txtAddr;
  private System.Windows.Forms.Button cmdWrite;
  private System.ComponentModel.IContainer components;

  public frmTest()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   this.components = new System.ComponentModel.Container();
   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(frmTest));
   this.cp243 = new AxCP243TCPS.AxCP243Client();
   this.cmdConn = new System.Windows.Forms.Button();
   this.picFlag = new System.Windows.Forms.PictureBox();
   this.cmdClose = new System.Windows.Forms.Button();
   this.txtData = new System.Windows.Forms.TextBox();
   this.chkAuto = new System.Windows.Forms.CheckBox();
   this.timer1 = new System.Windows.Forms.Timer(this.components);
   this.cmdRead = new System.Windows.Forms.Button();
   this.label1 = new System.Windows.Forms.Label();
   this.txtIP = new System.Windows.Forms.TextBox();
   this.label2 = new System.Windows.Forms.Label();
   this.txtAddr = new System.Windows.Forms.TextBox();
   this.cmdWrite = new System.Windows.Forms.Button();
   ((System.ComponentModel.ISupportInitialize)(this.cp243)).BeginInit();
   this.SuspendLayout();
   //
   // cp243
   //
   this.cp243.Enabled = true;
   this.cp243.Location = new System.Drawing.Point(168, 40);
   this.cp243.Name = "cp243";
   this.cp243.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("cp243.OcxState")));
   this.cp243.Size = new System.Drawing.Size(143, 101);
   this.cp243.TabIndex = 0;
   //
   // cmdConn
   //
   this.cmdConn.Location = new System.Drawing.Point(240, 8);
   this.cmdConn.Name = "cmdConn";
   this.cmdConn.Size = new System.Drawing.Size(56, 24);
   this.cmdConn.TabIndex = 1;
   this.cmdConn.Text = "连接";
   this.cmdConn.Click += new System.EventHandler(this.cmdConn_Click);
   //
   // picFlag
   //
   this.picFlag.BackColor = System.Drawing.Color.Red;
   this.picFlag.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
   this.picFlag.Location = new System.Drawing.Point(8, 8);
   this.picFlag.Name = "picFlag";
   this.picFlag.Size = new System.Drawing.Size(24, 24);
   this.picFlag.TabIndex = 2;
   this.picFlag.TabStop = false;
   //
   // cmdClose
   //
   this.cmdClose.Location = new System.Drawing.Point(304, 8);
   this.cmdClose.Name = "cmdClose";
   this.cmdClose.Size = new System.Drawing.Size(56, 24);
   this.cmdClose.TabIndex = 3;
   this.cmdClose.Text = "断开";
   this.cmdClose.Click += new System.EventHandler(this.cmdClose_Click);
   //
   // txtData
   //
   this.txtData.Location = new System.Drawing.Point(88, 176);
   this.txtData.Name = "txtData";
   this.txtData.Size = new System.Drawing.Size(272, 21);
   this.txtData.TabIndex = 4;
   this.txtData.Text = "";
   //
   // chkAuto
   //
   this.chkAuto.Location = new System.Drawing.Point(304, 144);
   this.chkAuto.Name = "chkAuto";
   this.chkAuto.Size = new System.Drawing.Size(64, 24);
   this.chkAuto.TabIndex = 5;
   this.chkAuto.Text = "连续读";
   this.chkAuto.CheckedChanged += new System.EventHandler(this.chkAuto_CheckedChanged);
   //
   // timer1
   //
   this.timer1.Interval = 500;
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
   //
   // cmdRead
   //
   this.cmdRead.Location = new System.Drawing.Point(16, 144);
   this.cmdRead.Name = "cmdRead";
   this.cmdRead.Size = new System.Drawing.Size(64, 24);
   this.cmdRead.TabIndex = 6;
   this.cmdRead.Text = "读";
   this.cmdRead.Click += new System.EventHandler(this.cmdRead_Click);
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(40, 13);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(112, 16);
   this.label1.TabIndex = 7;
   this.label1.Text = "IP";
   //
   // txtIP
   //
   this.txtIP.Location = new System.Drawing.Point(64, 10);
   this.txtIP.Name = "txtIP";
   this.txtIP.Size = new System.Drawing.Size(152, 21);
   this.txtIP.TabIndex = 8;
   this.txtIP.Text = "192.168.0.166";
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(16, 181);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(40, 16);
   this.label2.TabIndex = 9;
   this.label2.Text = "地址";
   //
   // txtAddr
   //
   this.txtAddr.Location = new System.Drawing.Point(48, 176);
   this.txtAddr.Name = "txtAddr";
   this.txtAddr.Size = new System.Drawing.Size(32, 21);
   this.txtAddr.TabIndex = 10;
   this.txtAddr.Text = "0";
   //
   // cmdWrite
   //
   this.cmdWrite.Location = new System.Drawing.Point(88, 144);
   this.cmdWrite.Name = "cmdWrite";
   this.cmdWrite.Size = new System.Drawing.Size(64, 24);
   this.cmdWrite.TabIndex = 11;
   this.cmdWrite.Text = "写";
   this.cmdWrite.Click += new System.EventHandler(this.cmdWrite_Click);
   //
   // frmTest
   //
   this.AutoScale = false;
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(376, 214);
   this.Controls.Add(this.cmdWrite);
   this.Controls.Add(this.txtAddr);
   this.Controls.Add(this.label2);
   this.Controls.Add(this.txtIP);
   this.Controls.Add(this.label1);
   this.Controls.Add(this.cmdRead);
   this.Controls.Add(this.chkAuto);
   this.Controls.Add(this.txtData);
   this.Controls.Add(this.cmdClose);
   this.Controls.Add(this.picFlag);
   this.Controls.Add(this.cmdConn);
   this.Controls.Add(this.cp243);
   this.Name = "frmTest";
   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   this.Text = "CP243测试";
   this.TopMost = true;
   this.Load += new System.EventHandler(this.frmTest_Load);
   ((System.ComponentModel.ISupportInitialize)(this.cp243)).EndInit();
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new frmTest());
  }

  private void cmdConn_Click(object sender, System.EventArgs e)
  {
   int lngRet;
   string strIP=txtIP.Text;
   int intPort=102;
            //cp243.RemoteHost=str;
            //cp243.RemotePort =intPort;
   lngRet=cp243.OpenConnect(ref(strIP),ref(intPort));
   if(lngRet==0)
   {   
    picFlag.BackColor=System.Drawing.Color.Green;
   }
   else
   {
    picFlag.BackColor=System.Drawing.Color.Red ;
   }
 
  }

  private void cmdClose_Click(object sender, System.EventArgs e)
  {
    cp243.CloseConnect();  
    picFlag.BackColor=System.Drawing.Color.Red ;
  }

  private void chkAuto_CheckedChanged(object sender, System.EventArgs e)
  {
     timer1.Enabled= chkAuto.Text=="0"? false:true;

  }

  private void cmdRead_Click(object sender, System.EventArgs e)
  {
   System.Array lngData=new Int32[1024];

   CP243TCPS.CP241LEN  a=CP243TCPS.CP241LEN.CP_B;
   CP243TCPS.CP241TYPE b=CP243TCPS.CP241TYPE.CP_V;
      
   if (cp243.ReadData(Convert.ToInt32(txtAddr.Text), ref lngData, 3, ref a,ref b) == 0)
   {
    txtData.Text =lngData.GetValue(0).ToString();
   }
 
  }
  private void cmdWrite_Click(object sender, System.EventArgs e)
  {
   System.Array lngData=new Int32[1024];

   CP243TCPS.CP241LEN  a=CP243TCPS.CP241LEN.CP_B;
   CP243TCPS.CP241TYPE b=CP243TCPS.CP241TYPE.CP_V;
        
   lngData.SetValue(Convert.ToInt32(txtData.Text),0);
   if (cp243.WriteData(Convert.ToInt32(txtAddr.Text), ref lngData, 1, ref a,ref b) != 0)
   {
    txtData.Text ="ERROR";
   }
  }

  private void timer1_Tick(object sender, System.EventArgs e)
  {
     cmdRead_Click(sender,e);
  }

  private void frmTest_Load(object sender, System.EventArgs e)
  {
 
  }

 }
}

时间: 2024-12-04 23:44:44

VB控件在C#中的使用的相关文章

看实例学VFP:模拟VB控件数组操作标签控件

VB中有控件数组,使用它可以批量设置控件的属性,这个东西最直接的作用就是可以简化代码.今天我们在vfp中模拟VB控件数组,操作vfp中最基本的控件之一:标签控件(label).在vfp基础教程-标签控件(label)一文中对该控件的属性及用途等已经有比较详尽地描述,关于它实在是没有什么好说的了. 本文设计的这个例子是这样的:在表单激活时(Activate事件),采用类似vb控件数组的处理方式在循环语句中为各个标签设置属性,如下图1:在命令按钮的click事件中,通过单击将5个标签的caption

批量获取DataGrid控件模板列中的数据

datagrid|datagrid控件|模板|数据 批量获取DataGrid控件模板列中的数据 在DataGrid中一般只能单个获取每一行的数据,若要批量获取DataGrid控件中的数据必须对每一个模板列的控件进行扫描,获取其中的数据.我本想做的程序是根据不同的行数,由用户一次输入若干数据,提交后系统自动获取批量数据的程序.以下程序简单表达了需要实现的功能 test.aspx .......... <asp:DataGrid id="dgResult" runat="s

vb控件的使用(二)

使用CheckBox控件 选定CheckBox控件时,这个控件将显示选定标记.通常用此控件提供Yes/No或True/False选项.可用分组的CheckBox控件显示多个选项,用户可从中选择一个或多个选项. CheckBox控件与OptionButton控件的相同之处在于,每个都是用来指示用户所作的选择.不同之处在于,对于一组OptionButton ,一次只能选定其中的一个,而对CheckBox控件,则可选定任意数目的复选框.详细信息 关于CheckBox控件的简单示例,请参阅第三章"窗体,

写了ocx控件 在网页中调用显示 对象不支持此属性或方法

问题描述 写了ocx控件 在网页中调用显示 对象不支持此属性或方法 我用的是 vs2010 用模版自动生成的只加了一个方法,然后自己写了一个vbs脚本调用这个方法正常,用的是控件名创建的对象.在网页中控件也创建成功的用的是classid方式创建的,但是调用这个方法就是提示对象不支持此属性或方法.我用activex control test 工具测试一切正常,也能看到这个方法,但是一到网页中就提示对象不支持此属性或方法 麻烦大家帮忙分析分析(我是初学者) 解决方案 应该是浏览器安全性阻止了控件的加

mfc-MS FlexCell控件在视图中如何使用事件函数

问题描述 MS FlexCell控件在视图中如何使用事件函数 为什么在VC6.0中MFC单文档应用程序的视图对象中使用Create函数创建的MS FlexCell控件,无法添加控件的事件函数,而基于对话框的应用程序添加的MS FlexCell,却可以任意添加控件的事件函数

控件坐标-.net 怎么获取控件在屏幕中的坐标

问题描述 .net 怎么获取控件在屏幕中的坐标 看网上用函数:Point p = Button2.PointToScreen(Button2.Location); 但是老是提示错误,我引用了using System.Drawing;using System.Windows.Forms;请问我少引用了什么吗?还是.net控件不支持PointToScreen这个函数? 解决方案 你这个代码是桌面程序的,不是asp.net的.asp.net只能获得相对文档的坐标,而不能获得相对屏幕的坐标,除非你在客户

怎么把dojox calendar控件放到项目中?

问题描述 怎么把dojox calendar控件放到项目中? 怎么能把dojox calendar控件放到项目的页面中? 在页面上显示. 解决方案 http://dojotoolkit.org/reference-guide/1.8/dojox/calendar.html

Android中一个在MainActivity中的控件在OneActivity中怎样获取到

问题描述 Android中一个在MainActivity中的控件在OneActivity中怎样获取到 每点击一次添加按钮 购物车的TextView 更新一次 解决方案 Android-获取view中的一个控件 解决方案二: 有很多种方式,如果单纯获取控件可以通过Layoutinflater获取view,然后获取控件

求助各位大神,如何不用控件读取dataset中的值

问题描述 求助各位大神,如何不用控件读取dataset中的值 各位大神 如何不用控件把dataset表中的值动态循环呈现在页面上 请各位大神赐教 ~~~~ 解决方案 dataset.tables[0].rows[行][列]就可以读取了for循环换成你的下标就可以 解决方案二: 你应该学习一下asp.net mvc.http://blog.csdn.net/chinacsharper/article/details/43927025 解决方案三: 把你的代码以文本的形式贴出来并且采纳我的回答,我可

mfc-MFC中如何将ListControl控件report报表中的内容导出到doc的表格中?

问题描述 MFC中如何将ListControl控件report报表中的内容导出到doc的表格中? MFC中如何将ListControl控件report报表中的内容导出到doc的表格中? 解决方案 http://zhidao.baidu.com/link?url=8Xit7xzSh2IOBuVYdDr6EPAQqN49KMuOVdub_OdVauJHuZusmFC2UBWpBmgVDDXUYX5sObO-7IUSTHNFauBYBnYRmCG_RDPabYzkAfnf2cy