none
数据绑定时,当控件值为空时,其它控件无法响应 RRS feed

  • 问题

  • 在下面的代码中,当文本框为空时,其它控件没有响应,比如无法退出程序。在代码中给这些控件赋值为0是我不想要的。请问如何处理?谢谢

    public partial class frmMain : Form
    {
    	public frmMain()
    	{            
    		InitializeComponent();
    		LengthConvert lengthConvert = new LengthConvert();
    		txtM.DataBindings.Add("Text", lengthConversion, "M", true, DataSourceUpdateMode.OnPropertyChanged);
    		txtDm.DataBindings.Add("Text", lengthConversion, "Dm", true, DataSourceUpdateMode.OnPropertyChanged);
    	}
    }
    
    
    
    class lengthConversion
    {
    	private double mm;
    	
    	public double Mm
    	{
    		get { return mm; }
    		set { mm = value; }
    	} 		
    	public double M
    	{
    		get { return mm / 1000; }
    		set { mm = value * 1000; }
    	}
    	public double Dm
    	{
    		get { return mm / 100; }
    		set { mm = value * 100; }
    	}
    }


    • 已编辑 leon1526 2018年1月20日 3:35 更改问题描述
    2018年1月20日 3:25

答案

  • 按照逻辑来说,应该要在实例化类的时候给属性赋值,没有值是没有意义的。

    加一个构造函数,初始化mm即可。或者直接给Mm赋值。


    family as water

    • 已标记为答案 leon1526 2018年2月1日 10:48
    2018年1月21日 10:12

全部回复

  • 按照逻辑来说,应该要在实例化类的时候给属性赋值,没有值是没有意义的。

    加一个构造函数,初始化mm即可。或者直接给Mm赋值。


    family as water

    • 已标记为答案 leon1526 2018年2月1日 10:48
    2018年1月21日 10:12
  • 感谢您的回复。

    缺省的构造函数中double属性的值为0,程序启动时文本框的值也是为0,实际上我是希望它为空。上面的问题是我调用了一个清空文本框的自定义方法后出现的,为了方便描述,我将这一部分去掉了。我想应该是没有数据源的原因吧。怎么样让它忽略这个问题呢?

    我是想做类似下面这样一个单位转换工具:当在任一个文本框中输入一个数字的时候,其它文本框输出对应单位的值。

    2018年1月21日 11:20
  • Hi,

    欢迎在MSDN论坛发帖。

    如果你希望在text控件里面输入值,其他 text控件也跟着变动,你可以使用 TextChanged 事件,通知其他控件。

    下面是如何使用textchanged 事件实例,你可以参考一下。

    https://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月22日 6:35
    版主