none
請教 DataGridView1 的問題 RRS feed

  • 問題

  •  

    請各位前輩幫幫忙
                      使用軟體:VB2005 Express

     

                      利用鍵盤(上下左右鍵)將 DataGridView1 的儲存格位置移到( Column=6 Row=3 )
                      如何求出( 儲存格 Column=6 Row=3 )與( DataGridView1.Top 和 DataGridView1.Left )的距離位置
                      請教教我.程式碼該怎麼寫.是否有範例程式
                     
                      感激感激

    2008年7月4日 上午 01:44

解答

  • Hi,測試看看下面程式碼是不是你要的

    Code Snippet

    Private Sub DataGridView1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter

            Me.Text = _

                DataGridView1.GetCellDisplayRectangle(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex, False).X & _

                "," & _

                DataGridView1.GetCellDisplayRectangle(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex, False).Y

        End Sub

     

     

     

    2008年7月5日 上午 02:24
    版主

所有回覆

  • HI,

     

    這個可能要自己計算了, 您可以利用DataGridView的ColumnHeadersHeight取得標題列高度, 再利用RowTemplate取得列高, 至於欄寬則可以利用Columns集合中每一個元素的Width屬性取得

     

    tihs

    2008年7月4日 上午 07:21
  • :::之前好像有人問過類似的問題

    Private Sub DataGridView1_CellMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseMove
        Debug.WriteLine(DataGridView1.PointToClient(Cursor.Position).ToString()) '相對 dataGridView1 的座標
        Debug.WriteLine(PointToClient(Cursor.Position).ToString()) '相對 Form1 的座標
    End Sub

     

    參考看看,並請自行修改!!!

    2008年7月4日 上午 08:19
  • 感謝 Tihs 看到我的問題又回答

              這個方法我試過了.一但(儲存格)往右翻到底時( X.Y定位點 )就亂了
             
              還是謝謝你.

    2008年7月4日 上午 09:28
  •  

    感謝 小琳 看到我的問題又回答
             
    你的範例應該是 Mouse點選(儲存格)時.可以查出( X.Y定位點 ) OK
    但是( 利用程式算出 )就是解不出來.很是頭大

     

    我從( 監看程式內 )找出一段程式文字.但是不會解.能否有空時再幫幫忙

    DirectCast(DirectCast(DirectCast(Grid1.CurrentCell, System.Windows.Forms.DataGridViewCell).AccessibilityObject, System.Windows.Forms.AccessibleObject).Bounds, System.Drawing.Rectangle).X

     

             謝謝你


    2008年7月4日 上午 09:35
  • Hi,測試看看下面程式碼是不是你要的

    Code Snippet

    Private Sub DataGridView1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter

            Me.Text = _

                DataGridView1.GetCellDisplayRectangle(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex, False).X & _

                "," & _

                DataGridView1.GetCellDisplayRectangle(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex, False).Y

        End Sub

     

     

     

    2008年7月5日 上午 02:24
    版主
  • bauann : 好厲害 . 謝謝你 . 就是我要的

                

                 人生大樂事之一 (  久旱逢甘霖 )  謝謝你

     

    再次感謝.同時  祝福你 . 事事順心

     

     

     

    2008年7月5日 上午 06:58