winform C# 将线定义成控件放在pictruebox上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform C# 将线定义成控件放在pictruebox上相关的知识,希望对你有一定的参考价值。

给两个坐标,建立一条线,要做成控件的形式,因为要根据picturebox比例放大缩小。我用的Scale方法,如果把线做成控件放到picturebox上就不用自己改了。但我不知道怎么样把线定义成控件。。。请会的朋友解答下。线要显示在pictruebox上。
panel可以定义到picturebox上吗?我要根据picturebox的缩放改变线段的大小和位置。要是不能包含在内的话是不能同时改的。

还是需要将线段定义成控件的方式。。。有没有知道怎么样写的大哥大姐呀。。。

缩放的话,只要将第二个点的坐标值根据缩放比换算一下就行了
g.DrawLine(pen, 0, 0, 100*Scale_x, 100*Scale_Y);
-----------------------------------------------------
可以用GDI+来画线,picturebox是容器,可以进行绘画的。
private void pictureBox1_Paint(object sender, PaintEventArgs e)

Graphics g = e.Graphics;
Pen pen = new Pen(Color.Green);
g.DrawLine(pen, 0, 0, 100, 100);
参考技术A 另类思路你可以把panel控件重写,填充上颜色规定长宽不就可以吗

panel可以定义到picturebox上吗?我要根据picturebox的缩放改变线段的大小和位置。要是不能包含在内的话是不能同时改的?

难道你不能在picturebox重绘的时候操作一下吗,picturebox的大小跟panel大小一样就可以啊
参考技术B panel可以定义到picturebox上吗?好像不可以的,但是
做法1:pictureBox1.CreateGraphics你可以在image改变时直接按比例画图的

2:你可以自己写个控件什么实现。

C# WinForm开发

C# WinForm开发

1.创建C# WinForm项目

a.进入项目界面

视图里打开工具箱,里面包含所有控件。

b.项目结构

Form1.cs 由两部分组成,一部分业务逻辑,一部分设计器(自动生成代码)。


c.自定义一个Form


2.给控件添加事件

方法1:双击对应的控件。

方法2:属性-事件-回车

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("我是Herio");
        }

3.显示时间小项目

        private void ButtonClicked(object sender, EventArgs e)
        {
           string timeStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            timeField.Text = timeStr;
        }

控件设计下的Name就是字段名,Text就是显示的文本。

4.控件

1.Anchor 可设置四个方向的边距不变。

2.Panel面板,配合Dock属性使其停靠在某一侧。

3.Anchor和Dock不能同时设置。

4.自定义控件

5.几种布局

a.FlowLayoutPanel 流式布局

配合dock属性可实现,改变窗体大小时流式布局。

b.TableLayoutPanel 表格布局

表格布局

c.可以自定义控件

6.文本框

绑定一个KeyPress 事件:

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            char ch  = e.KeyChar;
            if (ch == '\\r')
            {
                string str = nameBox.Text;
                MessageBox.Show("用户输入了: "+str);
            }
        }

7.CheckBox 复选框

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
            bool isChecked = checkBox.Checked;
            if (isChecked)
            {
                passwordBox.PasswordChar = '\\0';
            }
            else passwordBox.PasswordChar = '*';
        }

8.其他的一些控件

下拉框Comobox

listBox 列表框

PictureBox 图片框

9.资源文件

位于Properties下的Resources.resx

10.自定义控件

11.单文件形式控件

自定义类。

学习视频

https://www.bilibili.com/video/BV1d7411F7PG?p=51

以上是关于winform C# 将线定义成控件放在pictruebox上的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForms 用鼠标拖动控件

C# WinForm 自定义控件如何实现动态添加子控件

C# WinForm应用程序,PictureBox控件透明效果的相关问题。

c# winform 报表打印

C# winform怎么样把窗口设置成两边和下面无边框,求沟通。。。

c# winform 制作自定义控件