Tuesday, July 8, 2008

Cách thiết lập focus cho một control khác sau khi sử lý sự kiện AfterSelect của TreeView

TreeView control có thể gây cho bạn khó khăn trong trường hợp này, nó cập nhật lại Node được lựa chọn và thực hiện focus trở lại Node này sau khi xử lý sự kiện. Cách thực hiện cho trường hợp này là làm trễ việc thực thi đoạn code của bạn cho đến khi hoàn thành việc xử lý sự kiện trên control TreeView. Dưới đây là sample cho việc xử lý trường hợp này:

private delegate void FocusAfterSelect(TreeNode node);
 
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
{
    this.BeginInvoke(new FocusAfterSelect(HandleAfterSelect), e.Node);
}
 
private void HandleAfterSelect(TreeNode node) 
{
    textBox1.Text = node.Text;
    textBox1.Focus();
}

No comments:

Post a Comment