日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用事件进行窗体间传值

發布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用事件进行窗体间传值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么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

總結

以上是生活随笔為你收集整理的利用事件进行窗体间传值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。