使用文本框对Winform图形进行数据绑定

尼拉吉

我想Rectangle在一个Paint事件中绘制一个using下面的代码

e.Graphics.DrawRectangle(Pens.Red, x1, y1, width1, height1);

如何使用C#将矩形的宽度/高度数据绑定到ATextBoxForm我想根据TextBox输入立即更改绘制矩形的大小

雷扎·阿盖伊(Reza Aghaei)

要解决该问题,请考虑以下几点:

  1. Rectangle是一个struct,您不能将其用于数据绑定,因为在设置数据绑定时,您的结构将按Binding传递给对象,并且所有更改都将在它的另一个实例上进行。您需要一个类来保存数据绑定的属性。

  2. 为了能够刷新图形,您应该在Paint图形表面出现事件时放置图形逻辑然后,当您需要刷新图形时,请调用Invalidate图形表面的方法。

  3. 您可以在更改文本后立即重绘矩形,而无需使用数据绑定。在这种情况下,只要InvalidateTextChanged发生事件时调用绘制表面的方法TextBox并解析输入的值,然后在Paint事件中使用它绘制矩形就足够了

例子

在此示例中,我使用aForm作为绘图表面并在中定义Width1Height1属性,Form并将TextBox控件绑定到这些属性。我调用this.Invalidate()属性的setter来刷新窗体上的绘画:

public partial class Form1 : BaseForm
{
    public Form1()
    {
        InitializeComponent();
        this.Load += Form1_Load;
    }
    int x1, y1, width1, height1;
    public int Width1
    {
        get { return width1; }
        set { width1 = value; this.Invalidate(); }
    }
    public int Height1
    {
        get { return height1; }
        set { height1 = value; this.Invalidate(); }
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        x1 = 10; y1 = 10; Width1 = 100; Height1 = 100;
        this.width1TextBox.DataBindings.Add("Text", this, "Width1", true,
            DataSourceUpdateMode.OnPropertyChanged);
        this.height1TextBox.DataBindings.Add("Text", this, "Height1", true,
            DataSourceUpdateMode.OnPropertyChanged);
        this.Paint += ProductListForm_Paint;
    }
    void ProductListForm_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawRectangle(Pens.Red, x1, y1, Width1, Height1);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用未命名的文本框和列表框进行数据绑定

来自分类Dev

如何在两个不同的窗口中的文本框和标签之间进行数据绑定?

来自分类Dev

使用AngularJS使数据绑定输入文本框可更新

来自分类Dev

使用Android对话框进行数据绑定

来自分类Dev

数据绑定到文本框

来自分类Dev

使用DataSourceUpdateMode.OnPropertyChanged进行数据绑定Winform C#有什么好处

来自分类Dev

在DataGridView Winform中按列进行数据绑定

来自分类Dev

使用数据绑定在文本框中显示文本文件数据

来自分类Dev

使用srcCompat进行数据绑定

来自分类Dev

WPF文本框未使用数据绑定,iNotifyPropertyChanged和PropertyChanged触发器更新

来自分类Dev

使用JavaScript将值从dropdownlist(绑定到数据库)传递到文本框

来自分类Dev

数据绑定文本框仅在我编辑后更新。以 wpf 形式使用 MVVM

来自分类Dev

数据绑定到文本框不起作用

来自分类Dev

数据绑定到文本框不起作用

来自分类Dev

在文本框中绑定两个数据

来自分类Dev

在指令中使用ng-if时,无法通过文本输入进行数据绑定

来自分类Dev

动态文本框绑定

来自分类Dev

C#WPF文本框绑定:使用异常并在空文本框后添加

来自分类Dev

C#WPF文本框绑定:使用异常并在空文本框后添加

来自分类Dev

如何将Winform文本框绑定到类属性?

来自分类Dev

Windows 8 APP,使用数据绑定更改XAML文本框的文本...游戏循环工作线程导致问题

来自分类Dev

使用下拉框和文本框进行计算

来自分类Dev

如何使用MVVM正确绑定文本框

来自分类Dev

使用AngularJS清除绑定的SmartTable文本框

来自分类Dev

使用 MVVM Light 绑定两个文本框

来自分类Dev

使用绑定以编程方式填充文本框

来自分类Dev

VB.NET 多行数据网格值到文本框(在文本框中显示一行)

来自分类Dev

在数据网格上进行多个文本框搜索

来自分类Dev

从其他文本框绑定文本框

Related 相关文章

  1. 1

    使用未命名的文本框和列表框进行数据绑定

  2. 2

    如何在两个不同的窗口中的文本框和标签之间进行数据绑定?

  3. 3

    使用AngularJS使数据绑定输入文本框可更新

  4. 4

    使用Android对话框进行数据绑定

  5. 5

    数据绑定到文本框

  6. 6

    使用DataSourceUpdateMode.OnPropertyChanged进行数据绑定Winform C#有什么好处

  7. 7

    在DataGridView Winform中按列进行数据绑定

  8. 8

    使用数据绑定在文本框中显示文本文件数据

  9. 9

    使用srcCompat进行数据绑定

  10. 10

    WPF文本框未使用数据绑定,iNotifyPropertyChanged和PropertyChanged触发器更新

  11. 11

    使用JavaScript将值从dropdownlist(绑定到数据库)传递到文本框

  12. 12

    数据绑定文本框仅在我编辑后更新。以 wpf 形式使用 MVVM

  13. 13

    数据绑定到文本框不起作用

  14. 14

    数据绑定到文本框不起作用

  15. 15

    在文本框中绑定两个数据

  16. 16

    在指令中使用ng-if时,无法通过文本输入进行数据绑定

  17. 17

    动态文本框绑定

  18. 18

    C#WPF文本框绑定:使用异常并在空文本框后添加

  19. 19

    C#WPF文本框绑定:使用异常并在空文本框后添加

  20. 20

    如何将Winform文本框绑定到类属性?

  21. 21

    Windows 8 APP,使用数据绑定更改XAML文本框的文本...游戏循环工作线程导致问题

  22. 22

    使用下拉框和文本框进行计算

  23. 23

    如何使用MVVM正确绑定文本框

  24. 24

    使用AngularJS清除绑定的SmartTable文本框

  25. 25

    使用 MVVM Light 绑定两个文本框

  26. 26

    使用绑定以编程方式填充文本框

  27. 27

    VB.NET 多行数据网格值到文本框(在文本框中显示一行)

  28. 28

    在数据网格上进行多个文本框搜索

  29. 29

    从其他文本框绑定文本框

热门标签

归档