- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
- [C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
- [C#] Thiết kế ứng dụng Single Instance và đưa ứng dụng lên trước nếu kiểm tra ứng dụng đang chạy
- [C#] Giới thiệu JSON Web Token và cách đọc chuỗi token
- [C#] Cách tăng giảm font chữ tất cả các control trên winform
- [DEVEXPRESS] Tích hợp chức năng Tìm kiếm Search vào CheckedComboboxEdit
- [C#] Gởi email Metting Calendar Reminder kèm nhắc thời gian lịch họp
- [C#] Tìm kiếm xem danh sách từ khóa có tồn tại trong đoạn văn bản hay không
- [C#] Thiết kế giao diện ứng dụng trên Console sử dụng thư viện Terminal.Gui
- [C#] Hướng dẫn tạo mã VietQR Payment API Winform
- [C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
- [DEVEXPRESS] Tìm kiếm không dấu tô màu highlight có dấu trên C# 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!