Ext.form.Combox静态下拉框的编写

本文介绍使用ExtJS创建城市下拉选择框的方法,包括如何定义数据源、配置ComboBox组件等,并提供两种实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var cities=[
  [1,'大港区'],
  [2,'静海'],
  [3,'宁河'],
  [4,'宝坻'],
  [5,'武清'],
  [6,'蓟县']
 
 ];
 var proxy=new Ext.data.MemoryProxy(cities);
 var City=new Ext.data.Record.create([
 {name:'cid',type:'int',mapping:0},
 {name:'cname',type:'string',mapping:1}
 ]);
 var reader=new Ext.data.ArrayReader({},City);
 var store=new Ext.data.Store({
  proxy:proxy,
  reader:reader,
  autoLoad:true
 });
 var combobox=new Ext.form.ComboBox({
  renderTo:Ext.getBody(),
  tiggerAction:'all',
  store:store,
  readOnly:true,
  displayField:'cname',
  valueField:'cid',
  mode:'local',
  emptyText:'请选择城市....'
 }
第二种:
var myd = new Ext.form.ComboBox({
                     id: 'sd_myd',
                     typeAhead: true,
                     triggerAction: 'all',
                     fieldLabel: '满意度',
                     width: 160,
                     displayField: 'is',
                     emptyText: i18n.ib_workerOrderRecord.all,
                     valueField: 'id',
                     readOnly: true,
                     mode: 'local',
                     store: new Ext.data.SimpleStore({
                            fields: ['id', 'is'],
                            data: [['all', i18n.ib_workerOrderRecord.all], ['1', '满意'],['2','一般'],['3','不满意']]
                     })
              });




                
在使用WinForm的DataGridView控件时,如果遇到ComBox下拉框背景为黑色的问题,可以通过以下几种方法来解决: 1. **设置ComBox的样式**: 确保ComBox的样式设置正确,可以通过设置`FlatStyle`属性为`Flat`或`Standard`,并设置`BackColor`属性为需要的颜色。 ```csharp DataGridViewComboBoxColumn comboColumn = new DataGridViewComboBoxColumn(); comboColumn.FlatStyle = FlatStyle.Standard; comboColumn.BackColor = Color.White; // 设置为需要的颜色 ``` 2. **设置DataGridView的样式**: 确保DataGridView的样式设置正确,可以通过设置`EnableHeadersVisualStyles`属性为`false`,并设置`DefaultCellStyle`属性来改变单元格的背景色。 ```csharp dataGridView1.EnableHeadersVisualStyles = false; dataGridView1.DefaultCellStyle.BackColor = Color.White; // 设置为需要的颜色 ``` 3. **设置操作系统的颜色设置**: 有时操作系统的颜色设置可能会影响应用程序的显示效果。可以尝试更改操作系统的颜色设置,确保没有使用高对比度模式或其他可能影响颜色显示的设置。 4. **处理ComBox的DrawItem事件**: 如果以上方法无效,可以通过处理ComBox的`DrawItem`事件来自定义下拉框的绘制。 ```csharp private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell is DataGridViewComboBoxCell) { ComboBox combo = e.Control as ComboBox; if (combo != null) { combo.DrawMode = DrawMode.OwnerDrawFixed; combo.DrawItem -= Combo_DrawItem; combo.DrawItem += Combo_DrawItem; } } } private void Combo_DrawItem(object sender, DrawItemEventArgs e) { ComboBox combo = sender as ComboBox; if (e.Index >= 0) { e.DrawBackground(); using (SolidBrush brush = new SolidBrush(combo.ForeColor)) { e.Graphics.DrawString(combo.Items[e.Index].ToString(), e.Font, brush, e.Bounds); } e.DrawFocusRectangle(); } } ``` 通过以上方法,应该可以解决WinForm的DataGridView中ComBox下拉框背景为黑色的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值