• 쇼핑몰
  • 커뮤니티
  • 북마크

vb.net




[기타] [vb.net] DataGridView 외 컨트롤 관련 정리중

하나를하더라도최선을
2019.09.19 21:15 1,159 0

본문



※ 
DataGridView1.EndEdit()
 
 
 
※ 화면 변화 업데이트 제어
DataGridView1.SuspendLayout()
DataGridView1.ResumeLayout()
 
 
 
※ 컬럼 추가
    Dim D As DataTable = DataGridView1.DataSource
    'DGV.DataSource = Nothing
    'D = New DataTable
    For Each HD As String In {"no""ctg""w"}
        D.Columns.Add(HD.Replace(Space(1), "_").Trim(), Type.GetType("System.String"))
    Next
 
 
 
※ 아이템 추가
    R = D.NewRow
    R.Item("no"= D.Rows.Count
    R.Item("ctg"= ComboBox1.Text
    R.Item("w"= Replace(T.Trim(), "'""''")
    D.Rows.Add(R)
 
 
 
※ 중복제거
 
    D = RemoveDuplicateRows(D, "w")
 
    Public Function RemoveDuplicateRows(ByVal dTable As DataTable, ByVal colName As StringAs DataTable
    Dim hTable As Hashtable = New Hashtable()
    Dim duplicateList As ArrayList = New ArrayList()
    For Each drow As DataRow In dTable.Rows
        If hTable.Contains(drow(colName)) Then
        duplicateList.Add(drow)
        Else
        hTable.Add(drow(colName), String.Empty)
        End If
    Next
    For Each dRow As DataRow In duplicateList
        dTable.Rows.Remove(dRow)
    Next
    Return dTable
    End Function
 
 
 
※ 유일한 항목 추출
    DGV.DataSource = DT
    Dim ctg As DataTable = DGV.DataSource.DefaultView.ToTable(True"ctg")
    If ctg.Rows.Count Then
        ComboBox1.Items.Clear()
        For Each R In ctg.Rows
        ComboBox1.Items.Add(R.Item("ctg"))
        Next
    End If
 
 
DataGridView Row 에서 DataRow
DataGridViewRow.DataBoundItem은 Databound dataTable (dataview)의 현재 항목에 대한 dataViewRow를 제공합니다.

Dim drv as DataRowView = DGV.DataBoundItem
Dim dr as DataRow = drv.Row

 i = CType(DGV.DataSource, DataTable).Rows.IndexOf(dr)
DGV.FirstDisplayedScrollingRowIndex = i '// 스크롤

 
※ 지정한 폴더에서 특정 형식의 파일명만 추출
    Dim di As New DirectoryInfo(Application.StartupPath & "\User Data")
    Dim fiArr As FileInfo() = di.GetFiles("*.xml")
    Dim fri As FileInfo
    ComboBox2.Items.Clear()
    For Each fri In fiArr
        ComboBox2.Items.Add(Path.GetFileNameWithoutExtension(fri.Name))
    Next fri
 
 
 
※ DataGridView 이름별로 컬럼 다르게 설정
    Select Case MyDGV.Name
    Case "nhnIDs" : i = 1
    Case "DGV" : i = 2
    Case "LI" : i = 3
    Case "RP" : i = 4
    End Select
    For Each HD As String In Choose(i, {"ck""no""아이디""비밀번호""작업횟수""note"}, {"no""ctg""w"}, {"no""단어"}, {"no""old""new"})
    If Not D.Columns.Contains(HD) Then
        If HD = "ck" Then
        D.Columns.Add(HD.Trim(), Type.GetType("System.Boolean"))
        Else
        D.Columns.Add(HD.Trim(), Type.GetType("System.String"))
        End If
    End If
    Next
    MyDGV.DataSource = D



    Private Sub TSM_Click(sender As Object, e As EventArgs) Handles TSM_REMOVE_ALL.Click, TSM_SELECT_ALL.Click, TSM_INVERT.Click, TSM_DESELECT_ALL.Click, TSM_REMOVE_SELECTED.Click, TSM_FILE_ADD.Click
        Dim myItem As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
        Dim cms As ContextMenuStrip = CType(myItem.Owner, ContextMenuStrip)
        If (TypeOf cms.SourceControl Is DataGridView) Then
        Dim MyDGV As DataGridView = cms.SourceControl
        MyDGV.EndEdit()
        MyDGV.SuspendLayout()
        '// 프로그래밍
        MyDGV.ResumeLayout()
        ElseIf (TypeOf cms.SourceControl Is ListBox) Then
       Dim LB As ListBox = cms.SourceControl
       LB.BeginUpdate()
        '// 프로그래밍
       LB.EndUpdate()
        End If
    End Sub
 
 
    _sourceBitmap = Bitmap.FromFile("Settings\6e78fa096f9750e12db6.png"False)
    Select Case _sourceBitmap.PixelFormat
        Case PixelFormat.Format32bppArgb
        Case PixelFormat.Format32bppPArgb
        Case PixelFormat.Format32bppRgb
        Case Else
            Dim tempBitmap As New Bitmap(_sourceBitmap.Width, _sourceBitmap.Height, PixelFormat.Format32bppArgb)
            Dim g As Graphics = Graphics.FromImage(tempBitmap)
            g.DrawImage(_sourceBitmap, New Rectangle(00, tempBitmap.Width, tempBitmap.Height))
            g.Dispose()
            _sourceBitmap = tempBitmap.Clone
            tempBitmap.Dispose()
    End Select
 
 
    Dim C As Control = Me
    Do
        C = Me.GetNextControl(C, True)
        If C IsNot Nothing Then
            If (TypeOf C Is GroupBox) Then
            ElseIf (TypeOf C Is TextBox) Then
            ElseIf (TypeOf C Is CheckBox) Then
            ElseIf (TypeOf C Is RadioButton) Then
            ElseIf (TypeOf C Is DataGridView) Then
            ElseIf (TypeOf C Is DataGridView) Then
            ElseIf (TypeOf C Is ListBox) Then
            ElseIf (TypeOf C Is PictureBox) Then
            End If
        End If
    Loop Until C Is Nothing
 
 
    Private Sub DataGridViewAutoSizeColumn(ByRef MyDataGridView As DataGridView)
        For Each Col As DataGridViewColumn In MyDataGridView.Columns
    'Col.ReadOnly = True
    Col.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
        Next
    End Sub
 
 
    Private Sub TextBox_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox12.KeyDown, TextBox14.KeyDown, TextBox7.KeyDown, TextBox8.KeyDown
        If e.KeyCode <> 13 Then Return
        Dim T As TextBox = CType(sender, TextBox)
        If T.Name = TextBox12.Name Then
    Button7.PerformClick()
        ElseIf T.Name = TextBox14.Name Then
    Button8.PerformClick()
        ElseIf T.Name = TextBox7.Name Then
    Button2.PerformClick()
        ElseIf T.Name = TextBox8.Name Then
    Button3.PerformClick()
        End If
    End Sub
 
 
TextBox14.Focus()
 
File.Copy(strFileName, fName)
 


댓글목록 0

등록된 댓글이 없습니다.