ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**设计界面** ---- 添加 Telerik.WinControls.UI.RadGridView 控件 代码 --- ~~~ //绑定列表 private BindingList<ModelDTO> list = new BindingList<ModelDTO>(new List<ModelDTO>()); ~~~ 初始化 radGridView ~~~ #region radGridView1 TEMPLATE this.radGridView1.MasterTemplate.AutoGenerateColumns = false; this.radGridView1.MasterTemplate.EnableGrouping = false; this.radGridView1.MasterTemplate.EnableFiltering = false; this.radGridView1.MasterTemplate.EnableSorting = false; this.radGridView1.Columns.Add(new GridViewTextBoxColumn() {                FieldName = "sn",                Name = "sn",                HeaderText = "打印条码",                Width = 270,                TextAlignment = ContentAlignment.MiddleCenter }); this.radGridView1.Columns.Add(new GridViewTextBoxColumn() {                FieldName = "PrintStatus",                Name = "PrintStatus",                HeaderText = "状态",                Width = 140,                TextAlignment = ContentAlignment.MiddleCenter }); #endregion ~~~ 数据列表和 控件绑定 ``` this.radGridView1.DataSource = list; ``` 数据列表常会操作 把对界面UI动态更新的操作放到Invoke 里面会更加安全 ``` this.BeginInvoke(new Action(() => {         list.Remove(job); list.Clear(); list.Add(job); })); ``` **获取选中数据** ``` Dto dto = this.radGridView1.CurrentRow.DataBoundItem as Dto; ``` **第一个选中** ``` this.radGridView1.Rows[0].IsCurrent = true; ``` **动态更新数据 ModelDTO 结构** ``` public class ModelDTO: INotifyPropertyChanged     {         public string MOCode { get; set; }         /// <summary>         /// 是否是当前任务         /// </summary>         private Boolean _IsCurrentJob;         public Boolean IsCurrentJob         {             get { return _IsCurrentJob; }             set             {                 if (_IsCurrentJob != value)                 {                     _IsCurrentJob = value;                     PropertyChanged(this, new PropertyChangedEventArgs("IsCurrentJob"));                 }             }         }         public string _PrintStatus;         public string PrintStatus         {             get { return _PrintStatus; }             set             {                 if (_PrintStatus != value)                 {                     _PrintStatus = value;                     PropertyChanged(this, new PropertyChangedEventArgs("PrintStatus"));                 }             }         }         public event PropertyChangedEventHandler PropertyChanged = delegate { };     } ``` **设置字体颜色** ``` gridView[column, row].Style.ForeColor = Color.Red;//设置第row行column列的单元格字体颜色 gridView.Rows[row].DefaultCellStyle.ForeColor = Color.Red;//设置第row行的行字体颜色 gridView.Columns[column].DefaultCellStyle.ForeColor = Color.Yellow;//设置第column列的列字体颜色 ``` **设置背景颜色** ``` gridView[column, row].Style.BackColor = Color.Red;//设置第row行column列的单元格背景颜色,其中gridView是gridView的Name(下同) gridView.Rows[row].DefaultCellStyle.BackColor = Color.Red;//设置第row行的行背景颜色 gridView.Columns[column].DefaultCellStyle.BackColor = Color.Yellow;//设置第column列的列背景颜色 ``` 字段自动换行 ``` this.radGridView1.AutoSizeRows = true; this.radGridView1.Columns.Add(new GridViewTextBoxColumn() { WrapText = true, }); ``` # **自定义封装的 GKGridView 控件使用** ### 功能:解决列重新排序保存问题 ### 代码实现 #### 1、设计器 修改部分 原来RadGridView 改为 GKGridView ``` private GKGridView radGridView1; this.radGridView1 = new JuQent.Mes.Client.Tablet.UserControl.GKGridView(); ``` #### 2、功能部分修改 标识命名规则:当前类名.GridView ``` //初始化 this.radGridView1.key = "标识"; this.radGridView1.ColumnSort();//排序功能 this.radGridView1.HideColumnByConfig();//隐藏字段 ``` ``` // 窗体关闭事件 private void 窗体名_FormClosed(object sender, FormClosedEventArgs e) { this.radGridView1.Close(); } ```