台灣最大程式設計社群網站
線上人數
1021
 
會員總數:244413
討論主題:188634
歡迎您免費加入會員
討論區列表 >> C# >> 將datagridview中的資料欄位拖移到panel
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
將datagridview中的資料欄位拖移到panel
價值 : 5 QP  點閱數:498 回應數:10

樓主

jonahmk2
門外漢
0 1
28 4
發送站內信


小弟我搞c#時數還不滿100小時,感謝大老們抽空解答。
我這是是用winform
我已經實作將datagridview中的資料欄位拖移到panel中。
但是每次datagridview中的資料欄位拖移到panel後,panel中都不會顯示我所選取的資料,請問是datagridview不能拖曳資料到pnael中,還是我detdata的程式碼有問題?
這裡先附上drop跟所匯入的資料表型態及名稱
如有還有需要哪裡的截圖,請跟我說一聲。
最後再次感謝大老們幫我解答QQ
https://imageshack.us/i/plV92yNup

https://imageshack.us/i/pogPldiEp



搜尋相關Tags的文章: [ datagridview ] ,
本篇文章發表於2019-01-06 00:21
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

P陳
檢舉此回應
可以將程式PO出來嗎? 尤其是在 Panel 中顯示的那段
本篇文章回覆於2019-01-06 09:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

jonahmk2
檢舉此回應
private void dgvClassDetails_MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{ //<-- 表示按下左鍵並且之前也有按過左鍵,
// 左鍵按住不放的意思
DataRow drcopy = (dgvClassDetails.CurrentRow.DataBoundItem as DataRowView).Row;
//將DataGridView所選到的Row轉成datarow
//先轉Datarowview .Row才是datarow

this.dgvClassDetails.DoDragDrop(drcopy, DragDropEffects.All);

// 拖放作業起始點,把選到的資料塞進去,設定拖曳作業滑鼠游標效果
}
}


//3.為了Drag的連續性,設定DataGridView DragOver事件,拖曳離開DataGridView時發生

private void dgvClassDetails_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}


//4.為了Drag的連續性,設定要放入資料元件的DragEnter事件

private void GUiDragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
//5.設定要放入資料元件的DragDrop事件,完成拖放作業
//我是在panel屬性裡面選擇GUIDragDrop當成它的dragDrop屬性
private void GUIDragDrop(object sender, DragEventArgs e)
{

DataRow drincoming = e.Data.GetData(typeof(char)) as DataRow;

//這邊typeof()文本的文章是叫我指定成<Datasetname>.<Tablenamerow>,因為我可能會一次拖曳一整行,但每個格子的資料型態都不同,然而我不知道怎麼定義多個屬性,所不知道這樣打對不對。

//由於當初塞進去的資料是datagridview的databound資料,
//所以在getdata要取出來的時候,要指定他是那一種的row
//如不確定資料type,可以先用getformts.tostring查看


謝謝大老回覆!
}
本篇文章回覆於2019-01-06 14:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
您的拉放 拉過去時 有出現 + 的符號嗎?

元件 GUiDrag 屬性的 AllDrag 有設定為 TRUE 嗎? 如果沒有 當拉Gui 時不會出現+ 就貼不上了

本篇文章回覆於2019-01-06 16:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

jonahmk2
檢舉此回應
拖曳到panel時有顯示+號
我也嘗試過其他元件listbox textbox都是拖移到上面顯示+號後 就沒任何動力了
請問GUiDrag屬性的ALLDrag要去哪裡設定呢?
本篇文章回覆於2019-01-06 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
這是簡單的範例將Textbox1 的資料 拉到 Textbox2
在textbox1 打完字後 在Textbox1 左鍵按住 拉到 Textbox2 就COPY 過去了
以此為基準再往下加


Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox2.AllowDrop = True
TextBox1.AllowDrop = True
End Sub

Private Sub Textbox1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TextBox1.MouseMove
If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
TextBox1.SelectAll()
TextBox1.DoDragDrop(TextBox1.SelectedText, DragDropEffects.Copy)
End If
End If
End Sub

Private Sub textbox2_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox2.DragEnter
TextBox2.Text = e.Data.GetData(DataFormats.Text).ToString
End Sub
本篇文章回覆於2019-01-06 16:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

jonahmk2
檢舉此回應
謝謝大老回覆
我試了您提供的方式 是可以成功的複製
但是我這邊一定需要使用Datagridview
不知道有沒有其他辦法能夠解決可以拖曳資料但是資料不會到元件裡面QQ

//!!!!我覺得是e.Data.GetData(typeof(IIIClassDB.ClassDetailsRow)這裡getdata的資料型態沒設好。
文章告訴我"這邊typeof()裡要指定為<Datasetname>.<Tablenamerow> ",我不懂<Datasetname>裡的data是指哪個;<Tablenamerow>指的所拖曳資料所在的資料表行的名稱嗎?請大老為我解釋一下 萬分感謝!
5.設定要放入資料元件的DragDrop事件,完成拖放作業
private void GUIDragDrop(object sender, DragEventArgs e)
{
DataRow drincoming=e.Data.GetData(typeof(IIIClassDB.ClassDetailsRow)) as DataRow;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//由於當初塞進去的資料是datagridview的databound資料,
// 所以在getdata要取出來的時候,要指定他是那一種的row
//如不確定資料type,可以先用getformts.tostring查看
//這邊typeof()裡要指定為<Datasetname>.<Tablenamerow>
}
本篇文章回覆於2019-01-06 18:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

P陳
檢舉此回應
您沒有類似這動作
Private Sub textbox2_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox2.DragEnter
TextBox2.Text = e.Data.GetData(DataFormats.Text).ToString
End Sub

也就是沒有將 COPY 的datarow 放入 目的地 GUIDragDrop 中的動作

本篇文章回覆於2019-01-06 22:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

P陳
檢舉此回應
可以動作了,但是沒有圖示效果,您再自己加一下
重點在 DragEnter 那句


本篇文章回覆於2019-01-06 22:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

jonahmk2
檢舉此回應
感謝陳老師!已經可以用圖像化的方式拖移了!
本篇文章回覆於2019-01-07 17:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

P陳
檢舉此回應
jonahmk2您好:

如果 可以的話請將您最後完成的程式PO出來給後面的人參考一下

本篇文章回覆於2019-01-09 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.