最近在用cordova(phonegap)写一个移动app,表单比较复杂,用了knockoutJs作为前端的MVVM框架进行数据绑定. 但是发现有时候(其实是每次)如果最后在input中编辑一个值,然后直接点保存按钮(用JQM的tap事件,之前直接用touchend也一样),会发现最后焦点所在的这个控件的值没有更新. 猜测是因为KO的value绑定默认是在控件触发change事件时更新view model中的值,但是不知道为什么点击保存按钮并没有触发最后这个input的change事件. 解决方…
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class TestActivity extends Activity { private TextView tv; // 1 .创建出来handler 要求必须在主线程里面创建 private Hand…
来源:http://www.cnblogs.com/rainbowzc/archive/2010/09/29/1838788.html 由于多线程可能导致对控件访问的不一致,导致出现问题.C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时会抛出异常. 解决办法有两个: 1.不进行线程安全的检查 2.通过委托的方式,在控件的线程上执行 常用写法:(不安全) private void WriteToolStripMsg(string msg, Color…
一.概述 每个系统中都有线程(至少都有一个主线程),而线程最重要的作用就是并行处理,提高软件的并发率.针对界面来说,还能提高界面的响应能力.一般的,为了应用的稳定性,在数据处理等耗时操作会单独在一个线程中运行,而所有与主UI线程有关的控件数据刷新应该到主UI线程中处理.也就是数据处理线程发消息,让界面UI去更新控件.在MFC中线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个“消息队列”,“消息队列”也是界面线程和工作者线程的最大区别,这个词应该进到你的脑子里,根深…
一.背景 由于在窗体程序中通过点击一个button按键后需要更新TreeView控件的内容,由于等待时间比较长,主程序无法一起在那边等待,需要去处理其它的事情,所以就需要创建新的子线程来处理.因为主线程主要用于窗体程序的更新,但子线程又存在问题是C#中禁止跨线程直接访问控件,所以子线程中要更新窗体程序的控件要使用委托主线程来处理更新控件. 二.程序分析 using System.Threading; //声明线程命名空间 private void Updatebutton_Click(objec…
在实际工作中,我们有可能遇见只更新不插入的情况,可以由以下2种方式去实现: 1.更新控件 如下图所示,根据id字段,更新name和cjsj时间字段 该控件不足的地方是,用来查询关键值得字段不够灵活,一些在sql里面where条件后的decode,nvl,to_date等字段均无法写在用来查询值的关键字上,但是速度较快 2.sql输入 如下图所示,根据id字段,更新name和cjsj时间字段 该控件比较灵活,一些在sql里面where条件后的decode,nvl,to_date等字段均无法写在用来…
用户控件如果在其他的项目被引用,希望更新控件后,所引用的项目同步更新效果,一开始难免失败,特别是更换了控件所在的文件夹. 这个时候,四部曲来解决控件的更新. 1.运行一下控件的项目,使控件生成一下. 2.在要引用的项目,左侧的控件列表,点击重置列表或者删除之前引用的控件. 3.在要引用的项目,右侧的引用中,将之前的控件引用移除. 4.打开要引用项目的文件夹,把之前引用的控件版本删除掉.比如debug下的exe 然后重新在左侧的控件栏目右键添加项,选择新的控件即可. 不知道有没有多余的步骤,没有具…
static Dictionary<Control, bool> m_lstFreezeControl = new Dictionary<Control, bool>(); /// <summary> /// 功能描述:停止更新控件 /// </summary> /// <param name="control">control</param> /// <param name="blnToFreez…
一.简单介绍 UITableViewCell是UITableView的核心部分,我们在开发中因为功能的扩展经常需要自定义,以便在其上面添加子控件,例如button.label等.添加后获取这些子控件的cell,因为iOS不同系统的缘故此处会有一个坑,可能会崩溃.接下来以button为例来解决. 二.崩溃情况 在自定义cell的时候,在cell上添加了一个button,然后在controller中调用这个button的时候要获取到cell,在iOS6中直接button.superView就可以.…
m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDITLABELS ,rect,&m_tabListTable,); m_List.ModifyStyle(,WS_EX_CLIENTEDGE,SWP_DRAWFRAME); 最后的Id只要不跟resource.h里的重复,随便填一个. 效果: =============================…