Winform dataGridView 表头展示隐藏 和 位置调用 用法

  • A+
所属分类:.NET技术
摘要

 

Winform  dataGridView  表头展示隐藏 和 位置调用 用法

  public partial class WeighRecord : Form     {         WeighRecordSet headsSet = null;         public WeighRecord()         {             InitializeComponent();              this.RecordTimepx.Format = DateTimePickerFormat.Custom;             this.RecordTimepx.CustomFormat = " ";             this.GrossTimepx.Format = DateTimePickerFormat.Custom;             this.GrossTimepx.CustomFormat = " ";             this.TareTimepx.Format = DateTimePickerFormat.Custom;             this.TareTimepx.CustomFormat = " ";                          //测试数据             //var list = new List<WeighRecordDto>();             //list.Add(new WeighRecordDto() { Number = 1 });             //list.Add(new WeighRecordDto() { Number = 2 });             //list.Add(new WeighRecordDto() { Number = 3 });             //list.Add(new WeighRecordDto() { Number = 4 });             //list.Add(new WeighRecordDto() { Number = 5 });              //this.dataGV.DataSource = list;         }          private void RecordTimepx_ValueChanged(object sender, EventArgs e)         {             this.RecordTimepx.Format = DateTimePickerFormat.Long;             this.RecordTimepx.CustomFormat = null;         }          private void GrossTimepx_ValueChanged(object sender, EventArgs e)         {             this.GrossTimepx.Format = DateTimePickerFormat.Long;             this.GrossTimepx.CustomFormat = null;         }          private void TareTimepx_ValueChanged(object sender, EventArgs e)         {             this.TareTimepx.Format = DateTimePickerFormat.Long;             this.TareTimepx.CustomFormat = null;         }         //查询         private void SearchBtn_Click(object sender, EventArgs e)         {          }          //显示设置         List<TableHeader> childList = null;         private void ShowSetBtn_Click(object sender, EventArgs e)         {             //填充值             if (childList == null)             {                 childList = new List<TableHeader>();                 for (var i = 0; i < this.WeighTable.Columns.Count; i++)                 {                     if (this.WeighTable.Columns[i].Visible)                     {                         childList.Add(new TableHeader()                         {                             Name = this.WeighTable.Columns[i].HeaderText,                             Choice = this.WeighTable.Columns[i].Visible,                         });                     }                 }             }              //传入值             headsSet = new WeighRecordSet(childList);             //回传值             headsSet.itemTextChanged += new EventHandler((sender1, e1) =>             {                 childList = headsSet.list; //回传值                 for (var j = 0; j < headsSet.list.Count; j++)                 {                     var item = headsSet.list[j];                     for (var i = 0; i < this.WeighTable.Columns.Count; i++)                     {                         if (this.WeighTable.Columns[i].HeaderText == item.Name)                         {                             this.WeighTable.Columns[i].DisplayIndex = j;                             this.WeighTable.Columns[i].Visible = item.Choice;                             break;                         }                     }                 }             });              //弹出窗体             headsSet.ShowDialog();         }     }

  public partial class WeighRecordSet : Form     {         public List<TableHeader> list { get; set; }         public event EventHandler itemTextChanged;         public WeighRecordSet()         {             InitializeComponent();             list = new List<TableHeader>();             list.Add(new TableHeader() { Name = "序号" });             list.Add(new TableHeader() { Name = "车牌号" });             list.Add(new TableHeader() { Name = "司机" });             list.Add(new TableHeader() { Name = "货品" });             list.Add(new TableHeader() { Name = "毛重" });             list.Add(new TableHeader() { Name = "皮重" });             list.Add(new TableHeader() { Name = "净重" });             list.Add(new TableHeader() { Name = "扣重" });             list.Add(new TableHeader() { Name = "实重" });             list.Add(new TableHeader() { Name = "毛重时间" });             list.Add(new TableHeader() { Name = "皮重时间" });             list.Add(new TableHeader() { Name = "单号" });             list.Add(new TableHeader() { Name = "皮重司磅员" });             list.Add(new TableHeader() { Name = "毛重司磅员" });             list.Add(new TableHeader() { Name = "记录时间" });              //list.Add(new TableHeader() { Name = "单价" });             //list.Add(new TableHeader() { Name = "总价" });             //list.Add(new TableHeader() { Name = "浓度" });             //list.Add(new TableHeader() { Name = "体积" });              list.Add(new TableHeader() { Name = "单价(元)" });             list.Add(new TableHeader() { Name = "总价(元)" });             list.Add(new TableHeader() { Name = "浓度(kg/L)" });             list.Add(new TableHeader() { Name = "体积(L)" });              for (var i = 0; i < list.Count; i++)             {                 this.HeaderLv.Items.Add(list[i].Name);                 this.HeaderLv.Items[i].Checked = list[i].Choice;             }                      }          public WeighRecordSet(List<TableHeader> list)         {             InitializeComponent();             for (var i = 0; i < list.Count; i++)             {                 this.HeaderLv.Items.Add(list[i].Name);                 this.HeaderLv.Items[i].Checked = list[i].Choice;             }         }          //上移         private void UpperBtn_Click(object sender, EventArgs e)         {             if (this.HeaderLv.SelectedItems.Count == 0)             {                 return;             }              HeaderLv.BeginUpdate();              if (this.HeaderLv.SelectedItems[0].Index > 0)             {                 foreach (ListViewItem var in HeaderLv.SelectedItems)                 {                     ListViewItem item = var;                     int indexSelectedItem = var.Index;                     HeaderLv.Items.RemoveAt(indexSelectedItem);                     HeaderLv.Items.Insert(indexSelectedItem - 1, item);                 }             }             HeaderLv.EndUpdate();              if (HeaderLv.Items.Count > 0 && HeaderLv.SelectedItems.Count > 0)             {                 HeaderLv.Focus();                 HeaderLv.SelectedItems[0].Focused = true;                 HeaderLv.SelectedItems[0].EnsureVisible();             }          }         //下移         private void UnderBtn_Click(object sender, EventArgs e)         {             if (this.HeaderLv.SelectedItems.Count == 0)             {                 return;             }             this.HeaderLv.BeginUpdate();             int indexMaxSelectedItem = HeaderLv.SelectedItems[HeaderLv.SelectedItems.Count - 1].Index;              if (indexMaxSelectedItem < HeaderLv.Items.Count - 1)             {                 for (int i = this.HeaderLv.SelectedItems.Count - 1; i >= 0; i--)                 {                     ListViewItem item = this.HeaderLv.SelectedItems[i];                     int indexSelectedItem = item.Index;                     HeaderLv.Items.RemoveAt(indexSelectedItem);                     HeaderLv.Items.Insert(indexSelectedItem + 1, item);                 }             }             HeaderLv.EndUpdate();              if (HeaderLv.Items.Count > 0 && HeaderLv.SelectedItems.Count > 0)             {                 HeaderLv.Focus();                 HeaderLv.SelectedItems[HeaderLv.SelectedItems.Count - 1].Focused = true;                 HeaderLv.SelectedItems[HeaderLv.SelectedItems.Count - 1].EnsureVisible();             }          }         //确定         private void SaveBtn_Click(object sender, EventArgs e)         {             list = new List<TableHeader>();             for (var i = 0; i < this.HeaderLv.Items.Count; i++)             {                 list.Add(new TableHeader()                 {                     Name = this.HeaderLv.Items[i].Text,                     Choice = this.HeaderLv.Items[i].Checked,                 });             }             if (!list.Exists(s => s.Choice))             {                 MessageBox.Show("请至少勾上一列!");                 return;             }             //事件             if (itemTextChanged != null)             {                 itemTextChanged(this, e);             }             this.Close();         }     }