c#如何把下面代码写在类里面作为函数供外界随意调用?

问题描述

c#如何把下面代码写在类里面作为函数供外界随意调用?privateconstintWM_NCLBUTTONDOWN=0x00A1;privateconstintWM_NCHITTEST=0x84;privateconstintHT_CAPTION=0x2;privateconstintHT_CLIENT=0x1;privatevoidpictureBox1_MouseDown(objectsender,MouseEventArgse){pictureBox1.Capture=false;Messagemsg=Message.Create(Handle,WM_NCLBUTTONDOWN,(IntPtr)HT_CAPTION,IntPtr.Zero);WndProc(refmsg);}这段代码的作用是可以拖动控件来移动窗体,我想把它写成一个函数并用Control类型作为参数放在类库里面,但是不行,报错说WndProc受保护级别无法访问

解决方案

解决方案二:
添加一个事件注册的方法在里面就可以了。
解决方案三:
publicclasstest{publicintWM_NCLBUTTONDOWN{get{return0x00A1;}}}

解决方案四:
该回复于2014-01-06 23:14:22被版主删除
解决方案五:
private改个public
解决方案六:
建议你做成一个基类,让所有需要这个功能的窗体直接继承它。
解决方案七:
例如你的类库是usingSystem;usingSystem.Windows.Forms;namespaceYourNamespace{publicstaticclassClass1{privateconstintWM_NCLBUTTONDOWN=0x00A1;privateconstintWM_NCHITTEST=0x84;privateconstintHT_CAPTION=0x2;privateconstintHT_CLIENT=0x1;publicdelegatevoidWndProDelegate(refMessagex);publicstaticvoidMyDragMove(thisControlctl,IntPtrHandle,WndProDelegatewndpro){ctl.Capture=false;Messagemsg=Message.Create(Handle,WM_NCLBUTTONDOWN,(IntPtr)HT_CAPTION,IntPtr.Zero);wndpro(refmsg);}}}

那么在Form中可以这样调用:pictureBox1.MyDragMove(this.Handle,this.WndProc);

解决方案八:
这里,关键点就是,把WndPro当作参数传给类库。
解决方案九:
该回复于2014-04-29 00:10:15被版主删除
解决方案十:
做GUI, 用微软任何库的都是傻逼.有gnome,kde,qt,wxWidget等那么多好用的不用,非用最垃圾的.
解决方案十一:
建议你先做一个基类

时间: 2024-12-02 13:53:55

c#如何把下面代码写在类里面作为函数供外界随意调用?的相关文章

这段代码怎么写成类

问题描述 这是赵春生的代码要生成一个程序,如果有大量的重复代码应该可以制作成类吧?我想问下下面代码制作成类要怎写?内存地址若要放入阵列每个窗口只要回调阵列的地址能办到吗?EX:当前有三个地址0x1025040,0x1025041,0x1025042分别对应三个TextBox如何改写下面代码?privatevoidbutton_go_Click(objectsender,EventArgse){IntPtrPinballHandle;IntPtrPinballScoreAddressPointer

ASP分页代码,已经写成类了,值得参考

ASP通用分页类 一.类的属性.方法 这是一个ASP通用分页类.你可以用它方便的给记录集分页,当然在网上有许多的分页类和分页函数.本分页主要有Conn.SQL.URL.FieldList.PageSize.Template.Init.Show.Close等属性和方法. 1.Conn属性 :用来获取一个已创建的Connection对象. 2.SQL属性 :根据传入的SQL语句,自动创建RecordSet对象 3.PageSize属性 :设置第页的记录条数 4.FieldList属性 :如果需要显示

C写com 类厂的guid iukonwn的guid怎么来的 ?

问题描述 C写com 类厂的guid iukonwn的guid怎么来的 ? 类厂的guid 和 iukonwn的guid怎么来的? 1 是自己定义:2 还还引用系统定义? 如果过是2 怎么写代码? 我自己定义过 类厂 guid 和 iukown的guid 似乎不能正确工作. 解决方案 Com GUID 解决方案二: Com GUID

ASP程序代码执行时间统计类

程序|统计|执行 ASP程序代码执行时间统计类 第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等. 程序代码: Class ccClsProcessTimeRecorder''ASP程序代码执行时间统计类  Private ccInti,ccIntNonceTime,ccIntDecimal Private ccIntStartTime,ccIntEndTime,ccIntNow,ccIntNonce Private ccStrInterval,ccStrEvent,ccStrTi

c# com组件-求助c#写com组件有毒 看了无数文章也无法公开一个类中的函数

问题描述 求助c#写com组件有毒 看了无数文章也无法公开一个类中的函数 看了无数文章和博客尝试了无数方法依然无法解决这个问题 编译的com组件永远只有 _object 下的的几个函数自定义的函数一个也没有 下面是看着无数文章写的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Run

mfc入门-vs2010中我自己额外写的类加进mfc中就出错了

问题描述 vs2010中我自己额外写的类加进mfc中就出错了 1>d:项目atmatmdate.cpp(2): warning C4627: "#include "Date.h"": 在查找预编译头使用时跳过 1> 将指令添加到"StdAfx.h"或重新生成预编译头 1>d:项目atmatmdate.cpp(3): warning C4627: "#include ": 在查找预编译头使用时跳过 1>

c++-C++自己写的虚基类和同名函数多重继承的小例子出现了继承不明确的问题

问题描述 C++自己写的虚基类和同名函数多重继承的小例子出现了继承不明确的问题 #include using namespace std; class vihicle { public: int i; virtual void run() { cout<<"111"; } }; class bicycle:virtual public vihicle { public: void run() { cout<<"bicycle run"; }

qt-用QT写了一个0槽和信号相关的代码,代码编译成功,但是槽函数始终接收不到信号,

问题描述 用QT写了一个0槽和信号相关的代码,代码编译成功,但是槽函数始终接收不到信号, 先看main.cpp文件: 就是定义一个线程 int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); /*定义一个线程,并且启动一个线程*/ MyThread receive_data; receive_data.start(); return a.exec(); } 然后在mainwind

java笔试题,根据代码写结果

问题描述 java笔试题,根据代码写结果 public class Base { int i; Base() { add(1); } void add(int v) { i+=v; } void print() { System.out.println(i); } } public class Extention extends Base { Extention() { add(2); } void add(int v) { i+=v*2; } } public class Qd01 { pub