博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
winform dategridview 自动完成。
阅读量:7179 次
发布时间:2019-06-29

本文共 1756 字,大约阅读时间需要 5 分钟。

1,先上图

 

代码如下。

 
ExpandedBlockStart.gif
View Code
 1 
 
private
 AutoCompleteStringCollection autoCompleteSource 
=
 
new
 AutoCompleteStringCollection();
 2 
 3 
   
private
 
void
 dataGridView1_EditingControlShowing(
object
 sender, DataGridViewEditingControlShowingEventArgs e)
 4 
        {
 5 
            DataGridView dgv 
=
 (DataGridView)sender;
 6 
            
if
 (e.Control 
is
 TextBox)
 7 
            {
 8 
                TextBox tb 
=
 (TextBox)e.Control;
 9 
                
if
 (dgv.CurrentCell.OwningColumn.Name
==
"
Name
"
)
10 
                {
11 
                    tb.AutoCompleteMode 
=
 AutoCompleteMode.SuggestAppend;
12 
                    tb.AutoCompleteSource 
=
 AutoCompleteSource.CustomSource;
13 
                    tb.AutoCompleteCustomSource 
=
 
this
.autoCompleteSource;
14 
                }
15 
                
else
16 
                {
17 
                    tb.AutoCompleteMode 
=
 AutoCompleteMode.None;
18 
                }
19 
            }
20 
        }
21 
22 
        
private
 
void
 dataGridView1_DataSourceChanged(
object
 sender, EventArgs e)
23 
        {
24 
            var dgv 
=
 (DataGridView)sender;
25 
            
this
.autoCompleteSource.Clear();
26 
            
foreach
 (DataGridViewRow r 
in
 dgv.Rows)
27 
            {
28 
                
string
 val 
=
 r.Cells[
"
Name
"
].Value 
as
 
string
;
29 
                
if
 (
!
string
.IsNullOrEmpty(val) 
&&
 
!
this
.autoCompleteSource.Contains(val))
30 
                {
31 
                    autoCompleteSource.Add(val);
32 
                }
33 
            }
34 
        }
35 
36 
        
private
 
void
 dataGridView1_CellValidating(
object
 sender, DataGridViewCellValidatingEventArgs e)
37 
        {
38 
39 
        }
40 
        
//
添加新的成员
41 
        
private
 
void
 dataGridView1_CellValueChanged(
object
 sender, DataGridViewCellEventArgs e)
42 
        {
43 
            
int
 i
=
0
;
44 
            
if
 (e.RowIndex 
==
 
-
1
)
45 
            {
46 
                i 
=
 
0
;
47 
            }
48 
            
else
49 
            {
50 
                i 
=
 e.RowIndex;
51 
            }
52 
            var dgv 
=
 (DataGridView)sender;
53 
            
if
 (dgv.Columns[e.ColumnIndex].Name 
==
 
"
Name
"
)
54 
            {
55 
                
string
 val 
=
 dgv[e.ColumnIndex, i].Value 
as
 
string
;
56 
                
if
 (
!
string
.IsNullOrEmpty(val) 
&&
 
!
this
.autoCompleteSource.Contains(val))
57 
                {
58 
                    autoCompleteSource.Add(val);
59 
                }
60 
            }
61 
        }
 

 通过以上几个步骤就可以完成自动完成的实现了。

 

 

 

 

转载于:https://www.cnblogs.com/85538649/archive/2011/09/15/2177232.html

你可能感兴趣的文章
【译】函数式的React
查看>>
Redis 和 Memcached 的区别大吗?只选一个做缓存我们该选哪个?
查看>>
跟父亲一样伟大的程序员,请一定要照顾好自己!
查看>>
java B2B2C Springboot电子商城系统-高可用的服务注册中心
查看>>
CSS技巧:Flex弹性布局大型攻略
查看>>
UVC摄像头-学习
查看>>
深入理解多线程(四)—— Moniter的实现原理
查看>>
前端面试中常考的源码实现
查看>>
vue基于viewer实现的图片查看器
查看>>
HTML、CSS、JavaScript
查看>>
Html5的新特性总结
查看>>
来一个阿里妈妈字体图标的简单说明书吧
查看>>
git 入门教程之撤销更改
查看>>
React在线编辑国际化文本
查看>>
了解多线程!
查看>>
Android Jetpack架构组件之 Paging(使用、源码篇)
查看>>
Day 4
查看>>
面向对象(理解对象)——JavaScript基础总结(一)
查看>>
写项目代码之前必须要做的事
查看>>
别装啦!一看就知道你要跳槽了.....
查看>>