开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 17863|回复: 5
收起左侧

[C#作业] 第二十四天作业

[复制链接]
发表于 2019-4-30 15:09:24 | 显示全部楼层 |阅读模式   广东省揭阳市

今日主要学习内容

24.1 MDI(多文档界面)开发 单例模式实现
24.2 窗体间传值各种办法
24.3 Control类 - 可拖拽的按钮
24.4 Control类 - 动态添加控件 遍历控件案例

今日作业

  1. 实现一个可以通过鼠标左键按下时动态扩展大小的按钮?
  2. 实现一个可以将窗体上所有TextBox清空的方法?

评分

参与人数 1好评 +1 精币 +2 收起 理由
qingshanlushui + 1 + 2 假期愉快~

查看全部评分

发表于 2022-6-27 01:48:05 | 显示全部楼层   安徽省合肥市
namespace WinFormLesson24
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        Point point;
        Size btnChangesize;
        private void btnChange_MouseDown(object sender, MouseEventArgs e)
        {
            if(e.Button == MouseButtons.Left)
            {
                btnChangesize = btnChange.Size;
                point = Cursor.Position;//光标位置(都改成e.location 不好使,抖动厉害)
                btnChange.MouseMove += btnChange_MouseMove;
            }
        }

        private void btnChange_MouseMove(object sender, MouseEventArgs e)
        {        
            Point cpoint = Cursor.Position;
            int x=cpoint.X-point .X;
            int x=cpoint.X-point .X;
            int y = cpoint.Y - point.Y ;            
            btnChange.Size=new Size(x+ btnChangesize.Width, y+ btnChangesize.Height);
        }

        private void btnChange_MouseUp(object sender, MouseEventArgs e)
        {
            btnChange.MouseMove -= btnChange_MouseMove;
        }
    }
}
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2022-6-9 23:37:19 | 显示全部楼层   河北省保定市
1、实现一个可以通过鼠标左键按下时动态扩展大小的按钮?
[C#] 纯文本查看 复制代码
 public partial class Form1 : Form
    {
        Point point=new Point();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left) {
                point = Control.MousePosition;
                button1.MouseMove += Button1_MouseMove;
            }
        }

        private void Button1_MouseMove(object sender, MouseEventArgs e)
        {
            int x = Control.MousePosition.X - point.X;
            int y = Control.MousePosition.Y - point.Y;
            button1.Size = new Size(button1.Size.Width + x, button1.Size.Height + y);
            point = Control.MousePosition;
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            button1.MouseMove -= Button1_MouseMove;
        }
    }

2、实现一个可以将窗体上所有TextBox清空的方法?
[C#] 纯文本查看 复制代码
 foreach (var item in this.Controls)
            {
                if (item as TextBox!=null) {
                    (item as TextBox).Text = null;
                }
            }
回复 支持 反对

使用道具 举报

发表于 2019-7-2 00:11:41 | 显示全部楼层   湖南省长沙市

1、实现一个可以通过鼠标左键按下时动态扩展大小的按钮?

public partial class Form1 : Form{
        public Form1(){
            InitializeComponent();
        }
        Point point;
        Size size;
        Button button;
        private void Form1_Load(object sender, EventArgs e){
            button = new Button();
            button.Text = "测试";
            button.MouseDown += Button_MouseDown;
            button.MouseUp += Button_MouseUp;
            this.Controls.Add(button);
        }
        private void Button_MouseDown(object sender, MouseEventArgs e){
            if (e.Button == MouseButtons.Left){
                point = Cursor.Position;
                size = button.Size;
                button.MouseMove += Button_MouseMove; 
            }
        }
        private void Button_MouseMove(object sender, MouseEventArgs e){
            button.Width = size.Width + Cursor.Position.X - point.X;
            button.Height = size.Height + Cursor.Position.Y - point.Y;
        }
        private void Button_MouseUp(object sender, MouseEventArgs e){
            button.MouseMove -= Button_MouseMove;
        }
}

2、实现一个可以将窗体上所有TextBox清空的方法?

foreach (var item in this.Controls){
        if (item.GetType().Name == "textbox"){
                (item as TextBox).Text = null;
        }
}
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2019-6-13 10:27:19 | 显示全部楼层   江苏省南京市

1、实现一个可以通过鼠标左键按下时动态扩展大小的按钮?

左键按下向右移动按钮变宽,向左移动变窄,向上高度变小,向下高度变高
public partial class Form1 : Form{
        public Form1(){
            InitializeComponent();
        }
        Point point;
        Size size;
        Button button;
        private void Form1_Load(object sender, EventArgs e){
            button = new Button();
            button.Text = "测试";
            button.MouseDown += Button_MouseDown;
            button.MouseUp += Button_MouseUp;
            //button.Location = new Point { X=150, Y=152  };
            this.Controls.Add(button);//往当前控件添加也就是窗口
        }
        private void Button_MouseDown(object sender, MouseEventArgs e){
            if (e.Button == MouseButtons.Left){
                point = Cursor.Position;
                size = button.Size;
                button.MouseMove += Button_MouseMove;
            }
        }
        private void Button_MouseMove(object sender, MouseEventArgs e){
            button.Width = size.Width + Cursor.Position.X - point.X;
            button.Height = size.Height + Cursor.Position.Y - point.Y;
        }
        private void Button_MouseUp(object sender, MouseEventArgs e){
            button.MouseMove -= Button_MouseMove;
        }      
}

2、实现一个可以将窗体上所有TextBox清空的方法?
foreach (var item in this.Controls){
        if (item.GetType().Name == "textbox"){
                (item as TextBox).Text = "";
        }
}
感觉开始变得有趣了

评分

参与人数 1好评 +1 精币 +5 收起 理由
老郭 + 1 + 5 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2019-5-1 16:33:00 | 显示全部楼层   重庆市重庆市

1、实现一个可以通过鼠标左键按下时动态扩展大小的按钮?

左键按下不动时。。按钮宽和高每秒增加5,松开还原。。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        bool isContinue;
        Size size;
        private void Form1_Load(object sender, EventArgs e)
        {
          size = button1.Size;
        }

        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left) {
                isContinue = true;
                sizeChange(true);
            }
           
        }
        public void sizeChange (bool change) {
            //Console.WriteLine(size.Height);
            
            if (change == true)
            {
                button1.Width = button1.Width + 5;
                button1.Height = button1.Height + 5;
            }
            else {
                button1.Width =size.Width;
                button1.Height = size.Height;
                return;
            }
            Delay(1);
            sizeChange(isContinue);
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            isContinue = false;
        }
      
        public static bool Delay(int delayTime)
        {
            DateTime now = DateTime.Now;
            int s;
            do
            {
                TimeSpan spand = DateTime.Now - now;
                s = spand.Seconds;
                Application.DoEvents();
            }
            while (s < delayTime);
            return true;
        }

2、实现一个可以将窗体上所有TextBox清空的方法?

            foreach (var item in this.Controls)
            {
                if (item.GetType().Name == "textbox")
                {
                    (item as TextBox).Text = null;
                }
            }

评分

参与人数 1好评 +1 精币 +2 收起 理由
老郭 + 1 + 2 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表