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)
  {
 
  }

 }
}

已标记关键词 清除标记
相关推荐
本DataGridView打印控件和.NET打印控件5.5版(含报表模板设计组件)2014年2月8日修改完成,完全免费,在.NET2.0及以上环境下都可以使用VB打印、C#打印都是可以的),有帮助文档与使用实例。 与上一版本的5.4版相比,新控件5.5版的主要更改如下: 1、对控件进行了完善,DGVPrint、VB2008Print、EasyReport组件的打印预览速度有较大的提升; 2、VB2008Print与EasyReport添加了二维码打印的功能,该功能使用开源的Zxing.NET实现; 3、添加了DrawDGVEx函数,一方面可以以DGVprint对象中的参数在VB2008Print组件中打印,另一方面提供了并排打印多个表格的重载函数; 4、DGVPrint组件添加了报表头与报表尾内容的设置属性和参数; 5、DGVPrint与VB2008Print组件在以工资条方式打印表格时,添加了是否自动换行续打的功能(即,如果工资条列太多在一行中打印不下时,可以指定自动换行续打); 6、修改了EasyReport组件的设计界面,每个区域的属性放在属性窗口中显示; 7、EasyReport组件添加了简单的多栏打印支持功能; 8、VB2008Print组件添加了PrintDGVFixedWidth函数,方便将DataGridView按指定宽度进行打印; 9、去掉了网页打印功能(因为在IE11下没法使用,所以干脆去掉),去掉了打印RDLC报表的功能; 10、其他一些完善,比如在导出Excel时,如果Columheader不可见,则不导出;解决了快速导出Excel时部分特殊列没有表格线问题(比如是数值列,但使用了%等格式);VB2008Print组件添加了PageScale可以指定打印时的缩放比例等等。 本控件特色: 1、强大的DataGridView打印功能,不仅可以以多种形式(普通打印、分栏打印、跨页打印、工资条打印)打印DGV表格,基本上能完全按DGV控件本身设置的格式如字体、字号、背景颜色、前景颜色、单元格对齐方式等打印出来,文字图像都可以打印,而且是完全根据表格当前的显示顺序进行打印的,基本上做到了所见即所得的打印。 2、报表设计功能。报表模板设计组件EasyReport与WebEasyReport组件可以设计普通报表、分组报表、套打模板等,分别以DataGridView为数据源。控件的位置以毫米为计量单位,定位准确,很适合套打单据设计。 3、强大的图表打印功能。5.2版控件新增了一个Chartlet的组件,使用非常方便,可以生成柱形图、饼图、折线图等多种图形,而且可以设置2D或3D效果,既可以在打印控件中打印出来,也可以在Graphics对象中显示。 4、分组汇总打印DataGridVeiw功能,每组还可以自动换新页打印,还可以自动增加行号。 5、强大的文本打印输出功能,控件提供多个文本打印重载函数,打印文本时,如果需要,控件会自动换行和换页打印输出。还增加了以指定行间距及字符间距打印文本的功能,可以用固定行距,也可以用单倍或多倍行距打印文本。 6、强大的绘图功能,基本上.NET的GDI+的绘图函数(如直线、矩形、路径、多边形、曲线等)都有,只有个别函数的名称有点区别。 7、支持同一文档多种版面格式打印(类似于Word中的节的功能):对同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边 距),只需要在新增一页时在NewPage方法中指定要使用的页面格式即可,使用非常简单。 8、报表文件保存功能。本控件允许将当前打印预览的内容保存为报表文件,以后使用控件重新打开该报表文件即可重现原来保存报表时的打印内容。 9、Excel导出功能,可以将DataGridView和GridView导出为Excel文件,5.2版控件还增加了不依赖Office的导出Excel功能,而且速度非常快,5.4版还增加了合并单元格的导出功能。 10、打印DataGridView时的打印方案保存与读取功能。可以将当前打印参数保存为打印方案文件,或者从保存的打印方案文件中读取打印参数。 11、水印打印功能。根据需要,可以在页面中打印或不打印以半透明空心文字打印水印。 12、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 13、特殊文字效果打印功能。控件具有打印浮雕文字、阴影文字、空心文字、块文字的功能。 14、页眉页脚中既可打印文字,也可打印图像,或者即打印图像又打印输出文字。 15、图像与图标打印输出功能。 16、多表头(跨行跨列的复杂表头)打印功能,多表头组件支持多表头显示与打印、单元格内容的
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页