上一篇[C#] DataGridView 應用(一) – Column & DataRow
介紹了讀取資料並新增至DataGridView的方法
下一步我們將新增右鍵選單
並加入新增資料的功能
首先打造右鍵選單的框架
宣告ContextMenu,新增MenuItem,加入Click Event
private ContextMenu menu = new ContextMenu();
public frm_Main()
{
InitializeComponent();
//於Form建構時,加入以下程式碼
MenuItem miAdd = new MenuItem("新增");//宣告新的按鈕項目
miAdd.Click += new System.EventHandler(this.miAdd_Click);//連接Click事件
menu.MenuItems.Add(miAdd);//新增到右鍵選單menu中
menu.MenuItems.Add(new MenuItem("取消"));
}
private void miAdd_Click(object sender, System.EventArgs e)
{
//之後要寫入新增資料的功能
}
然後再設定DataGridView的MouseDown事件
確認是按下右鍵後,顯示選單
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)//按下右鍵
{
menu.Show(dataGridView1, new Point(e.X, e.Y));//顯示右鍵選單
}
}
試試看,在DataGridView上面按右鍵
可以看到選單出現了
public partial class frmAddData : Form
{
NorthwindEntities ef;
public frmAddData(NorthwindEntities ef)
{
InitializeComponent();
this.ef = ef;
}
private void btnOK_Click(object sender, EventArgs e)
{
try
{
Customers customer = new Customers();
customer.CustomerID = textBoxID.Text;
customer.CompanyName = textBoxName.Text;
ef.Customers.Add(customer);
ef.SaveChanges();
MessageBox.Show("新增成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());//顯示錯誤訊息
}
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
然後回到前面的右鍵選單→新增
讓它的Click事件補上彈出視窗
並於視窗關閉後,重新讀取資料
private void miAdd_Click(object sender, System.EventArgs e)
{
//右鍵新增
frmAddData frm = new frmAddData(ef);
frm.ShowDialog();//彈出對話視窗(新增資料)
btnGetData.PerformClick();//重新讀取資料(刷新)
}
最後實際測試看看,如下圖結果
(右鍵選單→新增→輸入資料→按下OK)
大功告成!!
下一篇介紹修改資料及設定條件的方法
[C#] DataGridView 應用(三) – 修改資料、條件設定
廣告
[C#] DataGridView 應用(二) – 右鍵選單、新增資料 有 “ 3 則迴響 ”