利用事件进行窗体间传值
生活随笔
收集整理的這篇文章主要介紹了
利用事件进行窗体间传值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
? ? ? ? 舉例,現在有兩個窗體,SelectForm窗體查詢信息集合,使用DataGridview顯示信息集合,EditForm窗體添加和修改信息,EditForm編輯完成并且關閉后,定位SelectForm的DataGridview編輯的那一行,現在以修改信息為例,首先在EditForm窗體中聲明一個事件
public event EventHandler AfterEditingBillsNumber;然后在EditForm關閉時,或者你編輯信息完成后,把你想要傳的值這樣寫 AfterEditingBillsNumber(label.Text, EventArgs.Empty);回到SelectForm窗體,你肯定要在SelectForm寫這樣幾行代碼 EditForm form=new EditForm(); form.ShowDialog();
那么,現在這幾行代碼改成這樣 EditForm form=new EditForm(); form.AfterEditingBillsNumber += new EventHandler(this.AfterEditingBillsNumber ); form.ShowDialog();然后在本窗體中寫上AfterEditingBillsNumber事件的處理方法 private void AfterEditingBillsNumber(object sender, EventArgs e) {string focusStr = sender as string;if (!string.IsNullOrEmpty(focusStr)){SelectBills();SetFocusOnEditing(dataGridView1, "ColumnBillsNumber", "OperationsDate", focusStr);} } ?/// <summary>/// 設置DataGridView編輯前的焦點,寫的不好,還望海涵,望大神改進。/// <param name="dgv">DataGridView控件</param>/// <param name="ColumnName">用于定位的列名</param>/// <param name="VisibleCell">可見單元,大部分用于定位的列都是隱藏的,所以需要一個可見的單元格進行光標定位</param>/// <param name="SelectedValue">用于定位的值</param>/// </summary>public void SetFocusOnEditing(DataGridView dgv, string ColumnName, string VisibleCell, string SelectedValue){try{int j = 0;//計數器foreach (DataGridViewRow dr in dgv.Rows){if (dr.Cells[ColumnName].Value.ToString() == SelectedValue){dgv.FirstDisplayedScrollingRowIndex = j;//將當前找到的行設置到第一行dgv.CurrentCell = dr.Cells[VisibleCell];//去掉其他行的選擇狀態并將當前行的第一個單元格置為選擇狀態dr.Selected = true;//選擇當前整行return;}j++;}}catch (Exception ex){MsgBox.ShowError(ex.Message);}}
轉載于:https://my.oschina.net/dongri/blog/610896
總結
以上是生活随笔為你收集整理的利用事件进行窗体间传值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【已破解】微信骰子能控制点数吗?如何修改
- 下一篇: hdu1065