C#窗体控件拖动】的更多相关文章

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 窗体控件移动 { public partial cl…
这篇博文总结下WPF中的拖动,文章内容主要包括: 1.拖动窗口 2.拖动控件 Using Visual Studio 2.1thumb控件 2.2Drag.Drop(不连续,没有中间动画) 2.3拖动一个控件 2.4让一个窗口内的所有(指定的)控件可拖动 3.Expression Blend X实现拖动(Best Practice) 小结 1.拖动窗口 我们知道,鼠标放在窗口的标题栏上按下就可以拖动窗体.我们要实现在窗口的全部地方或特定地方按下鼠标左键实现拖动. Winform的做法是,获取鼠标…
当winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错. 若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法. 例如:添加一个名为textbox1的TextBox控件,想将它的Visible设置为false,则执行下面的代码即可 textbox1.BeginInvoke(new Action(() => { textbox1.Visible= false; })); 另外WPF中,想达到winform同样的效果,利用Dispatcher…
回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled:  False禁用该按钮ps:启动后显示 (3)Visile:False控制按钮是否显示.常用于用户权限. (4)事件里面的Click 2:CheckBox:复选框 (1)Checked:True默认选中一个,False都不选 (2)Tag:可以存储自定义数,用户自己定义 取选中值: private…
sl简单自定义win窗体控件      相信大家接触过不少win窗体控件ChildWin子窗口就的sl自带的一个  而且网上也有很多类似的控件,而今天我和大家分享下自己制作个win窗体控件,希望对初学sl的朋友在学习自定义控件时有帮助.      首先先明确下两个概念用户控件和模板化控件.     用户控件是继承UserControl而来的控件,由于UserControl不支持模板,所以它只能用于组合现有控件件而不能用于设计可定制外观的控件.      模板化控件是继承自ContentContr…
http://msdn.microsoft.com/zh-cn/library/ms171728(VS.90).aspx http://msdn.microsoft.com/zh-cn/library/system.threading.parameterizedthreadstart(v=vs.80).aspx http://msdn.microsoft.com/zh-cn/library/ts553s52(v=vs.80).aspx private void button1_Click(obj…
回调函数方法是静态函数,需要调用窗体控件,赋值或取值. 定义 public static Form1 mainFrm;   mainFrm = this; public partial class Form1 : Form { public static Form1 mainFrm; public Form1() { mainFrm = this; InitializeComponent(); } public static void WaitCallBackReceiveConnectedIn…
按照比例缩放窗体控件及字体,如需等比例缩放,只需将x,y的比例设置成相同即可. 为了减小误差,建议使用原始尺寸来计算比例. private float X, Y; private bool b = false; public MainForm() { InitializeComponent(); X = this.Width; Y = this.Height; SetTag(this); b = true; } protected override void OnSizeChanged(Even…
可以提供选项列表的控件有ListBox.ComboBox.CheckedListBox,如何正确的使用和选择这些控件,下面对此进行讨论.首先对这三种控件的功能分别进行说明: ListBox ListBox用于显示项列表,用户可以从中选择一项或多项.如果项目总数超出可以显式的项目数,则ListBox会自动添加滚动条.当MultiColumn属性为true时,列表框以多列形式显示条目,并且会出现一个水平滚动条.当MultiColumn为false时,列表框以单列形式显示条目,并且会出现一个垂直滚动条…
原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A,运行效果图 Web窗体控件 1,文本框 1_1,文本框: 1_2,密码框: 1_3,文本域: 2,按钮 2_1,普通按钮: 2_2,链接按钮(假链接):LinkButton 2_3,图片按钮: 3,超链接  作用:负责页面之间的导航 HyperLink 4,标签   特点无色透明, 作用:呈现文本,…
问题描述: 一个窗体集成父窗体,发现无法直接修改父窗体的控件,比如修改大小等,父窗体控件已经设置为public,如果做成一个dll被引用无此问题 特征: 不禁使父窗体控件,就算新加一个控件也会这样:鼠标放到控件移动手方块上会出现一个“继承的控件”的tooptip, 异常正常情况 原因: 父窗体设置了WindowState属性为:System.Windows.Forms.FormWindowState.Maximized 在父窗体的designer.cs中有这么一句话: this.WindowSt…
主要是设计控件的MouseDown.MouseLeave.MouseMove事件.一步步来吧:1.定义一个枚举类型,描述光标状态 private enum EnumMousePointPosition { MouseSizeNone = 0, //'无 MouseSizeRight = 1, //'拉伸右边框 MouseSizeLeft = 2, //'拉伸左边框 MouseSizeBottom = 3, //'拉伸下边框 MouseSizeTop = 4, //'拉伸上边框 MouseSize…
由于 Windows 窗体控件本质上不是线程安全的.因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包括争用和死锁的情况.于是在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException 本文用一个很简单的示例来讲解这个问题(在窗体上放一个TextBox和一个Button,点击Button后,在新建的线程中设置Te…
说明: (1)设置窗体控件的TabIndex属性,(按回车顺序设置TabIndex的大小) (2)修改窗体的一个属性:KeyPreview=true //protected override void OnKeyPress(KeyPressEventArgs e) { //    if (e.KeyChar == 13) {         //        this.SelectNextControl(this.ActiveControl, true, false, true, true);…
c#中跨线程调用windows窗体控件解决. 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thre…
一.C#遍历窗体控件 主要遍历属于窗体(Form)的控件(Controls),假如窗体中有 Panel.Button 和 TextBox 控件,遍历代码如下: /// <summary> /// Winform C#遍历窗体控件 /// </summary> /// <param name="ctrlName">控件名称</param> public void ForeachFormControls(string ctrlName) {…
c#中如何跨线程调用windows窗体控件?   我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread th…
通过一个子线程来操作主线程中的控件,但是,这样作会出现一个问题(如图1所示),就是TextBox控件是在主线程中创建的,在子线程中并没有对其进行创建,也就是从不是创建控件的线程访问它.那么,如何解决跨线程调用Windows窗体控件呢?可以用线程委托实现跨线程调用Windows窗体控件.下面将上一个例子进行一下改动.代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using Sys…
C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 private Color _BorderColor = Color.Black; [Browsable(true), Description("边框颜色"), Category("自定义分组")] public Color BorderColor { get { retu…
C# WinForm窗体控件GroupBox修改边框颜色控件 1.新建组件这里可以自定义一个GroupBox控件起名为GroupBoxEx 2.增加一个BoderColor属性 private Color _BorderColor = Color.Black; [Browsable(true),Description("边框颜色"),Category("自定义分组")] public Color BorderColor { get { return _BorderC…
如何:对 Windows 窗体控件进行线程安全调用 访问 Windows 窗体控件本质上不是线程安全的. 如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态. 还可能会出现其他与线程相关的 Bug,例如争用情况和死锁. 确保以线程安全方式访问控件非常重要. 在未使用 Invoke 方法的情况下,从不是创建某个控件的线程的其他线程调用该控件是不安全的. 以下非线程安全的调用的示例. // This event handler creates a thread that…
原文:WPF实现控件拖动 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/details/51823637 实现控件拖动的基本原理是对鼠标位置的捕获,同时根据鼠标按键的按下.释放确定控件移动的幅度和时机. 简单示例: 在Grid中有一个Button,通过鼠标事件改编Button的Margin属性,从而改变Button在Grid中的相对位置. <Grid Name="gd"> <Butt…
今天在做C# winform 窗体控件遍历时遇到控件顺序的问题,也就是控件被遍历的先后问题.实际情况如下所述. 窗体界面如下: 界面构成是:主界面有一个 Panel (Panel_14),Panel_14上面有13个子 Panel(Panel_1 ~ Panel_13),每个子 Panel 上有10个 TextBox,为了便于操作TextBox中的数据需要将每个子Panel中的TextBox按照顺序存储到一个TextBox二维数组中 TextBoxArray[10, 13],实现代码如下: fo…
DockPanelSuite 是 Winform 中优秀的布局控件,但是这次使用过程中却出了个问题. 我遇到的问题是这样的,主窗体是通过 ShowDialog 显示的,子窗体的停靠状态为 DockState.Document,主窗体关闭时,并未真正 Close,仅是 Hide. 然后问题来了 问题1:在主窗体 Load 事件中直接 Show 子窗体,关闭主窗体后再次打开,报错 创建窗口句柄时出错. 这个问题临时处理,改为不在 Load 事件中默认打开子窗体. 问题2:打开子窗体后关闭主窗体,再次…
private Point mPoint = new Point(); private void 选择控件_MouseDown(object sender, MouseEventArgs e) { mPoint.X = e.X; mPoint.Y = e.Y; } private void 选择控件_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Point myPosittion…
https://zhidao.baidu.com/question/2116834779399609987.html [DllImport("user32.dll", EntryPoint = "ReleaseCapture")] public static extern void ReleaseCapture(); [DllImport("user32.dll", EntryPoint = "SendMessage")] p…
由于公司的业务调整,最近不仅开发bs,还有不熟悉的cs,人手也不足,项目还多,对于cs来说,算是小白,虽然是一个人,也是硬着头皮写,拖拽控件,自定义控件.一个项目下来,对cs有了很深的认识,这里好好感谢下老大以及身边的同事,总是在我绞尽脑汁也没想出好的解决方案时来给我指点迷津. 首先介绍下cs的页签功能,毕竟之前学校那会,仅仅是简单的弹出新窗体,关闭就窗体.对于项目中是菜单而言,肯定是要有子界面相互切换的功能,关于这一块,其实就是在主窗体中画一个Pannel(其他的listbox也可以),按钮点…
需求是这样,有个程序界面我们需要通过自己的程序持续输入数据,界面如图. 可以获得控件的句柄而用钩子写入值.这里需要用到spy++工具.在VS的工具下有个spy++工具,打开如下图 通过这个工具可以获得窗体的句柄,当然这里获得的句柄只能用于测试,因为.net开发的程序窗体每次打开句柄都会变,都需要重新获得.这个工具的用处在于找一个控件的前一句柄控件和后一句柄控件. 一.引用 //寻找目标进程窗口 [DllImport("USER32.DLL")] public static extern…
首先介绍基本WindowsApi: public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 函数说明:在窗口列表中寻找与指定条件相符的第一个窗口 导入库:user32.lib 头文件:winuser.h 命名空间 using System.Runtime.InteropServices; 参数说明 lpClassName String,窗口类名 lpWindowName String,窗口标…
新建窗体程序了,添加窗体事件Load(加载窗体时).Resize(调整控件大小时).自定义方法setTag(获取控件的width.height.left.top.字体大小等信息的值).setControls(根据窗体大小调整控件大小). float X, Y;//X表示窗体的宽度,Y表示窗体的高度 private void Form1_Load(object sender, EventArgs e) { //this.Resize += new EventHandler(Form1_Resize…