- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[DEVEXPRESS] Hướng dẫn đổi tên caption tiêu đề header column trên GridView
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách thay đổi tiêu đề trực tiếp trên Header Column Gridview Devexpress C# Winform.
[DEVEXPRESS] Rename caption column header gridview c#
Khi các bạn thiết kế ứng dụng, thông thường các bạn sẽ đặt tên cho các cột trên table Gridview.
Và bạn mong muốn là có thể cho phép người dùng cuối được tùy ý thay đổi tên cột theo ý muốn của họ.
Thì bài viết sau, sẽ giúp bạn thực hiện điều này một cách đơn giản.
Các bạn nhớ sau khi thay đổi tiêu đề column, các bạn cần phải lưu layout trên Gridview lại nhé.
Giao diện demo ứng dụng thay đổi tên column Header Gridview devexpress:
Đầu tiên, các bạn tạo cho mình class MyGridColumnRenameHelper.cs
với nội dung sau:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Columns;
using DevExpress.Utils;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraEditors;
using DevExpress.Skins;
namespace RenameHeaderColumn
{
public class MyGridColumnRenameHelper
{
#region Fields
GridView gridView;
TextEdit headerEdit;
GridColumn editedColumn;
#endregion
public bool IsEditing
{
get { return editedColumn != null; }
}
#region Methods
public MyGridColumnRenameHelper(GridView view)
{
gridView = view;
Initialize();
SubscribeEvents();
}
void SubscribeEvents()
{
gridView.DoubleClick += gridView_DoubleClick;
headerEdit.Leave += headerEdit_Leave;
headerEdit.KeyDown += headerEdit_KeyDown;
}
GridColumn GetColumn(DXMouseEventArgs args)
{
GridHitInfo info = gridView.CalcHitInfo(args.Location);
if (info.InColumnPanel) return info.Column;
return null;
}
Color GetColor()
{
Skin currentSkin = CommonSkins.GetSkin(gridView.GridControl.LookAndFeel);
return currentSkin.TranslateColor(SystemColors.Control);
}
void Initialize()
{
gridView.OptionsCustomization.AllowSort = false;
headerEdit = new TextEdit();
headerEdit.Hide();
headerEdit.Parent = gridView.GridControl;
headerEdit.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
}
void ShowCaptionEditor(GridColumn column)
{
GridViewInfo vi = gridView.GetViewInfo() as GridViewInfo;
Rectangle bounds = vi.ColumnsInfo[column].Bounds;
bounds.Width -= 3;
bounds.Height -= 3;
bounds.Y += 3;
headerEdit.BackColor = GetColor();
headerEdit.SetBounds(bounds.X, bounds.Y, bounds.Width, bounds.Height);
headerEdit.EditValue = column.GetCaption();
headerEdit.Show();
headerEdit.Focus();
}
void StartColumnCaptionEditing(GridColumn column)
{
ShowCaptionEditor(column);
editedColumn = column;
}
void EndColumnCaptionEditing()
{
if (!IsEditing) return;
editedColumn.Caption = headerEdit.Text;
headerEdit.Hide();
editedColumn = null;
}
#endregion
void gridView_DoubleClick(object sender, EventArgs e)
{
GridColumn column = GetColumn(e as DXMouseEventArgs);
if (column == null) return;
StartColumnCaptionEditing(column);
}
void headerEdit_Leave(object sender, EventArgs e)
{
EndColumnCaptionEditing();
}
void headerEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
EndColumnCaptionEditing();
}
}
}
Và Gridview nào bạn muốn sử dụng, chỉ cần gọi class này và truyền vào name của Gridview đó.
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RenameHeaderColumn
{
public partial class Form1 : DevExpress.XtraEditors.XtraForm
{
public Form1()
{
InitializeComponent();
}
List<Result> listMovie;
public class Result
{
public double popularity { get; set; }
public int vote_count { get; set; }
public bool video { get; set; }
public string poster_path { get; set; }
public int id { get; set; }
public bool adult { get; set; }
public string backdrop_path { get; set; }
public string original_language { get; set; }
public string original_title { get; set; }
public string title { get; set; }
public double vote_average { get; set; }
public string overview { get; set; }
public string release_date { get; set; }
}
public Task<List<Result>> LoadDataAsync()
{
return Task.Run(() => {
var json = File.ReadAllText("movie.json");
var data = JsonConvert.DeserializeObject<List<Result>>(json);
return data;
});
}
private async void Form1_Load(object sender, EventArgs e)
{
var data = await LoadDataAsync();
gridControl1.DataSource = data;
new MyGridColumnRenameHelper(gridView1);
}
}
}
Thanks for watching!