<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      winform datagridview 刷新數據不需要重新綁定以及添加COMBOX方法

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;
      
      namespace DatagridviewTest
      {
          public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
                  this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
                  BindCombox();
                  BindDatasources();
              }
      
              int vscroll = 0, hscroll = 0;
      
              #region datagridview 綁定數據自動刷新、添加、刪除等
      
              /// <summary>
              /// datagridview 數據源
              /// 必須使用BindingList, 如果使用LIST,無法實現更改,添加、刪除數據源自動更新datagridview
              /// </summary>
              BindingList<Studect> studentLst = new BindingList<Studect>();
      
              void BindDatasources()
              {
                  studentLst.Add(new Studect() { Name = "A", Age = 10, UpdateTime = DateTime.Now.ToString(), Sex = 1 });
                  studentLst.Add(new Studect() { Name = "B", Age = 10, UpdateTime = DateTime.Now.ToString(), Sex = 1 });
                  studentLst.Add(new Studect() { Name = "C", Age = 10, UpdateTime = DateTime.Now.ToString(), Sex = 1 });
                  studentLst.Add(new Studect() { Name = "D", Age = 10, UpdateTime = DateTime.Now.ToString(), Sex = 1 });
                  studentLst.Add(new Studect() { Name = "E", Age = 10, UpdateTime = DateTime.Now.ToString(), Sex = 0 });
      
                  this.dataGridView1.DataSource = studentLst;
                  dataGridView1.FirstDisplayedScrollingRowIndex = vscroll;
                  dataGridView1.HorizontalScrollingOffset = hscroll;
              }
      
              private void button1_Click(object sender, EventArgs e)
              {
                  studentLst.Add(new Studect() { Name = DateTime.Now.ToString(), Age = 10, UpdateTime = DateTime.Now.ToString() });
              }
      
              private void button2_Click(object sender, EventArgs e)
              {
                  if (dataGridView1.SelectedRows != null)
                  {
                      Studect s = dataGridView1.CurrentRow.DataBoundItem as Studect;
                      if (s != null)
                          studentLst.Remove(s);
      
                  }
              }
      
      
              #endregion
      
      
              #region datagridview 添加combox下拉框
      
              ComboBox sexCmb = new ComboBox();
              private void BindCombox()
              {
                  List<ContainerType<int>> SexLst = new List<ContainerType<int>>()
                  {
                      new ContainerType<int>(){ Value = 0,Describle=""},
                      new ContainerType<int>(){ Value = 1,Describle=""},
                  };
      
      
                  #region 方法一
      
                  //sexCmb.DisplayMember = "Describle";
                  //sexCmb.ValueMember = "Value";
                  //sexCmb.DataSource = SexLst;
                  //sexCmb.DropDownStyle = ComboBoxStyle.DropDownList;
                  //sexCmb.DrawMode = DrawMode.OwnerDrawFixed;
                  //sexCmb.DrawItem += SexCmb_DrawItem;
      
                  //// 設置下拉列表框不可見
                  //sexCmb.Visible = false;
      
                  //// 添加下拉列表框事件
                  //sexCmb.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged);
      
      
                  //dataGridView1.Scroll += dataGridView1_Scroll;
                  //dataGridView1.ColumnWidthChanged += dataGridView1_ColumnWidthChanged;
                  //dataGridView1.CurrentCellChanged += dataGridView1_CurrentCellChanged;
                  ////dataGridView1.DataBindingComplete += DataGridView1_DataBindingComplete;
      
                  //// 將下拉列表框加入到DataGridView控件中
                  //this.dataGridView1.Controls.Add(sexCmb);
      
                  #endregion
      
      
                  #region 方法二
      
      
                  DataGridViewTextBoxColumn c1 = new DataGridViewTextBoxColumn();
                  c1.DataPropertyName = "Name";
                  c1.HeaderText = "名字";
                  dataGridView1.Columns.Add(c1);
      
                  DataGridViewComboBoxColumn dgvCmb = new DataGridViewComboBoxColumn();
                  dgvCmb.DisplayMember = "Describle";
                  dgvCmb.ValueMember = "Value";
                  dgvCmb.DataSource = SexLst;
                  dgvCmb.DataPropertyName = "Sex";
                  dgvCmb.HeaderText = "性別";
                  //dgvCmb.FlatStyle = FlatStyle.Flat;
                  dgvCmb.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                  //dgvCmb.
      
                  dataGridView1.Columns.Add(dgvCmb);
                  //dataGridView1.CellEnter += DataGridView1_CellEnter;
                  dataGridView1.EditingControlShowing += DataGridView1_EditingControlShowing;
                  dataGridView1.CellEndEdit += DataGridView1_CellEndEdit;
                  //dataGridView1.e
                  #endregion
      
      
      
      
      
      
              }
      
              private void DataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
              {
                  //實現單擊一次顯示下拉列表框
                  if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn && e.RowIndex != -1)
                  {
                      SendKeys.SendWait("{F4}");
                  }
              }
      
              private void DataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
              {
                  if (sexCmb != null)
                  {
                      sexCmb.DrawItem -= Cmb_DrawItem;
                      //sexCmb.Dispose();
                      sexCmb = null;
                  }
              }
      
              private void DataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
              {
                  if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl))
                  {
                      sexCmb = e.Control as ComboBox;
                      sexCmb.DrawMode = DrawMode.OwnerDrawFixed;
      
                      sexCmb.DrawItem += Cmb_DrawItem;
                  }
              }
      
              private void Cmb_DrawItem(object sender, DrawItemEventArgs e)
              {
                  ComboBox combox = sender as ComboBox;
                  Pen fColor = new Pen(Color.Black);
                  Pen bColor = new Pen(Color.White);
                  var a = combox.Items[e.Index] as ContainerType<int>;
      
                  if (a.Value == 0)
                  {
                      fColor = new Pen(Color.Green);
                  }
                  else
                  {
                      fColor = new Pen(Color.Red);
                  }
                  if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                  {
                      bColor = new Pen(Color.Blue);
                      fColor = new Pen(Color.White);
                  }
      
                  e.Graphics.FillRectangle(bColor.Brush, e.Bounds);
      
                  e.Graphics.DrawString(a.Describle, this.Font, fColor.Brush, e.Bounds);
      
                  //combox.DrawItem -= Cmb_DrawItem;
      
              }
      
              private void Combox_SelectedIndexChanged(object sender, EventArgs e)
              {
                  ComboBox combox = sender as ComboBox;
                  
      
      
                  combox.SelectedIndexChanged -= Combox_SelectedIndexChanged;
              }
      
              private void SexCmb_DrawItem(object sender, DrawItemEventArgs e)
              {
                  //初始化字體和背景色
                  Pen fColor = new Pen(Color.Black);
                  Pen bColor = new Pen(Color.White);
                  //if (e.Index < 0) return;
                  var a = sexCmb.Items[e.Index] as ContainerType<int>;
                  
                  if (a.Value == 0)
                  {
                      fColor = new Pen(Color.Green);
                  }
                  else
                  {
                      fColor = new Pen(Color.Red);
                  }
                  e.Graphics.FillRectangle(bColor.Brush, e.Bounds);
                  
                  e.Graphics.DrawString(a.Describle, this.Font, fColor.Brush, e.Bounds);
              }
      
              private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
              {
                  for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
                  {
                      //for (int c = 0; c < dataGridView1.Columns.Count; c++)
                      //{
      
                      //}
                      if (dataGridView1.Rows[i].Cells[2].Value != null)
                      {
                          if (dataGridView1.Rows[i].Cells[2].Value.ToString().Trim() == "1")
                          {
                              dataGridView1.Rows[i].Cells[2].Value = "";
                          }
                          else if(dataGridView1.Rows[i].Cells[2].Value.ToString().Trim() == "0")
                          {
                              dataGridView1.Rows[i].Cells[2].Value = "";
                          }
                      }
                  }
              }
      
      
              // 當用戶移動到性別這一列時單元格顯示下拉列表框
              private void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
              {
                  DataGridViewCell CurrnetCell = dataGridView1.CurrentCell;
                  if (CurrnetCell != null && CurrnetCell.OwningColumn.HeaderText == "性別")
                  {
                      Rectangle TmpRect = dataGridView1.GetCellDisplayRectangle(CurrnetCell.ColumnIndex, CurrnetCell.RowIndex, false);
                      sexCmb.SelectedValue = CurrnetCell.Value;
                      //sexCmb.Text = CurrnetCell.Value.ToString();
                      sexCmb.Size = TmpRect.Size;
                      sexCmb.Top = TmpRect.Top;
                      sexCmb.Left = TmpRect.Left;
                      sexCmb.Visible = true;
                  }
                  else
                  {
                      sexCmb.Visible = false;
                  }
              }
      
           
      
              // 滾動DataGridView時將下拉列表框設為不可見
              private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
              {
                  if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
                  {
                      hscroll = e.NewValue;
                  }
                  else if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
                  {
                      vscroll = e.NewValue;
                  }
                  this.sexCmb.Visible = false;
              }
      
      
              // 改變DataGridView列寬時將下拉列表框設為不可見
              private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
              {
                  this.sexCmb.Visible = false;
              }
      
              private void button3_Click(object sender, EventArgs e)
              {
                  if (dataGridView1.SelectedRows != null)
                  {
                      Studect s = dataGridView1.CurrentRow.DataBoundItem as Studect;
                      if (s != null)
                      {
                          s.Name = DateTime.Now.ToString();//修改名稱,界面自動更新
                      }
      
                  }
              }
      
              // 當用戶選擇下拉列表框時改變DataGridView單元格的內容
              private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e)
              {
                  dataGridView1.CurrentCell.Value = ((ComboBox)sender).SelectedValue;
              }
              
              //sexComb
      
              #endregion
      
          }
      
      
          /// <summary>
          /// 
          /// </summary>
          public class Studect : INotifyPropertyChanged
          {
              public event PropertyChangedEventHandler PropertyChanged;
      
              private void NotifyPropertyChanged(String info)
              {
                  PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info));
              }
      
              string _name;
              [DisplayName("你的名字")]  // 這是顯示的列名稱哦
              public string Name
              {
                  get { return _name; }
                  set
                  {
                      if (_name != value)
                      {
                          _name = value;
                          NotifyPropertyChanged("Name");
                      }
                  }
              }
      
              // 2) 在屬性改變時引發事件
              int _age;
              [DisplayName("他的年紀")]
              public int Age
              {
                  get { return _age; }
                  set
                  {
                      if (_age != value)
                      {
                          _age = value;
                      }
                  }
              }
      
              int _sex;
              [DisplayName("性別")]
              public int Sex
              {
                  get { return _sex; }
                  set { _sex = value; }
              }
      
              //List<ContainerType<int>> _sexlst;
              //[DisplayName("性別")]
              //public List<ContainerType<int>> SexLst
              //{
              //    get { return _sexlst; }
              //    set { _sexlst = value; }
              //}
      
      
              string _updateTime;
              [DisplayName("更新時間")]
              public string UpdateTime
              {
                  get { return _updateTime; }
                  set
                  {
                      if (_updateTime != value)
                      {
                          _updateTime = value;
                      }
                  }
              }
      
      
      
          }
      
      
          public class ContainerType<T>
          {
              public T Value { get; set; }
      
              public string Describle { get; set; }
      
      
          }
      }

       

      posted on 2021-09-14 19:56  永恒921  閱讀(4657)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费国产拍久久受拍久久| 久久99国产精品久久99| 女人腿张开让男人桶爽| 亚洲一区二区国产av| 精品无人乱码一区二区三区的优势 | 国产天美传媒性色av高清| 日韩精品视频一二三四区| 欧美三级a做爰在线观看| 国产啪视频免费观看视频| 国产成人午夜一区二区三区| 不卡国产一区二区三区| 欧美成本人视频免费播放 | 国产仑乱无码内谢| 国产亚洲久久久久久久| 欧美日韩性高爱潮视频| 亚洲三区在线观看无套内射| 国产国产久热这里只有精品| 成人无码区免费视频| 安国市| 亚洲国产精品高清久久久| 天天做天天爱夜夜爽导航 | 苍溪县| 无码日韩人妻精品久久| 无码欧亚熟妇人妻AV在线外遇| 东京热一精品无码av| 国内自拍小视频在线看| 精品国产乱码久久久久APP下载| 久久精品国产亚洲αv忘忧草| 东方四虎av在线观看| 国产普通话对白刺激| 99久久婷婷国产综合精品青草漫画 | 中文字幕亚洲一区二区三区| 无码人妻丝袜在线视频| 日韩国产精品一区二区av| 国产丰满麻豆videossexhd | 日韩中文字幕有码av| 亚洲精品av一二三区无码| 日本一区二区三本视频在线观看| 少妇xxxxx性开放| 缙云县| 国产精品亚洲一区二区在|