请教一个问题,透明、可拉伸、拖动的文本编辑器,C# winform,如果用自定义控件,该怎么实现?

请教一个问题,透明、可拉伸、拖动的文本编辑器,C# winform,如果用自定义控件,该怎么实现?
图片说明

1个回答

A09211008
ccwRadar 这个方法试过了,不行,不能达到产品的需求。
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#控件拖动与拉伸
在项目中引用dll文件即可,使用时,创建对象,调用ZoomEnter(Control control)这个方法即可
关于可拖动拉伸div
[code=JScript]rn if (typeof addEvent != 'function') var addEvent = function(o, t, f, l) var d = 'addEventListener', n = 'on' + t, rO = o, rT = t, rF = f, rL = l; if (o[d] && !l) return o[d](t, f, false); if (!o._evts) o._evts = ; if (!o._evts[t]) o._evts[t] = o[n] ? b: o[n] : ; o[n] = new Function('e', 'var r=true,o=this,a=o._evts["' + t + '"],i;for(i in a)o._f=a[i];r=o._f(e||window.event)!=false&&r;o._f=nullreturn r'); if (t != 'unload') addEvent(window, 'unload', function() removeEvent(rO, rT, rF, rL) ) if (!f._i) f._i = addEvent._i++; o._evts[t][f._i] = f ; addEvent._i = 1; var removeEvent = function(o, t, f, l) var d = 'removeEventListener'; if (o[d] && !l) return o[d](t, f, false); if (o._evts && o._evts[t] && f._i) delete o._evts[t][f._i] function cancelEvent(e, c) e.returnValue = false; if (e.preventDefault) e.preventDefault(); if (c) e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation() ; function DragResize(myName, config) var props = myName: myName, enabled: true, handles: ['tl', 'tm', 'tr', 'ml', 'mr', 'bl', 'bm', 'br'], isElement: null, isHandle: null, element: null, handle: null, minWidth: 10, minHeight: 10, minLeft: 0, maxLeft: 9999, minTop: 0, maxTop: 9999, zIndex: 1, mouseX: 0, mouseY: 0, lastMouseX: 0, lastMouseY: 0, mOffX: 0, mOffY: 0, elmX: 0, elmY: 0, elmW: 0, elmH: 0, allowBlur: true, ondragfocus: null, ondragstart: null, ondragmove: null, ondragend: null, ondragblur: null ; for (var p in props) this[p] = (typeof config[p] == 'undefined') ? props[p] : config[p] ; DragResize.prototype.apply = function(node) var obj = this; addEvent(node, 'mousedown', function(e) obj.mouseDown(e) ); addEvent(node, 'mousemove', function(e) obj.mouseMove(e) ); addEvent(node, 'mouseup', function(e) obj.mouseUp(e) ) ; DragResize.prototype.select = function(newElement) with (this) if (!document.getElementById || !enabled) return; if (newElement && (newElement != element) && enabled) element = newElement; element.style.zIndex = ++zIndex; if (this.resizeHandleSet) this.resizeHandleSet(element, true); elmX = parseInt(element.style.left); elmY = parseInt(element.style.top); elmW = element.offsetWidth; elmH = element.offsetHeight; if (ondragfocus) this.ondragfocus() ; DragResize.prototype.deselect = function(delHandles) with (this) if (!document.getElementById || !enabled) return; if (delHandles) if (ondragblur) this.ondragblur(); if (this.resizeHandleSet) this.resizeHandleSet(element, false); element = null handle = null; mOffX = 0; mOffY = 0 ; DragResize.prototype.mouseDown = function(e) with (this) if (!document.getElementById || !enabled) return true; var elm = e.target || e.srcElement, newElement = null, newHandle = null, hRE = new RegExp(myName + '-([trmbl]2)', ''); while (elm) if (elm.className) if (!newHandle && (hRE.test(elm.className) || isHandle(elm))) newHandle = elm; if (isElement(elm)) newElement = elm; break elm = elm.parentNode if (element && (element != newElement) && allowBlur) deselect(true); if (newElement && (!element || (newElement == element))) if (newHandle) cancelEvent(e); select(newElement, newHandle); handle = newHandle; if (handle && ondragstart) this.ondragstart(hRE.test(handle.className)) ; DragResize.prototype.mouseMove = function(e) with (this) if (!document.getElementById || !enabled) return true; mouseX = e.pageX || e.clientX + document.documentElement.scrollLeft; mouseY = e.pageY || e.clientY + document.documentElement.scrollTop; var diffX = mouseX - lastMouseX + mOffX; var diffY = mouseY - lastMouseY + mOffY; mOffX = mOffY = 0; lastMouseX = mouseX; lastMouseY = mouseY; if (!handle) return true; var isResize = false; if (this.resizeHandleDrag && this.resizeHandleDrag(diffX, diffY)) isResize = true else var dX = diffX, dY = diffY; if (elmX + dX < minLeft) mOffX = (dX - (diffX = minLeft - elmX)); else if (elmX + elmW + dX > maxLeft) mOffX = (dX - (diffX = maxLeft - elmX - elmW)); if (elmY + dY < minTop) mOffY = (dY - (diffY = minTop - elmY)); else if (elmY + elmH + dY > maxTop) mOffY = (dY - (diffY = maxTop - elmY - elmH)); elmX += diffX; elmY += diffY with (element.style) left = elmX + 'px'; width = elmW + 'px'; top = elmY + 'px'; height = elmH + 'px' if (window.opera && document.documentElement) var oDF = document.getElementById('op-drag-fix'); if (!oDF) var oDF = document.createElement('input'); oDF.id = 'op-drag-fix'; oDF.style.display = 'none'; document.body.appendChild(oDF) oDF.focus() if (ondragmove) this.ondragmove(isResize); cancelEvent(e) ; DragResize.prototype.mouseUp = function(e) with (this) if (!document.getElementById || !enabled) return; var hRE = new RegExp(myName + '-([trmbl]2)', ''); if (handle && ondragend) this.ondragend(hRE.test(handle.className)); deselect(false) ; DragResize.prototype.resizeHandleSet = function(elm, show) with (this) if (!elm._handle_tr) for (var h = 0; h < handles.length; h++) var hDiv = document.createElement('div'); hDiv.className = myName + ' ' + myName + '-' + handles[h]; elm['_handle_' + handles[h]] = elm.appendChild(hDiv) for (var h = 0; h < handles.length; h++) elm['_handle_' + handles[h]].style.visibility = show ? 'inherit' : 'hidden' ; DragResize.prototype.resizeHandleDrag = function(diffX, diffY) with (this) var hClass = handle && handle.className && handle.className.match(new RegExp(myName + '-([tmblr]2)')) ? RegExp.$1 : ''; var dY = diffY, dX = diffX, processed = false; if (hClass.indexOf('t') >= 0) rs = 1; if (elmH - dY < minHeight) mOffY = (dY - (diffY = elmH - minHeight)); else if (elmY + dY < minTop) mOffY = (dY - (diffY = minTop - elmY)); elmY += diffY; elmH -= diffY; processed = true if (hClass.indexOf('b') >= 0) rs = 1; if (elmH + dY < minHeight) mOffY = (dY - (diffY = minHeight - elmH)); else if (elmY + elmH + dY > maxTop) mOffY = (dY - (diffY = maxTop - elmY - elmH)); elmH += diffY; processed = true if (hClass.indexOf('l') >= 0) rs = 1; if (elmW - dX < minWidth) mOffX = (dX - (diffX = elmW - minWidth)); else if (elmX + dX < minLeft) mOffX = (dX - (diffX = minLeft - elmX)); elmX += diffX; elmW -= diffX; processed = true if (hClass.indexOf('r') >= 0) rs = 1; if (elmW + dX < minWidth) mOffX = (dX - (diffX = minWidth - elmW)); else if (elmX + elmW + dX > maxLeft) mOffX = (dX - (diffX = maxLeft - elmX - elmW)); elmW += diffX; processed = true return processed ;[/code] 我想把拉伸的功能去掉只留可拖动 ,帮帮忙 头都看大了
c# Winform自定义控件问题
我设计的复合控件,能否添加设计时的自定义事件,以处理某些配置文件的读写?
多文档窗口,无边框,可拖动,可拉伸
使用qt实现多文档窗口,无标题,可以拖动,可以自由拉伸,也可以自定义标题
C# WinForm 自定义控件 VS2008实现.
本代码中自定义了三个控件,都是继承自Panel控件,并且这些控件全部都是透明控件,可以实现控件之间很好的连接,适合在一些绘制管道走势图之类的场合使用,同时对建筑物和阀门这两个控件实现了缩小功能,点击缩小按钮,会实现这两个控件的缩小。并且代码中加了一个对控件事件重写的实例,点击控件会显示出一个MessageBox。
C#如何实现图片拖动和拉伸
在设计器中,直接拖入一个PictureBox控件,可以用鼠标任意拖动和拉伸,那么,程序运行之后,如何实现PictureBox中图片的拖动和拉伸呢?我在网上找了下,只找到了如何拖动,高手能否介绍下,怎么样实现图片的拉伸啊?就像在设计器中那样的拉伸。最近开始自学C#,比较菜,大家见笑了,还请大家不吝赐教^_^
winform自定义控件怎样完全透明
怎么实现控件之间的透明,不是背景透明,像这样n![图片说明](https://img-ask.csdn.net/upload/201603/16/1458123306_820051.png)n看过一个方法,但是我的控件可以拖动,用这种方法拖动的时候图形会变形(这种方法如果开双缓冲就会失效),下面是这个方法n![图片说明](https://img-ask.csdn.net/upload/201603/16/1458123475_898805.png)n有什么其他的方法吗,求大神!
【请教】c#自定义控件的一个问题
请教高手一个问题:我想自定义一个控件,这个控件时没有界面,但设计时可以从工具箱中选取和拖放,并在设计器的下方显示,比如像Timer、SerialPort之类一样,应该怎么实现呢?请不吝赐教!!谢谢!
自定义控件拉伸问题
如何使自定义控件不可上下拉伸,如象TextBox在单行编辑时只能左右拉伸不可上下拉伸,而且鼠标放在该空间上,只有左右拉伸框可选?急急急~!
自定义控件的一个问题 ?WINFORM。
public ComboxSex()rn rn tryrn rn this.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;rn this.FormattingEnabled = true;rn this.Items.AddRange(new object[] "男", "女" );rn //label = new System.Windows.Forms.Label();rn //label.Text = "性别";rn //this.Controls.Add (label);rnrn this.TextChanged += new EventHandler(ComboxSex_TextChanged);rn rn catch (Exception ex)rn rn throw ex; rn rn rnrnrn当在窗体 画此控件的时候。rn this.comboxSex1 = new WindowsControlLibrary2.ComboxSex();rn this.SuspendLayout();rn // rn // comboxSex1rn // rn [color=#FF0000]this.comboxSex1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;rn this.comboxSex1.FormattingEnabled = true;rn this.comboxSex1.Items.AddRange(new object[] rn "男",rn "女");[/color]rnnew 的时候执行了一次。rn为什么会出红色的代码。如何取消。
c# winform下可移动的透明图片
这个是能显示透明图片,并可以用鼠标拖动,我只添加了两个图片作为测试,在实际项目可以灵活修改,只要传入Image的图片对象就可以修改图片,这个我是在做地图编辑器是用到的!
C# 实现透明可移动窗体
C# 实现透明可移动窗体,加载透明png 做背景,实现漂亮UI。点击鼠标可拖动,支持自动缩放。
怎么用C#代码实现WPF中的控件拖动与拉伸
如题,希望大家不吝赐教,拖动与拉伸,先谢谢啦!
C# winform 文本编辑器
注意参考对C# winform 的设计及控件使用
winform控件拖动怎么实现?
winform窗体中将控件拖动,并且将拖支后的位置保存在INI文件中,下次打开时取INI中位置,怎么实现?rnINI中 rn用这个方法rn [DllImport("kernel32")]rn private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);rnrn虽然没有错误,但不能将数据写入文件中.rnrn应该怎么做?rn
C# winform 文本编辑器
C# winform 文本编辑器 实现文字大小,颜色,加粗,下划线,倾斜,左中右对齐,超链接 保存,载入,在VS2010下写的代码,要使用的话用.net4.0以上版本
自定义控件 ——可拖动测量尺子
前言: 最近做的一个项目,有个界面是 输入框输入数值的,后来产品觉得键盘输入麻烦,就换成了这样子,这是前几天Ui小伙子设计的界面: 分析: 其实简单的画一个测量尺子刻度控件并不会太难,其次就是被5和10
问一个c# winform自定义控件的问题
我自己弄了一个控件,上面放了几个按钮,然后想要响应事件rn比如该控件叫myTabControl,我把几个按钮的事件都绑定到 myTabControl_Click上rnrn然后界面上拖一个,名叫 myTabControlMain,然后我试图响应窗体上的myTabControlmyTabControl_ClickMain_Click总是没反应,rn控件的内部事件myTabControl_Click倒是运行了,谁告诉我如何解决这个问题啊
Silverlight 制作可拖动的自定义控件
Silverlight 制作可拖动的自定义控件 Silverlight 制作可拖动的自定义控件Silverlight 制作可拖动的自定义控件 Silverlight 制作可拖动的自定义控件
怎么让自定义控件透明?
rn//这是自定义控件里添加的自定义函数rn/********************************************rn函数说明: 绘制透明窗体rn*********************************************rn返回类型: 返回值为BOOL类型rn*********************************************rn参数个数,参数类型及说明: 参数一为HWND类型的,表示窗口句柄,参数二是BYTE类型的,表示透明度rn*********************************************/rnrnBOOL CPanel::DrawTransprentDlg(HWND hWnd,BYTE transprt)rnrn m_brush.CreateSolidBrush(RGB(255,0,255));//背景设置为粉红色rnrn //SetWindowsLong将窗体设置为层级窗体rn DWORD dwExStyle = GetWindowLong(hWnd,GWL_EXSTYLE);//获取窗体信息rn SetWindowLong(hWnd,GWL_EXSTYLE,dwExStyle|0x80000);//去掉当前窗口一个属性,原属性和rnrn //设置透明色:rn //用SetLayeredWindowAttributes设置透明色为0,它比UpdateLayeredWindow的使用要简单些rn HMODULE hInst= LoadLibrary(_T("User32.DLL"));//加载动态链接库 rnrn typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);//定义函数指针类型 rn MYFUNC SetLayeredWindowAttributes = NULL;//定义一个该函数指针类型的变量 rnrn //得到动态连接库的SetLayeredWindowAttributes函数,用SetLayeredWindowAttributes指向它 rn SetLayeredWindowAttributes = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");rnrn SetLayeredWindowAttributes(hWnd,150,0,1);//调用SetLayeredWindowAttributes函数 rn //SetLayeredWindowAttributes(hWnd,0,transprt,ULW_ALPHA);rn FreeLibrary(hInst);//释放DLL rn return true;rnrnrn//这是在初始化的时候创建以及让自定义控件透明,但是没有反应,大家来看看怎么回事rn// TODO: 在此添加额外的初始化代码rn rn //m_PanelDemorn m_PanelDemo.ShowWindow(SW_HIDE);rnrn CRect rec;rn GetClientRect(&rec);rn CPanel* panel = new CPanel();rn panel->Create(L"CPanel",L"CustomDlg",CS_HREDRAW | CS_VREDRAW | CS_OWNDC,rec,this,IDC_CUSTOM_NEW);rn panel->ShowWindow(SW_SHOW);rn panel->DrawTransprentDlg(panel->GetSafeHwnd(),0);rn //设置button在最顶层rn GetDlgItem(IDC_BUTTON2)->SetWindowPos(&wndTop,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);rn //GetDlgItem(IDC_CUSTOM1)->SetWindowPos(&wndBottom,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);rn
c# winform自定义控件属性设置问题
我自定义了一个控件,控件有属性ChildCount,然后拖到另外一个窗体里面,给控件属性设置了ChildCount为5,为什么最后运行出来还是0?属性没有赋值呢!rn这个还有什么需要注意的吗?rnC#大神们速来!!!
C# winform 自定义控件点击事件问题
自定义了一个控件如图,代码如下:rn[img=https://img-bbs.csdn.net/upload/201310/22/1382434790_37138.png][/img]rnrnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Drawing;rnusing System.Data;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnrnnamespace WindowsFormsApplication1rnrn public partial class UserControl1 : UserControlrn rn public UserControl1()rn rn InitializeComponent();rn rn public void SetNum(int i)rn rn label4.Text = i.ToString();rn rn rnrn主form 代码rnrnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnrnnamespace WindowsFormsApplication1rnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn int discannum =5;rn private void Form1_Load(object sender, EventArgs e)rn rn Point pt = new Point();rn UserControl1[] canctrl = new UserControl1[discannum];rn for (int j = 0; j < discannum; j++)rn rn canctrl[j] = new UserControl1();rn pt.X = j % 3 * 160;rn pt.Y = j / 3 * 150;rn canctrl[j].Location = pt;rn canctrl[j].Click += new EventHandler(canctrl_click);rn this.Controls.Add(canctrl[j]);rn canctrl[j].SetNum(j);rnrn rn rn private void canctrl_click(object sender, EventArgs e)rn rn int i=0;rn MessageBox.Show("你点了第" + i + "个控件");rn rn rnrnrn[img=https://img-bbs.csdn.net/upload/201310/22/1382434904_677780.png][/img]rn问题是:1我点击控件中空的地方可以响应事件,但是点击上面的字就不响应事件,如果我想在点击控件中lable,也要响应事件该怎么做?2,我怎么知道是点击的是哪个控件?谢谢大家了。
怎么实现控件的可拖动?
我想做一个控件,并且需要它能在显示界面上自由拖动,请问怎么实现?
Winform实现的可拖动调整节点的TreeView
通过Winform实现的可拖动调整节点的TreeView,了解多种事件的结合使用.
C# WinForm的一个问题,请教
问题:rn 假设一个winform应用程序,界面上有三个button,那么当一个button获得焦点时,用上下左右按键可以移动焦点rnrn我想要的效果就是:rn 按上下左右键时,不进行焦点的移动rnrnrn请问如何实现
C# winform程序拖动问题
form的FormBorderStyle = FormBorderStyle.None,在Form里面有个webBrowser控件,我想实现拖动的效果,最好有代码,谢谢各位大哥了!
图片拖动该怎么实现
[img=https://img-bbs.csdn.net/upload/201711/20/1511140429_627.png][/img]rnrn不是我是伸手党,这东西我弄了2天了还是没弄出来,网上也找不到合适的插件 只能来求助了。rnrn我要的效果:左边图片是可以拖动rn[code=html] rn rn rn rn rn [/code]rn[code=css] rn .leftrn rn width: 530px;rn height: 340px;rn overflow: hidden;rn [/code]rnrn最大div用了溢出隐藏,图片不限制宽高,但是用户可以拖动图片(类似于百度地图吧)rnrn这种方法该怎么做啊?或者给个插件的地址
自定义imageView(可拖动、拉伸、压缩)
可拖动、拉伸、压缩、的imageview
可拖动拉伸任意排版控件
模仿MFC资源编辑界面,可实现控件任意拖动,拉伸,左右上下对齐,实现打印排版并将坐标保存为xml
C#自定义控件之-winform美化
对于系统自带的窗体,博主实在不敢恭维,测试时使用方便快捷,但真正项目中无法使用,只因不美观的外表,每次都很头疼窗体的美化,这里列出一些需要解决的问题和自己收集到的解决方法,如有错误请指出。
C#,winform 自定义控件怎么做?
如题,说说方法,有源码教程更好,穷人,没分```
C# winform 自定义控件
C# winform 自定义控件 Windows窗体 C# winform 自定义控件 Windows窗体
C# WINFORM button自定义控件
C# WINFORM button自定义控件(主要功能控制鼠标在控件上的显示)
c# winform OpenFileDialog自定义控件
c# winform OpenFileDialog自定义控件的收藏。可以点击图片右边显示缩略图,感谢原作者Gustavo Franco
c# winform自定义控件
做了一个显示线段的自定义控件,背景设置为透明,现在两个控件如果重叠的话,下面的线段可以显示,但是下面那个控件注册的鼠标事件无法激活。有什么解决方法?
请教一个文本编辑器的问题
错误 1 未能加载文件或程序集“CuteEditor.ImageEditor”或它的某一个依赖项。系统找不到指定的文件。rnrn错误 2 未知的服务器标记“CE:ImageEditor”。rnrn我用的是CuteEditor编辑器,“<%@ Register namespace="CuteEditor.ImageEditor" assembly = "CuteEditor.ImageEditor" TagPrefix="CE" %>”这个也引用了,就是不知道问题出在哪里了,百度了,也找不到,拜托各位帮帮忙!rnrn江湖救急!!!
C# winform 自定义控件 鼠标事件
小弟自定义了一个控件为Panel_1在该控件中添加了一个PictureBox_1rnrn将该自定义控件添加到winform页面中,调用MouseLeave,使得离开该自定义控件Panel_1时自动将该控件隐藏掉。rnrn但问题来了:当鼠标移到该自定义控件Panel_1的PictureBox_1时,该MouseLeave事件居然触发了。。。。rnrnPictureBox_1不是属于该Panel的吗?rn为何这个移到该Panel中的控件触发了leave事件呢?rn该如何解决呢?rnrn求各位大神赐教啊
c# Winform 透明
要使用png透明图片按钮,由于窗口也存在背景图片,所以无法实现现对于父窗口透明效果!有没有好的方法?最好重叠控件之间也可以头面!
C# winform 透明Panel
C# winform 透明Panel ,可以当一个隐藏的按钮使用,写个关闭程序的功能,或者其他功能
C#添加自定义控件,写一个透明LISTBOX
已查阅大量资料,参考下面这个大神的方法,无法写入nhttp://blog.csdn.net/bdstjk/article/details/7007662。nOnSelectedIndexChanged没找到合适方法重写,且提示确实partial。不知为什么。n希望有详细的方法
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池