主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

DataGridView(System.Windows.Forms.DataGridView)その4

昨日 の MaskedTextBox を使ったやつを
えムナウさんのアドバイスを受けて、ちょっと修正しました。(MaskedCell クラスの InitializeEditingControl と Clone)
あと、DataGridViewTextBoxEditingControl クラスには AutoComplete に関するプロパティがあるのに、DataGridViewTextBoxColumn? のどこで設定するのか解らなかったので
昨日のと似たような手順でオートコンプリート可能な Text 列の AutoCompletableTextColumn を実装してみました。

C# MVP の Frank Dzaebel さんのページ に DataGridView の DragDrop に関する面白そうなのを見つけたので VB で実装してみました。

あと、えムナウさんの DataGridViewコントロール-CellにTabStop機能を実装する も VB で実装してみました。
疲れました。
DataGridView はまだまだ遊べそうな感じですが、とりあえず DataGridView はこれでおしまいにしようと思います。

■参考文献
DataGridView Drag Drop(Homepage von Frank Dzaebel)
DataGridViewコントロール-CellにTabStop機能を実装する(えムナウさん)

以下、DataGridView 関連で参考になるページ

DataGridViewコントロール(えムナウさん)

Visual Basic Station - Tips - 継承コントロールの作り方(うなまなさん)
Visual Basic Station - Tips - DataGridViewのCell移動をEnterで(うなまなさん)
Visual Basic Station - Tips - DataGridViewスクロール制御(うなまなさん)
Visual Basic Station - Tips - CSVファイルをDataGridViewに表示(うなまなさん)
Visual Basic Station - Tips - DataGridViewのCellイベント(うなまなさん)
Visual Basic Station - Tips - DataGridViewのリンクセルを見やすく(うなまなさん)
Visual Basic Station - Tips - DataGridViewマウス右ボタンで選択(うなまなさん)

なっちゃんのプログラミングTips: DataGridViewの行ヘッダに行番号を表示させるには

GridView コントロールのイベントに関する調査
カスタム データ バインド
カスタム データ バインド (第 2 部)
DataGridView 列ヘッダー セルのドロップダウン フィルタ一覧を作成する

■実行画像
オートコンプリート
DataGridView オートコンプリート

Public Class DataGridViewTest

Private Sub DataGridViewTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Size = New Size(600, 300)
'' TabControl に DataGridView を描画します。 Dim tabCntrl As TabControl = New TabControl Me.Controls.Add(tabCntrl) tabCntrl.Dock = DockStyle.Fill
tabCntrl.TabPages.Clear() ' TabPage の追加(2006.12.19 DataGridView(System.Windows.Forms.DataGridView)その1参照) Dim dgView1 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DataGridViewコントロール-内部コントロールの種類", dgView1) Me.DataGridViewコントロール_内部コントロールの種類(dgView1)
' TabPage の追加(2006.12.20 DataGridView(System.Windows.Forms.DataGridView)その2参照) Dim dgView2 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DataGridViewコントロール-バインド出来るデータソース", dgView2) Me.DataGridViewコントロール_バインド出来るデータソース(dgView2)
' TabPage の追加(2006.12.20 DataGridView(System.Windows.Forms.DataGridView)その2参照) Dim dgView3 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DataGridViewコントロール-DataGridViewCellStyleクラス", dgView3) Me.DataGridViewコントロール_DataGridViewCellStyleクラス(dgView3)
' TabPage の追加(2006.12.20 DataGridView(System.Windows.Forms.DataGridView)その2参照) Dim dgView4 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DataGridViewコントロール-行を固定する", dgView4) Me.DataGridViewコントロール_行を固定する(dgView4)
' TabPage の追加(2006.12.21 DataGridView(System.Windows.Forms.DataGridView)その3参照) Dim dgView5 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DataGridViewコントロール-行・列を固定する", dgView5) Me.DataGridViewコントロール_行・列を固定する(dgView5)
' TabPage の追加(2006.12.21 DataGridView(System.Windows.Forms.DataGridView)その3参照) Dim dgView6 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "Mask列を追加する", dgView6) Me.Mask列を追加する(dgView6)
' TabPage の追加(2006.12.22) Dim dgView7 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "DragDropする", dgView7) Me.DragDropする(dgView7)
' TabPage の追加(2006.12.22) Dim dgView8 As DataGridView = New DataGridView Me.AddTabPage(tabCntrl, "オートコンプリート", dgView8) Me.オートコンプリート(dgView8)
' TabPage の追加(2006.12.22) Dim dgView9 As TabStopDataGridView = New TabStopDataGridView Me.AddTabPage(tabCntrl, "TabStopByMnow", dgView9) Me.TabStopByMnow(dgView9)
tabCntrl.SelectedIndex = tabCntrl.TabPages.Count - 1 End Sub
Private Sub TabStopByMnow(ByVal dgView As TabStopDataGridView)
dgView.Columns.Add(New TabStopTextBoxColumn()) dgView.Columns.Add(New TabStopTextBoxColumn()) dgView.Columns.Add(New TabStopTextBoxColumn()) dgView.Columns.Add(New TabStopTextBoxColumn()) dgView.Columns.Add(New TabStopTextBoxColumn())
dgView.Rows.Add(New String() {"A", "0", "B", "1", "C"}) dgView.Rows.Add(New String() {"D", "2", "E", "3", "F"}) dgView.Rows.Add(New String() {"G", "4", "H", "5", "I"}) dgView.Rows.Add(New String() {"J", "6", "K", "7", "L"}) dgView.Rows.Add(New String() {"M", "8", "N", "9", "O"}) dgView.Rows.Add(New String() {"P", "10", "Q", "11", "R"})
' アルファベットのセルにだけ止まるにする For Each row As DataGridViewRow In dgView.Rows DirectCast(row.Cells(1), ISupportTabStop).TabStop = False DirectCast(row.Cells(3), ISupportTabStop).TabStop = False Next End Sub
Private Sub オートコンプリート(ByVal dgView As DataGridView)
Dim col As AutoCompletableTextColumn = New AutoCompletableTextColumn() col.HeaderText = "Test" col.AutoCompleteMode = AutoCompleteMode.Suggest col.AutoCompleteSource = AutoCompleteSource.FileSystem col.Width = 200 dgView.Columns.Add(col)
Dim customSourceCol As AutoCompletableTextColumn = New AutoCompletableTextColumn() customSourceCol.AutoCompleteCustomSource = New AutoCompleteStringCollection customSourceCol.AutoCompleteCustomSource.AddRange(New String() {"fujiko", "eden", "otto"}) customSourceCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend customSourceCol.AutoCompleteSource = AutoCompleteSource.CustomSource dgView.Columns.Add(customSourceCol) dgView.RowCount = 5 dgView.Rows(0).Cells(0).Value = My.Computer.FileSystem.SpecialDirectories.MyDocuments End Sub
Private Sub DragDropする(ByVal dgView As DataGridView)
' なんか適当なデータをバインドする Dim ds As DataSet = Me.CreateWankumaDataset() dgView.DataSource = ds dgView.DataMember = ds.Tables(0).TableName ds.Tables(0).Columns.RemoveAt(0) ' 読み取り専用列はだめ
dgView.AllowDrop = True dgView.SelectionMode = DataGridViewSelectionMode.FullRowSelect
AddHandler dgView.MouseMove, AddressOf Me.DragDropableGridView_MouseMove AddHandler dgView.MouseDown, AddressOf Me.DragDropableGridView_MouseDown AddHandler dgView.DragDrop, AddressOf Me.DragDropableGridView_DragDrop AddHandler dgView.DragOver, AddressOf Me.DragDropableGridView_DragOver End Sub
Private m_dragBoxSrc As Rectangle Private m_rowIndexSrc As Integer Private m_rowIndexTar As Integer
Private Function IsCellOrRowHeader(ByVal x As Integer, ByVal y As Integer, ByVal dgview As DataGridView) As Boolean Dim dgt As DataGridViewHitTestType = dgview.HitTest(x, y).Type Return (dgt = DataGridViewHitTestType.Cell OrElse dgt = DataGridViewHitTestType.RowHeader) End Function
Private Sub DragDropableGridView_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Dim dgview As DataGridView = DirectCast(sender, DataGridView)
Me.m_rowIndexSrc = dgview.HitTest(e.X, e.Y).RowIndex If Me.m_rowIndexSrc <> -1 Then Dim dragSize As Size = SystemInformation.DragSize Me.m_dragBoxSrc = New Rectangle(New Point(e.X, e.Y), dragSize) Else Me.m_dragBoxSrc = Rectangle.Empty End If End Sub
Private Sub DragDropableGridView_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Dim dgview As DataGridView = DirectCast(sender, DataGridView)
If (e.Button And Windows.Forms.MouseButtons.Left) = Windows.Forms.MouseButtons.Left Then If Not Me.IsCellOrRowHeader(e.X, e.Y, dgview) AndAlso Me.m_rowIndexSrc >= 0 Then Dim dropEffect As DragDropEffects = _ dgview.DoDragDrop(dgview.Rows(Me.m_rowIndexSrc), DragDropEffects.None) Return End If If Me.m_dragBoxSrc <> Rectangle.Empty AndAlso _ Not Me.m_dragBoxSrc.Contains(e.X, e.Y) Then Dim dropEffect As DragDropEffects = _ dgview.DoDragDrop(dgview.Rows(Me.m_rowIndexSrc), DragDropEffects.Move) End If End If End Sub
Private Sub DragDropableGridView_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Dim dgview As DataGridView = DirectCast(sender, DataGridView) Dim clientPoint As Point = dgview.PointToClient(New Point(e.X, e.Y)) Me.m_rowIndexTar = dgview.HitTest(clientPoint.X, clientPoint.Y).RowIndex
If e.Effect = DragDropEffects.Move Then Dim rowToMove As DataGridViewRow = DirectCast(e.Data.GetData(GetType(DataGridViewRow)), DataGridViewRow) Me.MoveRow(Me.m_rowIndexSrc, Me.m_rowIndexTar, dgview) End If End Sub
Private Sub SwapCell(ByVal c As Integer, ByVal srcRow As Integer, ByVal tarRow As Integer, ByRef tmp0 As Object, ByRef tmp1 As Object, ByVal dgView As DataGridView) Dim srcCell As DataGridViewCell = dgView.Rows(srcRow).Cells(c) Dim tarCell As DataGridViewCell = dgView.Rows(tarRow).Cells(c) tmp0 = tarCell.Value tmp1 = srcCell.Value tarCell.Value = tmp1 End Sub
Private Sub MoveRow(ByVal srcRow As Integer, ByVal tarRow As Integer, ByVal dgView As DataGridView) Dim cellCount As Integer = dgView.Rows(srcRow).Cells.Count For c As Integer = 0 To cellCount - 1 Me.ShiftRows(srcRow, tarRow, c, dgView) Next End Sub
Private Sub ShiftRows(ByVal srcRow As Integer, ByVal tarRow As Integer, ByVal c As Integer, ByVal dgView As DataGridView) Dim tmp0 As Object = Nothing Dim tmp1 As Object = Nothing Me.SwapCell(c, srcRow, tarRow, tmp0, tmp1, dgView) Dim delta As Integer = CInt(IIf(tarRow < srcRow, 1, -1))
Dim r As Integer = tarRow + delta While (r <> srcRow + delta) tmp1 = dgView.Rows(r).Cells(c).Value dgView.Rows(r).Cells(c).Value = tmp0 tmp0 = tmp1 r += delta End While dgView.Rows(tarRow).Selected = True dgView.CurrentCell = dgView.Rows(tarRow).Cells(0) End Sub
Private Sub DragDropableGridView_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Dim dgview As DataGridView = DirectCast(sender, DataGridView) Dim p As Point = dgview.PointToClient(New Point(e.X, e.Y)) Dim dgt As DataGridViewHitTestType = dgview.HitTest(p.X, p.Y).Type If Me.IsCellOrRowHeader(p.X, p.Y, dgview) Then e.Effect = DragDropEffects.Move Else e.Effect = DragDropEffects.None End If End Sub
#Region "Private Sub DataGridViewコントロール_行を固定する"
DataGridView(System.Windows.Forms.DataGridView)その3参照
#End Region
#Region "Private Sub DataGridViewコントロール_行・列を固定する"
DataGridView(System.Windows.Forms.DataGridView)その3参照
#End Region
Private Sub Mask列を追加する(ByVal dgView As DataGridView) Dim maskCol As MaskedColumn = New MaskedColumn() maskCol.Mask = "000-0000" dgView.Columns.Add(maskCol) dgView.RowCount = 5 End Sub
#Region "Private Sub DataGridViewコントロール_DataGridViewCellStyleクラス"
DataGridView(System.Windows.Forms.DataGridView)その2参照
#End Region
#Region "Private Sub CustomCellPaint"
DataGridView(System.Windows.Forms.DataGridView)その2参照
#End Region
#Region "Private Sub DataGridViewコントロール_バインド出来るデータソース"
DataGridView(System.Windows.Forms.DataGridView)その2参照
#End Region
#Region "Private Sub DataGridViewコントロール_内部コントロールの種類"
DataGridView(System.Windows.Forms.DataGridView)その1参照
#End Region
#Region "Private Sub OnCellContentClick"
DataGridView(System.Windows.Forms.DataGridView)その1参照
#End Region
#Region "Private Sub AddTabPage"
DataGridView(System.Windows.Forms.DataGridView)その1参照
#End Region
#Region "Private Function CreateWankumaDataset"
DataGridView(System.Windows.Forms.DataGridView)その2参照
#End Region
End Class
#Region "Public Class Pet"
DataGridView(System.Windows.Forms.DataGridView)その2参照
#End Region
#Region "MaskedTextBox 列" Public Class MaskedEditingControl Inherits MaskedTextBox Implements IDataGridViewEditingControl
Private dataGridViewControl As DataGridView Private valueIsChanged As Boolean = False Private rowIndexNum As Integer
Public Sub New() End Sub
Public Property EditingControlFormattedValue() As Object _ Implements IDataGridViewEditingControl.EditingControlFormattedValue
Get Return MyBase.Text End Get
Set(ByVal value As Object) If TypeOf value Is [String] Then MyBase.Text = Convert.ToString(value) End If End Set
End Property
Public Function GetEditingControlFormattedValue(ByVal context _ As DataGridViewDataErrorContexts) As Object _ Implements IDataGridViewEditingControl.GetEditingControlFormattedValue
Return MyBase.Text
End Function
Public Sub ApplyCellStyleToEditingControl(ByVal dataGridViewCellStyle As _ DataGridViewCellStyle) _ Implements IDataGridViewEditingControl.ApplyCellStyleToEditingControl
MyBase.Font = dataGridViewCellStyle.Font MyBase.BackColor = dataGridViewCellStyle.BackColor MyBase.ForeColor = dataGridViewCellStyle.ForeColor MyBase.BorderStyle = Windows.Forms.BorderStyle.None End Sub
Public Property EditingControlRowIndex() As Integer _ Implements IDataGridViewEditingControl.EditingControlRowIndex
Get Return Me.rowIndexNum End Get Set(ByVal value As Integer) Me.rowIndexNum = value End Set
End Property
Public Function EditingControlWantsInputKey(ByVal key As Keys, _ ByVal dataGridViewWantsInputKey As Boolean) As Boolean _ Implements IDataGridViewEditingControl.EditingControlWantsInputKey Return True End Function
Public Sub PrepareEditingControlForEdit(ByVal selectAll As Boolean) _ Implements IDataGridViewEditingControl.PrepareEditingControlForEdit End Sub
Public ReadOnly Property RepositionEditingControlOnValueChange() _ As Boolean Implements _ IDataGridViewEditingControl.RepositionEditingControlOnValueChange
Get Return False End Get
End Property
Public Property EditingControlDataGridView() As DataGridView _ Implements IDataGridViewEditingControl.EditingControlDataGridView
Get Return Me.dataGridViewControl End Get Set(ByVal value As DataGridView) Me.dataGridViewControl = value End Set
End Property
Public Property EditingControlValueChanged() As Boolean _ Implements IDataGridViewEditingControl.EditingControlValueChanged
Get Return Me.valueIsChanged End Get Set(ByVal value As Boolean) Me.valueIsChanged = value End Set
End Property
Public ReadOnly Property EditingControlCursor() As Cursor _ Implements IDataGridViewEditingControl.EditingPanelCursor
Get Return MyBase.Cursor End Get
End Property
Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs) Me.valueIsChanged = True Me.EditingControlDataGridView.NotifyCurrentCellDirty(True) MyBase.OnTextChanged(e) End Sub
End Class
Public Class MaskedCell Inherits DataGridViewTextBoxCell
Public Sub New() End Sub
Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, _ ByVal initialFormattedValue As Object, _ ByVal dataGridViewCellStyle As DataGridViewCellStyle)
MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, _ dataGridViewCellStyle)
Dim column As MaskedColumn = DirectCast(MyBase.DataGridView.Columns(MyBase.ColumnIndex), MaskedColumn) Me.Mask = column.Mask Dim ctl As MaskedEditingControl = _ DirectCast(DataGridView.EditingControl, MaskedEditingControl) ctl.Mask = Me.Mask End Sub
Public Overrides ReadOnly Property EditType() As Type Get Return GetType(MaskedEditingControl) End Get End Property
Public Overrides ReadOnly Property ValueType() As Type Get Return GetType(String) End Get End Property
Public Overrides ReadOnly Property DefaultNewRowValue() As Object Get Return String.Empty End Get End Property
Private m_mask As String
Public Property Mask() As String Get Return Me.m_mask End Get Set(ByVal value As String) Me.m_mask = value End Set End Property
Public Overrides Function Clone() As Object Dim cell As MaskedCell = DirectCast(MyBase.Clone(), MaskedCell) cell.Mask = Me.Mask Return cell End Function End Class
Public Class MaskedColumn Inherits DataGridViewColumn
Public Property Mask() As String Get Return DirectCast(MyBase.CellTemplate, MaskedCell).Mask End Get Set(ByVal value As String) DirectCast(MyBase.CellTemplate, MaskedCell).Mask = value End Set End Property
Public Sub New() MyBase.New(New MaskedCell()) End Sub
Public Overrides Property CellTemplate() As DataGridViewCell Get Return MyBase.CellTemplate End Get Set(ByVal value As DataGridViewCell) If Not (value Is Nothing) AndAlso _ Not value.GetType().IsAssignableFrom(GetType(MaskedCell)) _ Then Throw New InvalidCastException("Must be a MaskedCell") End If MyBase.CellTemplate = value End Set End Property
End Class #End Region
#Region "AutoComplete 列" Public Class AutoCompletableTextCell Inherits DataGridViewTextBoxCell
Public Sub New() Me.m_autoCompleteCustomSource = Nothing Me.m_autoCompleteMode = Windows.Forms.AutoCompleteMode.None Me.m_autoCompleteSource = Windows.Forms.AutoCompleteSource.None End Sub
Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, _ ByVal initialFormattedValue As Object, _ ByVal dataGridViewCellStyle As DataGridViewCellStyle)
MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, _ dataGridViewCellStyle)
Dim ctl As DataGridViewTextBoxEditingControl = _ DirectCast(DataGridView.EditingControl, DataGridViewTextBoxEditingControl) Dim column As AutoCompletableTextColumn = _ DirectCast(Me.OwningColumn, AutoCompletableTextColumn) Me.AutoCompleteCustomSource = column.AutoCompleteCustomSource Me.AutoCompleteMode = column.AutoCompleteMode Me.AutoCompleteSource = column.AutoCompleteSource
ctl.AutoCompleteCustomSource = Me.AutoCompleteCustomSource ctl.AutoCompleteMode = Me.AutoCompleteMode ctl.AutoCompleteSource = Me.AutoCompleteSource
End Sub
Private m_autoCompleteCustomSource As AutoCompleteStringCollection Private m_autoCompleteMode As AutoCompleteMode Private m_autoCompleteSource As AutoCompleteSource
Public Property AutoCompleteCustomSource() As AutoCompleteStringCollection Get Return Me.m_autoCompleteCustomSource End Get Set(ByVal value As AutoCompleteStringCollection) Me.m_autoCompleteCustomSource = value End Set End Property
Public Property AutoCompleteMode() As AutoCompleteMode Get Return Me.m_autoCompleteMode End Get Set(ByVal value As AutoCompleteMode) Me.m_autoCompleteMode = value End Set End Property
Public Property AutoCompleteSource() As AutoCompleteSource Get Return Me.m_autoCompleteSource End Get Set(ByVal value As AutoCompleteSource) Me.m_autoCompleteSource = value End Set End Property
Private Function GetAutoCompleteCustomSourceClone() As AutoCompleteStringCollection If Me.AutoCompleteCustomSource Is Nothing Then Return Nothing Dim enm As IEnumerator = Me.AutoCompleteCustomSource.GetEnumerator() Dim copyAutoCompleteStringCollection As AutoCompleteStringCollection = New AutoCompleteStringCollection While enm.MoveNext copyAutoCompleteStringCollection.Add(Convert.ToString(enm.Current)) End While Return copyAutoCompleteStringCollection End Function
Public Overrides Function Clone() As Object Dim cell As AutoCompletableTextCell = DirectCast(MyBase.Clone(), AutoCompletableTextCell) cell.AutoCompleteCustomSource = Me.GetAutoCompleteCustomSourceClone() cell.AutoCompleteMode = Me.AutoCompleteMode cell.AutoCompleteSource = Me.AutoCompleteSource Return cell End Function End Class
Public Class AutoCompletableTextColumn Inherits DataGridViewColumn
Public Sub New() MyBase.New(New AutoCompletableTextCell()) End Sub
Public Overrides Property CellTemplate() As DataGridViewCell Get Return MyBase.CellTemplate End Get Set(ByVal value As DataGridViewCell) If Not (value Is Nothing) AndAlso _ Not value.GetType().IsAssignableFrom(GetType(AutoCompletableTextCell)) _ Then Throw New InvalidCastException("Must be a AutoCompletableTextCell") End If MyBase.CellTemplate = value End Set End Property
Public Property AutoCompleteCustomSource() As AutoCompleteStringCollection Get Return DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteCustomSource End Get Set(ByVal value As AutoCompleteStringCollection) DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteCustomSource = value End Set End Property
Public Property AutoCompleteMode() As AutoCompleteMode Get Return DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteMode End Get Set(ByVal value As AutoCompleteMode) DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteMode = value End Set End Property
Public Property AutoCompleteSource() As AutoCompleteSource Get Return DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteSource End Get Set(ByVal value As AutoCompleteSource) DirectCast(MyBase.CellTemplate, AutoCompletableTextCell).AutoCompleteSource = value End Set End Property
End Class #End Region
' TabStop 関連 Public Interface ISupportTabStop Property TabStop() As Boolean End Interface
Public Class TabStopTextBoxEditingControl Inherits DataGridViewTextBoxEditingControl End Class
Public Class TabStopTextBoxCell Inherits DataGridViewTextBoxCell Implements ISupportTabStop
Private m_tabStop As Boolean
Public Property TabStop() As Boolean Implements ISupportTabStop.TabStop Get Return Me.m_tabStop End Get Set(ByVal value As Boolean) Me.m_tabStop = value End Set End Property
Public Sub New() Me.m_tabStop = True End Sub
Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, _ ByVal initialFormattedValue As Object, _ ByVal dataGridViewCellStyle As DataGridViewCellStyle)
MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, _ dataGridViewCellStyle) Dim column As TabStopTextBoxColumn = DirectCast(MyBase.DataGridView.Columns(MyBase.ColumnIndex), TabStopTextBoxColumn) Me.TabStop = column.TabStop
End Sub
Public Overrides ReadOnly Property EditType() As System.Type Get Return GetType(TabStopTextBoxEditingControl) End Get End Property
Public Overrides Function Clone() As Object Dim cell As TabStopTextBoxCell = DirectCast(MyBase.Clone(), TabStopTextBoxCell) cell.TabStop = Me.TabStop Return cell End Function End Class
Public Class TabStopTextBoxColumn Inherits DataGridViewColumn
Public Sub New() MyBase.New(New TabStopTextBoxCell()) End Sub
Public Overrides Property CellTemplate() As System.Windows.Forms.DataGridViewCell Get Return MyBase.CellTemplate End Get Set(ByVal value As System.Windows.Forms.DataGridViewCell) If Not (value Is Nothing) AndAlso _ Not value.GetType().IsAssignableFrom(GetType(TabStopTextBoxCell)) _ Then Throw New InvalidCastException("Must be a TabStopTextBoxCell") End If MyBase.CellTemplate = value End Set End Property
Public Property TabStop() As Boolean Get Return DirectCast(MyBase.CellTemplate, TabStopTextBoxCell).TabStop End Get Set(ByVal value As Boolean) DirectCast(MyBase.CellTemplate, TabStopTextBoxCell).TabStop = value End Set End Property End Class
Public Class TabStopDataGridView Inherits DataGridView
Public Sub New() Me.InitializeComponent() End Sub
Private components As System.ComponentModel.IContainer = Nothing
Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso Not Me.components Is Nothing Then Me.components.Dispose() End If MyBase.Dispose(disposing) End Sub
Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() End Sub
Private Function GetFirstColumnIndex() As Integer Dim column As DataGridViewColumn = _ Me.Columns.GetFirstColumn(DataGridViewElementStates.Visible) Dim index As Integer = Convert.ToInt32(IIf(column Is Nothing, -1, column.Index)) Return index End Function
Private Function GetFirstRowIndex() As Integer Return Me.Rows.GetFirstRow(DataGridViewElementStates.Visible) End Function
Private Function GetLastColumnIndex() As Integer Dim column As DataGridViewColumn = _ Me.Columns.GetLastColumn(DataGridViewElementStates.Visible, DataGridViewElementStates.None) Dim index As Integer = Convert.ToInt32(IIf(column Is Nothing, -1, column.Index)) Return index End Function
Private Function GetLastRowIndex() As Integer Return Me.Rows.GetLastRow(DataGridViewElementStates.Visible) End Function
Private Function GetNextTabPosition(ByVal currentCellAddress As Point) As Point Dim nextCellAddress As Point = New Point(-1, -1) Dim nextColumnIndex As Integer = -1 If Me.CurrentCellAddress.X <> -1 Then Dim column As DataGridViewColumn = Me.Columns.GetNextColumn(Me.Columns(currentCellAddress.X), _ DataGridViewElementStates.Visible, DataGridViewElementStates.None) If Not column Is Nothing Then nextColumnIndex = column.Index End If End If If nextColumnIndex = -1 Then nextCellAddress.X = Me.GetFirstColumnIndex() nextCellAddress.Y = Me.Rows.GetNextRow(currentCellAddress.Y, _ DataGridViewElementStates.Visible) If nextCellAddress.Y = -1 Then nextCellAddress.Y = Me.GetFirstRowIndex() End If Else nextCellAddress.X = nextColumnIndex nextCellAddress.Y = currentCellAddress.Y End If Return nextCellAddress End Function
Private Function CanTabToNextCell() As Boolean Dim found As Boolean = False Dim currentCellAddress As Point = Me.CurrentCellAddress
Do While (Not found) Dim nextCellAddress As Point = Me.GetNextTabPosition(currentCellAddress) If TypeOf MyBase.Rows(nextCellAddress.Y).Cells(nextCellAddress.X) Is ISupportTabStop Then Dim tabstopcell As ISupportTabStop = _ DirectCast(Me.Rows(nextCellAddress.Y).Cells(nextCellAddress.X), ISupportTabStop) If tabstopcell.TabStop Then found = True Else found = True End If If Not found AndAlso _ nextCellAddress.X <= currentCellAddress.X AndAlso _ nextCellAddress.Y <= currentCellAddress.Y Then Return False End If currentCellAddress = nextCellAddress Loop Return True End Function
Private Function TabToNextCell(ByVal keyData As Keys) As Boolean If Me.GetFirstColumnIndex() = -1 OrElse Me.GetFirstRowIndex() = -1 Then Return False If Not Me.CanTabToNextCell() Then Return False Return Me.TabToCell(keyData) End Function
Private Function GetPreviousTabPosition(ByVal currentCellAddress As Point) As Point Dim previousCellAddress As Point = New Point(-1, -1) Dim previousColumnIndex As Integer = -1 If Me.CurrentCellAddress.X <> -1 Then Dim column As DataGridViewColumn = Me.Columns.GetPreviousColumn(Me.Columns(currentCellAddress.X), _ DataGridViewElementStates.Visible, DataGridViewElementStates.None) If Not column Is Nothing Then previousColumnIndex = column.Index End If End If If previousColumnIndex = -1 Then previousCellAddress.X = Me.GetLastColumnIndex() previousCellAddress.Y = Me.Rows.GetPreviousRow(currentCellAddress.Y, _ DataGridViewElementStates.Visible) If previousCellAddress.Y = -1 Then previousCellAddress.Y = Me.GetLastRowIndex() End If Else previousCellAddress.X = previousColumnIndex previousCellAddress.Y = currentCellAddress.Y End If Return previousCellAddress End Function
Private Function CanTabToPreviousCell() As Boolean Dim found As Boolean = False Dim currentCellAddress As Point = Me.CurrentCellAddress
Do While (Not found) Dim previousCellAddress As Point = Me.GetPreviousTabPosition(currentCellAddress) If TypeOf MyBase.Rows(previousCellAddress.Y).Cells(previousCellAddress.X) Is ISupportTabStop Then Dim tabstopcell As ISupportTabStop = _ DirectCast(Me.Rows(previousCellAddress.Y).Cells(previousCellAddress.X), ISupportTabStop) If tabstopcell.TabStop Then found = True Else found = True End If If Not found AndAlso _ previousCellAddress.X >= currentCellAddress.X AndAlso _ previousCellAddress.Y >= currentCellAddress.Y Then Return False End If currentCellAddress = previousCellAddress Loop Return True End Function
Private Function TabToPreviousCell(ByVal keyData As Keys) As Boolean If Me.GetFirstColumnIndex() = -1 OrElse Me.GetFirstRowIndex() = -1 Then Return False If Not Me.CanTabToPreviousCell() Then Return False Return Me.TabToCell(keyData) End Function
Private Function TabToCell(ByVal keyData As Keys) As Boolean Dim found As Boolean = False Dim currentCellAddress As Point = Me.CurrentCellAddress
Do While (Not found) Dim processed As Boolean = MyBase.ProcessTabKey(keyData) If Not processed Then Return False If TypeOf Me.CurrentCell Is ISupportTabStop Then Dim tabstopcell As ISupportTabStop = DirectCast(Me.CurrentCell, ISupportTabStop) If tabstopcell.TabStop Then Return True Else Return processed End If Loop Return False End Function
Protected Overrides Function ProcessDataGridViewKey(ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean Select Case e.KeyData Case Keys.Tab Return Me.TabToNextCell(e.KeyData) Case Keys.Shift Or Keys.Tab Return Me.TabToPreviousCell(e.KeyData) End Select Return MyBase.ProcessDataGridViewKey(e) End Function
End Class

投稿日時 : 2006年12月22日 12:51

Feedback

# re: DataGridView(System.Windows.Forms.DataGridView)その4 2006/12/22 13:12 えムナウ

>継承コントロールの作り方(うなまなさん)
継承コントロールは追加-カスタムコントロールで、
作成するのが正式だと思います。
#ここにコメントするのはどうかとは思いますが・・・

# re: DataGridView(System.Windows.Forms.DataGridView)その4 2006/12/22 13:18 えムナウ

追加-新しい項目-カスタムコントロール ですね。

# re: DataGridView(System.Windows.Forms.DataGridView)その4 2006/12/22 15:42 えムナウ

>なっちゃんのプログラミングTips: DataGridViewの行ヘッダに行番号を表示させるには
私のこのページがネタ元なんだそうです。
http://mnow.wankuma.com/cs2005_datagridview_control7.html

# datagridview 2007/12/18 18:14 help me

hi
i have 2 cell in my datagridview
cust_id and cust_name
when insert value in cell(cust_id)
search in mytbl and show (cust_name)in secend cell

sample
cust_id cust_name
1 robert
or
sample
cust_id cust_name
2 jack
3 tom


please help me

# novin_pardaz1@yahoo.com 2007/12/19 19:04 AutoCompleteCustomSource.AddRange(mytable)

how to load datatable field in AutoCompletableTextColumn
sample:
AutoCompleteCustomSource.AddRange(mytable)
please help me
than you

# re: DataGridView(System.Windows.Forms.DataGridView)その4 2007/12/20 17:42 なおこ(・∀・)

> 2007/12/18 18:14

Public Class Form1
  Private m_datagridViewSource As DataTable

  Public Sub New()
    ' この呼び出しは、Windows フォーム デザイナで必要です。
    InitializeComponent()
    ' InitializeComponent() 呼び出しの後で初期化を追加します。
    Me.DataGridView1.Columns.Add(New DataGridViewTextBoxColumn())
    Me.DataGridView1.Columns.Add(New DataGridViewTextBoxColumn())

    Me.m_datagridViewSource = New DataTable("customers")
    Me.m_datagridViewSource.Columns.Add("cust_id", GetType(Integer))
    Me.m_datagridViewSource.Columns.Add("cust_name", GetType(String))
    Me.m_datagridViewSource.Rows.Add(1, "robert")
    Me.m_datagridViewSource.Rows.Add(2, "jack")
    Me.m_datagridViewSource.Rows.Add(3, "tom")
  End Sub

  Private Sub DataGridView1_CellValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
    If e.ColumnIndex = 0 AndAlso _
    Convert.ToString(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) <> String.Empty Then
      Dim findRows As DataRow() = _
      Me.m_datagridViewSource.Select("cust_id=" & Convert.ToString(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value))
      If findRows.Length > 0 Then
        Me.DataGridView1.Rows(e.RowIndex).Cells(1).Value = findRows(0)("cust_name")
      End If
    End If
  End Sub
End Class

# re: DataGridView(System.Windows.Forms.DataGridView)その4 2007/12/20 18:17 なおこ(・∀・)

> 2007/12/19 19:04
Public Class Form1
  Private m_datagridViewSource As DataTable

  Public Sub New()
    ' この呼び出しは、Windows フォーム デザイナで必要です。
    InitializeComponent()
    ' InitializeComponent() 呼び出しの後で初期化を追加します。

    Me.m_datagridViewSource = New DataTable("customers")
    Me.m_datagridViewSource.Columns.Add("cust_id", GetType(Integer))
    Me.m_datagridViewSource.Columns.Add("cust_name", GetType(String))
    Me.m_datagridViewSource.Rows.Add(1, "robert")
    Me.m_datagridViewSource.Rows.Add(2, "jack")
    Me.m_datagridViewSource.Rows.Add(3, "tom")

    Dim autcompleteColumn As AutoCompletableTextColumn = New AutoCompletableTextColumn()
    Dim sources As String() = Me.CreateAutoCompleteSource(Me.m_datagridViewSource, 1)
    autcompleteColumn.AutoCompleteCustomSource.AddRange(sources)
    Me.DataGridView1.Columns.Add(autcompleteColumn)
  End Sub

  Private Function CreateAutoCompleteSource(ByVal dt As DataTable, ByVal columnIndex As Integer) As String()
    Dim collection As ArrayList = New ArrayList
    For Each row As DataRow In dt.Rows()
      collection.Add(Convert.ToString(row(columnIndex)))
    Next
    Return DirectCast(collection.ToArray(GetType(String)), String())
  End Function
End Class


Public Class AutoCompletableTextCell
  Inherits DataGridViewTextBoxCell

...

Private m_autoCompleteCustomSource As AutoCompleteStringCollection = New AutoCompleteStringCollection()
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Ogni http://www.gladesoutpost.org/mount-gambier-realestate.php negli http://www.gladesoutpost.org/appartamento-abruzzo.php legge. 2008/04/23 21:12 Ogni http://www.gladesoutpost.org/mount-gambier-re

Ogni http://www.gladesoutpost.org/mount-gambier-realestate.php negli http://www.gladesoutpost.org/appartamento-abruzzo.php legge.

# WaFahvAiOhGcLHVYWcz 2011/11/02 5:46 http://www.pharmaciecambier.com/

Gripping! I would like to listen to the experts` views on the subject!!...

# iXaPXTdSpGFyoyP 2011/11/02 6:38 http://optclinic.com/

Last a few years has been to Ibiza, so met a person there whose style of presentation is very similar to yours. But, unfortunately, that person is too far from the Internet!...

# JrKlQPhhWOSCNg 2011/11/15 18:21 http://www.epeyaculacionprecoz.com/

Good day! I do not see the conditions of using the information. May I copy the text from here on my site if you leave a link to this page?!...

# mhEOJnHvWsTzwkEHYB 2018/06/02 2:10 http://www.suba.me/

hENRyk When someone writes an piece of writing he/she keeps the plan of a

# ULsMdoezNAHc 2018/06/04 0:26 https://topbestbrand.com/&#3588;&#3619;&am

You ave made some good points there. I checked on the web to find out more about the issue and found most individuals will go along with your views on this site.

# EKVKsmGQtOLboDprM 2018/06/04 0:59 https://topbestbrand.com/&#3629;&#3633;&am

I went over this website and I believe you have a lot of fantastic info, bookmarked (:.

# oWbpGAOnnZSdZOAFE 2018/06/04 6:41 http://www.seoinvancouver.com/

I'а?ve learn several just right stuff here. Certainly value bookmarking for revisiting. I wonder how much attempt you place to create this type of great informative site.

# EYDsXaWleFGZ 2018/06/04 10:25 http://www.seoinvancouver.com/

I will immediately snatch your rss as I can not in finding your e-mail subscription link or e-newsletter service. Do you ave any? Please allow me realize so that I could subscribe. Thanks.

# zCLzQKNrethPdSqb 2018/06/04 12:17 http://www.seoinvancouver.com/

You are my intake , I possess few blogs and very sporadically run out from to brand.

# alasyefDCsY 2018/06/04 23:40 http://www.narcissenyc.com/

I will not talk about your competence, the write-up just disgusting

# XZLpUMUZEIInopcLPwS 2018/06/05 3:28 http://www.narcissenyc.com/

I will right away seize your rss as I can at find your e-mail subscription hyperlink or e-newsletter service. Do you ave any? Kindly let me know in order that I could subscribe. Thanks.

# xXHiVQWjWjDRkaiSA 2018/06/05 7:19 http://www.narcissenyc.com/

Really enjoyed this blog.Really looking forward to read more. Want more.

# rtslJVvneWQUGiagae 2018/06/05 16:45 http://vancouverdispensary.net/

IaаАа?б?Т€Т?а?а?аАа?б?Т€Т?аБТ?m a long time watcher and I just believed IaаАа?б?Т€Т?а?а?аАа?б?Т€Т?аБТ?d drop by and say hello there for the incredibly initially time.

# NLEqTepaTmsuLHPhhHS 2018/06/05 18:39 http://vancouverdispensary.net/

then i advise him/her to pay a quick visit this web site, Keep up

# jUZPVEebBfodM 2018/06/05 20:35 http://vancouverdispensary.net/

Thanks a lot for the article.Thanks Again.

# tpiqXIeIPAKEoVF 2018/06/05 22:31 http://closestdispensaries.com/

I truly appreciate this post.Thanks Again. Fantastic.

# MXEnYuVUZasX 2018/06/06 0:40 https://www.youtube.com/watch?v=zetV8p7HXC8

This unique blog is no doubt educating as well as amusing. I have found a lot of helpful things out of it. I ad love to go back every once in a while. Thanks!

# HZwmWhCqxfeMDmpx 2018/06/09 0:05 https://www.hanginwithshow.com

Thanks-a-mundo for the blog post. Awesome.

# SLtwkfgHOsHYZs 2018/06/09 3:55 https://www.prospernoah.com/nnu-income-program-rev

I'а?ve read many excellent stuff here. Unquestionably worth bookmarking for revisiting. I surprise how a great deal try you set to create this sort of great informative internet site.

# fyQCPsfCregxoXw 2018/06/09 4:29 https://topbestbrand.com/&#3626;&#3636;&am

It as not that I want to replicate your web-site, but I really like the style. Could you let me know which theme are you using? Or was it custom made?

# vNPufrKrZydMS 2018/06/09 5:05 https://victorpredict.net/

You ave made some decent points there. I looked on the net for more information about the issue and found most people will go along with your views on this site.

# IoeRTNkSbiNWgsNeE 2018/06/09 6:48 http://www.seoinvancouver.com/

Red your weblog put up and liked it. Have you ever considered about guest posting on other relevant blogs comparable to your website?

# KUpoWKGtDCjrqSQo 2018/06/09 12:39 https://greencounter.ca/

It as in reality a great and helpful piece of information. I am satisfied that you simply shared this helpful tidbit with us. Please stay us up to date like this. Thanks for sharing.

# qbxXIoPwmrvma 2018/06/09 14:33 http://www.seoinvancouver.com/

Wow, wonderful blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your website is wonderful, as well as the content!

# PArEmgUhtm 2018/06/09 18:21 http://www.seoinvancouver.com/

lungs, and cardio-vascular tissue. If this happens, weight loss will slow down and it will become more and more difficult to maintain a healthy weight.

# adJmfBhIAjLzBV 2018/06/10 0:09 http://www.seoinvancouver.com/

Thanks-a-mundo for the blog article. Much obliged.

# wfSIfLSzfDLrfRFfYhY 2018/06/10 2:03 http://iamtechsolutions.com/

I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful.

# owaxRqqVLSqe 2018/06/10 7:45 http://www.seoinvancouver.com/

Outstanding place of duty, you have critical absent a quantity of outstanding points, I also imagine this is a fantastically admirable website.

# srVbIZiperNlPedvG 2018/06/10 11:33 https://topbestbrand.com/&#3594;&#3640;&am

There as certainly a great deal to know about this issue. I like all of the points you have made.

# YnXYMtXKGw 2018/06/10 12:45 https://topbestbrand.com/&#3624;&#3641;&am

magnificent points altogether, you just won a new reader. What might you recommend in regards to your post that you made a few days ago? Any sure?

# VQveMuZMmY 2018/06/11 19:05 https://topbestbrand.com/&#3607;&#3633;&am

Im obliged for the blog post. Really Great.

# ngUxkEcbkQGeF 2018/06/11 19:42 https://tipsonblogging.com/2018/02/how-to-find-low

Thanks for sharing, this is a fantastic article post. Great.

# gWJDhtAlDguYxLoiSm 2018/06/12 18:32 http://www.seoinvancouver.com/

written by him as nobody else know such detailed about my difficulty.

# SfFXFXJLwkxLpiT 2018/06/12 19:09 http://betterimagepropertyservices.ca/

I think this is a real great article.Much thanks again. Much obliged.

# SzmrOgMdrehlPYMjpG 2018/06/13 1:03 http://naturalattractionsalon.com/

pretty handy material, overall I feel this is well worth a bookmark, thanks

# iaVnMNpaokbQrtZjm 2018/06/13 3:01 http://www.seoinvancouver.com/

Would you be eager about exchanging links?

# FYWmBnNNRIqp 2018/06/13 5:01 http://www.seoinvancouver.com/

Our communities really need to deal with this.

# PfMnzHuyioRSvBEPD 2018/06/13 6:57 http://www.seoinvancouver.com/

Very useful information specifically the last part I care for such information much.

# LOXgMKJdBfPc 2018/06/13 9:41 http://www.seoinvancouver.com/

May I use Wikipedia content in my blog without violating the copyright law?

# nNsQUUllrtFnv 2018/06/13 11:37 http://www.seoinvancouver.com/

Some truly wonderful posts on this site, appreciate it for contribution.

# rQOCZVPXbhZdsuoEM 2018/06/13 15:30 http://www.seoinvancouver.com/

Magnificent site. Lots of useful info here.

# IuhmWhgcNMFpNT 2018/06/14 0:49 https://topbestbrand.com/&#3605;&#3585;&am

Well I definitely liked studying it. This tip provided by you is very useful for correct planning.

# uskVkJjaUqNnx 2018/06/14 1:27 https://topbestbrand.com/&#3650;&#3619;&am

Thankyou for helping out, excellent information.

# sQkYTNHeMTzjAsDCM 2018/06/15 2:39 https://www.youtube.com/watch?v=cY_mYj0DTXg

Is there a mint app for UK people that links into your bank? Thanks

# iTQypizhppkgjEt 2018/06/15 13:54 http://xe24h.org/forum/profile.php?id=39141

You ave made some really good points there. I looked on the internet for additional information about the issue and found most people will go along with your views on this website.

# sgRntzYcJnHrp 2018/06/15 18:29 https://purdyalerts.com/2018/06/01/7060bottom/

Terrific work! This is the type of information that are supposed to be shared across the web. Disgrace on Google for not positioning this post higher! Come on over and visit my web site. Thanks =)

# ssMwMYdlqTPGpa 2018/06/15 20:33 https://topbestbrand.com/&#3648;&#3623;&am

What a stuff of un-ambiguity and preserveness of valuable knowledge regarding unexpected feelings.|

# fMVwxrbZEAkxQm 2018/06/15 23:13 http://hairsalonvictoriabc.ca

Only a smiling visitant here to share the love (:, btw outstanding pattern. Make the most of your regrets. To regret deeply is to live afresh. by Henry David Thoreau.

# FfBQgCIBFclsduUPS 2018/06/16 5:11 http://signagevancouver.ca

Major thanks for the article.Thanks Again. Fantastic.

# WmqZwrBJsqzw 2018/06/18 15:47 https://www.techlovesstyle.com/single-post/2017/12

You can certainly see your expertise in the paintings you write. The sector hopes for more passionate writers like you who are not afraid to mention how they believe. At all times follow your heart.

# UBGjBZOfONLQexjzoZ 2018/06/18 22:29 https://www.codecademy.com/brendon402

Very informative article post.Much thanks again. Keep writing.

# XxeExHlTzswVlnch 2018/06/18 23:10 https://soundcloud.com/juddin1

Your method of explaining all in this piece of writing is truly good, all be able to simply be aware of it, Thanks a lot.

# MmANEBLIfE 2018/06/19 1:14 https://audioboom.com/users/5159062

Thanks so much for the article.Much thanks again. Keep writing.

# pttNNPQcANJq 2018/06/19 3:18 http://www.bookcrossing.com/mybookshelf/laymor/

You ave made some decent points there. I checked on the internet to find out more about the issue and found most individuals will go along with your views on this site.

# sBqRuwzKQh 2018/06/19 4:01 https://www.bibsonomy.org/user/wannow

You got a really useful blog I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me.

# ECKvCJGorPsPoxVazA 2018/06/19 5:23 https://www.codeproject.com/Members/DanielWoods

It as hard to find well-informed people in this particular subject, however, you seem like you know what you are talking about! Thanks

# RcpXfUBNSUTuTnux 2018/06/19 6:46 https://techguide.livejournal.com/profile

I think this internet site holds some very great info for everyone .

# VBwFUsKkQDsoyjdQhEv 2018/06/19 12:05 https://www.graphicallyspeaking.ca/

My blog discusses a lot of the same topics as yours and I think we could greatly benefit from each

# frfdHHDOlEVJ 2018/06/19 16:07 https://www.marwickmarketing.com/

They are really convincing and can certainly work.

# JGRgUoHQdEfElslBSTp 2018/06/19 22:16 https://www.marwickmarketing.com/

upper! Come on over and consult with my website.

# oUodZPQqbAZmw 2018/06/21 20:06 https://topbestbrand.com/&#3629;&#3633;&am

Wow, fantastic blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is fantastic, as well as the content!

# hAiZwQnytfcQaMydZcx 2018/06/22 18:16 https://dealsprimeday.com/

Really appreciate you sharing this blog.Much thanks again. Great.

# eOXJuZPXnZTTSEAm 2018/06/22 20:22 https://best-garage-guys-renton.business.site

There may be noticeably a bundle to find out about this. I assume you made certain good factors in options also.

# azPakMavgTmMAaXUfZM 2018/06/24 20:09 http://www.seatoskykiteboarding.com/

liked every little bit of it and i also have you book marked to see new information on your web site.

# aeNQkcCjCrf 2018/06/24 22:13 http://www.seatoskykiteboarding.com/

This is one magnificent blog post. Much obliged.

# ZxRTtzXuFxS 2018/06/25 0:19 http://www.seatoskykiteboarding.com/

ohenkt foo theoing, ohit it e fenoetoic bkog poto.owekky ohenk you! ewwtomw.

# CnwycPJaZoSBUPHlmz 2018/06/25 2:22 http://www.seatoskykiteboarding.com/

Thanks again for the article.Really looking forward to read more. Fantastic.

# IFnQIUtHuWZhuqxdvtp 2018/06/25 4:22 http://www.seatoskykiteboarding.com/

this subject and didn at know who to ask.

# UTODNRHCIfZUsxo 2018/06/25 8:25 http://www.seatoskykiteboarding.com/

wow, awesome blog.Thanks Again. Keep writing.

# ZWuNRmVAZUZV 2018/06/25 10:27 http://www.seatoskykiteboarding.com/

the time to study or check out the subject material or websites we ave linked to below the

# khJMUkuAeOlo 2018/06/25 23:34 http://www.seoinvancouver.com/index.php/seo-servic

Its hard to find good help I am forever proclaiming that its hard to find good help, but here is

# QOiBerypUo 2018/06/26 7:53 http://www.seoinvancouver.com/index.php/seo-servic

wow, awesome blog.Really looking forward to read more. Keep writing.

# KqduhfgjcCfZng 2018/06/26 9:58 http://www.seoinvancouver.com/index.php/seo-servic

you will have an ideal weblog right here! would you like to make some invite posts on my blog?

# bbKYFIlWlqrPWT 2018/06/26 20:31 http://www.seoinvancouver.com/

Thanks for one as marvelous posting! I quite enjoyed reading it,

# LTWaeFaVZaESdOodDf 2018/06/26 23:22 https://www.financemagnates.com/cryptocurrency/exc

Thanks again for the blog article. Really Great.

# wKXMuecBKSMVTZeNH 2018/06/27 1:28 https://www.jigsawconferences.co.uk/case-study

I value the blog post.Much thanks again. Awesome.

# dWAKNuYawnOzUA 2018/06/27 5:42 http://blog.tutotoons.com/login-2015/

You, my pal, ROCK! I found just the information I already searched all over the place and simply could not find it. What a great web site.

# NimqBQxIdNUm 2018/06/27 6:24 https://getviewstoday.com/youtube/viral/

Very neat blog.Much thanks again. Fantastic.

# brqAwDxirUOMF 2018/06/27 8:27 https://www.rkcarsales.co.uk/

wow, awesome post.Really looking forward to read more. Will read on...

# psDkHUxghpvJEUSNCA 2018/06/27 9:08 https://www.youtube.com/watch?v=zetV8p7HXC8

I value the blog.Much thanks again. Fantastic.

# qvkhajRQAyBnzBj 2018/06/27 13:46 https://www.jigsawconferences.co.uk/case-study

Regards for this post, I am a big fan of this web site would like to go along updated.

# aMZGMpuCOKZaQPz 2018/06/27 18:21 https://www.youtube.com/watch?v=zetV8p7HXC8

It as hard to come by knowledgeable people about this topic, however, you sound like you know what you are talking about! Thanks

# XzGsEkLRIgtf 2018/06/27 21:11 https://www.linkedin.com/in/digitalbusinessdirecto

It as not that I want to copy your internet site, but I really like the design. Could you tell me which theme are you using? Or was it especially designed?

# JilKPsofXA 2018/06/27 22:06 https://www.jigsawconferences.co.uk/contractor-acc

The world hopes for more passionate writers like you who aren at afraid to say how they believe. At all times follow your heart.

# UrnVUsXlgAzfYCpYcWG 2018/06/27 23:02 https://www.jigsawconferences.co.uk/offers/events

Secondary moment My partner and i acquired and then both of those events happy with %anchor% When important I most certainly will arrangement as a result supplier once again..Fantastic occupation.

# ZFQxeOXQmUx 2018/06/29 16:12 https://purdyalerts.com/2018/06/28/pennystocks/

Red your website put up and liked it. Have you at any time considered about visitor submitting on other associated blogs similar to your website?

# NbfpCiSNMVs 2018/07/02 17:00 https://www.prospernoah.com/wakanda-nation-income-

This blog is obviously educating and also factual. I have discovered helluva useful stuff out of this blog. I ad love to go back every once in a while. Cheers!

# EyVAxfKAZAfSsg 2018/07/02 18:52 https://topbestbrand.com/&#3611;&#3619;&am

you will have an awesome weblog right here! would you prefer to make some invite posts on my weblog?

# EBGdprJHcTxLYg 2018/07/02 19:59 https://topbestbrand.com/&#3593;&#3637;&am

My brother suggested I might like this blog. He was entirely right. This post truly made my day. You cann at imagine simply how much time I had spent for this info! Thanks!

# AyzFvuyUBiMWsVjdq 2018/07/02 21:06 https://topbestbrand.com/&#3610;&#3619;&am

Whoa! This blog looks exactly like my old one! It as on a entirely different topic but it has pretty much the same page layout and design. Outstanding choice of colors!

# lJNANsnDFctCuW 2018/07/03 7:32 http://strickland5622oq.tek-blogs.com/this-effort-

I think this is a real great blog.Thanks Again. Much obliged.

# PIGWndueAFwyiXYSEv 2018/07/03 12:15 http://nixon8128fy.pacificpeonies.com/but-if-you-p

I will right away clutch your rss feed as I can not find your e-mail subscription hyperlink or e-newsletter service. Do you ave any? Kindly let me recognize in order that I could subscribe. Thanks.

# aqvgOXIZprhWWO 2018/07/03 14:37 http://snodgrassfragmqzs.basinperlite.com/in-addit

I value the article.Really looking forward to read more. Great. oral creampie

# mqqfREicCpqrmEZJW 2018/07/03 19:00 http://www.seoinvancouver.com/

Wow, great post.Really looking forward to read more. Want more.

# KMRZBureuTWzpsT 2018/07/03 21:27 http://www.seoinvancouver.com/

Major thanks for the post.Much thanks again. Fantastic.

# BrVEmgmxOwUdAbGZSye 2018/07/04 3:17 http://www.seoinvancouver.com/

Tremendous details thanks a lot for publishing. The truth is in all of the content on this blog you will find something to understand.

# tGbEyckRag 2018/07/04 5:40 http://www.seoinvancouver.com/

You have done a extraordinary job! Also visit my web page medi weightloss

# HpkAZMVWKRW 2018/07/04 8:02 http://www.seoinvancouver.com/

I visited a lot of website but I conceive this one contains something extra in it in it

# YlgEwNlIaIUJ 2018/07/04 10:25 http://www.seoinvancouver.com/

Whoa! This blog looks exactly like my old one! It as on a totally different subject but it has pretty much the same layout and design. Superb choice of colors!

# rTluuTZhCLClpplKZA 2018/07/04 15:13 http://www.seoinvancouver.com/

There is definately a great deal to know about this subject. I really like all of the points you have made.

# uhoeFddEsYPRs 2018/07/04 20:10 http://www.seoinvancouver.com/

Wonderful blog! I found it while searching on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I ave been trying for a while but I never seem to get there! Cheers

# ARfZbLjniY 2018/07/05 4:31 http://www.seoinvancouver.com/

Really enjoyed this blog article.Much thanks again.

# kOxxlGhzLeBmMSXDyC 2018/07/05 6:56 http://www.seoinvancouver.com/

Really appreciate you sharing this blog.Thanks Again. Fantastic.

# iWotreceAuzysB 2018/07/05 11:45 http://www.seoinvancouver.com/

Major thankies for the article post.Thanks Again. Awesome.

# VSqUuinoRmYpmo 2018/07/05 14:14 http://www.seoinvancouver.com/

sure, analysis is paying off. Seriously handy perspective, many thanks for sharing.. Truly handy point of view, many thanks for expression.. Fantastic beliefs you have here..

# ilojCpOqoBgiDWzV 2018/07/05 19:09 http://www.seoinvancouver.com/

Perfectly indited subject matter, thanks for information.

# ILAdudqQZKoAjTVkdx 2018/07/06 2:37 http://www.seoinvancouver.com/

It is best to participate in a contest for among the finest blogs on the web. I all suggest this website!

# JGjNIYEMFotFlEGS 2018/07/06 5:05 http://www.seoinvancouver.com/

Why viewers still make use of to read news papers when in this technological world everything is available on web?

# KjRNYdLgMIiTdwvvRZ 2018/07/06 7:32 http://www.seoinvancouver.com/

Wow! This could be one particular of the most useful blogs We have ever arrive across on this subject. Basically Fantastic. I am also an expert in this topic therefore I can understand your effort.

# JMAfOfhOpOH 2018/07/06 14:53 http://nowforourturn.org/Wiki3/index.php?title=Use

I simply could not leave your website prior to suggesting that I extremely loved the usual information a person supply in your visitors? Is gonna be back incessantly in order to check up on new posts.

# nrHEAIJnqkzcPFbY 2018/07/06 18:49 http://historischhasselo.nl/index.php/How_To_Optim

Im no expert, but I suppose you just crafted the best point. You undoubtedly understand what youre talking about, and I can really get behind that. Thanks for staying so upfront and so genuine.

# ZbsXRwGFIF 2018/07/06 20:48 http://www.seoinvancouver.com/

The Birch of the Shadow I feel there may possibly become a couple duplicates, but an exceedingly handy listing! I have tweeted this. Several thanks for sharing!

# znCSKKuwHqjIIiUcX 2018/07/07 1:52 http://www.seoinvancouver.com/

style is awesome, keep doing what you are doing!

# YpLcVSEEuKnVlZwh 2018/07/07 6:49 http://www.seoinvancouver.com/

you can always count on search engine marketing if you want to promote products online.

# DOfJchRaVCbSvb 2018/07/07 9:15 http://www.seoinvancouver.com/

I truly appreciate this post. I ave been looking everywhere for this! Thank goodness I found it on Bing. You ave made my day! Thanks again.

# sYcCSuDgXw 2018/07/07 11:42 http://www.seoinvancouver.com/

I value the blog article.Really looking forward to read more. Really Great.

# bswxTxdmstMGLmuYULs 2018/07/07 14:13 http://www.seoinvancouver.com/

please pay a visit to the web sites we follow, like this one particular, as it represents our picks in the web

# EcrdmaJXJoh 2018/07/07 21:40 http://www.seoinvancouver.com/

This is one awesome article post.Really looking forward to read more. Much obliged.

# pLbkIINWthlztgVs 2018/07/08 0:12 http://www.seoinvancouver.com/

Very neat article.Thanks Again. Great. porno gifs

# YvJQyBJojTEW 2018/07/08 2:40 https://www.prospernoah.com/affiliate-programs-in-

Thanks-a-mundo for the blog post.Much thanks again. Want more.

# mLhVFVapAmQGNwYRV 2018/07/08 9:28 http://www.vegas831.com/en/home

It as not that I want to copy your web-site, but I really like the style and design. Could you let me know which design are you using? Or was it especially designed?

# MQCFPCJdAzEgS 2018/07/09 13:37 http://terryshoagies.com/panduan-cara-daftar-sbobe

You could certainly see your enthusiasm within the work you write. The arena hopes for more passionate writers like you who are not afraid to mention how they believe. All the time follow your heart.

# FUvOaJEiQGTC 2018/07/09 16:10 http://bestretroshoes.com/2018/06/28/agen-sbobet-d

Only wanna comment that you have a very decent website , I like the style and design it actually stands out.

# YjwgOdOlBwreQNixo 2018/07/09 18:45 https://icolaunchkit.io/

topic. I needs to spend some time learning much more

# ltaQoJUEeAKZqt 2018/07/09 22:23 https://eubd.edu.ba/

Incredible! This blog looks exactly like my old one! It as on a totally different topic but it has pretty much the same page layout and design. Wonderful choice of colors!

# SMejQXXdQvrDWoglYZ 2018/07/10 14:47 http://www.seoinvancouver.com/

There as definately a lot to learn about this topic. I like all of the points you ave made.

# yJpecYwVFsNJBDC 2018/07/10 20:07 http://www.seoinvancouver.com/

Thanks-a-mundo for the blog. Really Great.

# cHfFaxPJWXfbYQuBXo 2018/07/10 22:50 http://www.seoinvancouver.com/

It as very straightforward to find out any topic on web as compared to books, as I found this article at this web site.

# FTnlCeksRLuTD 2018/07/11 1:25 http://www.seoinvancouver.com/

I think other web site proprietors should take this website as an model, very clean and fantastic user friendly style and design, as well as the content. You are an expert in this topic!

# WqFtstAWgDXggbw 2018/07/11 14:13 http://www.seoinvancouver.com/

I'а?ve read various fantastic stuff here. Undoubtedly worth bookmarking for revisiting. I surprise how a whole lot try you set to generate this form of great informative internet site.

# ozZZerdVSOuUEMx 2018/07/11 16:48 http://www.seoinvancouver.com/

serais incapable avons enfin du les os du. Il reste trois parcours magnifique elle,

# GahDHWedJQJFc 2018/07/11 19:27 http://www.seoinvancouver.com/

PRADA BAGS OUTLET ??????30????????????????5??????????????? | ????????

# MBoalujmapbfgcP 2018/07/12 4:21 http://www.seoinvancouver.com/

This is a topic that as close to my heart

# oWtfQyHbllXhsQLvCuz 2018/07/12 4:21 http://www.seoinvancouver.com/

This blog is good that I can at take my eyes off it.

# OqcWiGmYBGNP 2018/07/12 12:00 http://www.seoinvancouver.com/

Real wonderful info can be found on blog.

# OsHLTOZRQps 2018/07/12 14:34 http://www.seoinvancouver.com/

You made some really good points there. I checked on the web for more info about the issue and found most individuals will go along with your views on this website.

# OKhxgwMDfjQWOM 2018/07/12 17:09 http://www.seoinvancouver.com/

The text in your content seem to be running off the screen in Opera.

# ujVKFQMSMCcEGuE 2018/07/12 19:45 http://www.seoinvancouver.com/

term and it as time to be happy. I ave read this publish and if I may

# uNHzyznOFqsfVgYgwA 2018/07/12 22:20 http://www.seoinvancouver.com/

we all be familiar with media is a great source of facts.

# ZxkPzAjjcjvnUNXlT 2018/07/13 0:58 http://www.seoinvancouver.com/

You ave made some good points there. I looked on the net for more

# YBVBZqOvgHnqE 2018/07/13 8:44 http://www.seoinvancouver.com/

I really liked your article post.Much thanks again. Want more. anal creampie

# ylEicKBkBej 2018/07/14 3:37 https://bitcoinist.com/google-already-failed-to-be

I see in my blog trackers significant traffic coming from facebook. My blog is not connected with facebook, I don at have an account there, and I can at see, who posts the linksany ideas?.

# AUKIiMFqMKPVbHS 2018/07/14 4:41 http://dailysportsclub.com/news/nyc-custom-glass-d

The website style is ideal, the articles is really excellent :

# BgvLQKyqwpgjcccVoaP 2018/07/16 3:25 http://ansleytran.bravesites.com/

There is perceptibly a lot to identify about this. I consider you made some good points in features also.

# cOvxlfksfFsVP 2018/07/16 16:39 https://paityndouglas.planeteblog.net/2018/07/12/g

Thanks for all аАа?аБТ?our vаА а?а?luablаА а?а? laboаА аБТ? on this ?аА а?а?bsite.

# fqDWJjDNHRkAAyFVH 2018/07/17 3:08 https://es.ematch.online

Perfectly composed articles , regards for selective information.

# CDSXhtYMYP 2018/07/17 5:04 http://greatfitness.bid/story/34100

Wow, incredible blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is fantastic, let alone the content!

# KayaLugGGBf 2018/07/17 5:31 http://nccar.ca/nccar-presents-women-in-politics-p

Wow, great blog post.Thanks Again. Keep writing.

# dXkNtsaxArbHa 2018/07/17 5:58 http://www.mtatrademarks.com/?attachment_id=2715

you possess an incredible weblog right here! would you like to make some invite posts in my weblog?

# MFoBPYeTUmQyhuueaG 2018/07/17 6:25 https://www.codecademy.com/mausolbapcezs

wonderful points altogether, you simply gained a brand new reader. What might you recommend in regards to your publish that you simply made a few days in the past? Any positive?

# xOLfwLbChktFiOUio 2018/07/17 13:37 http://www.seoinvancouver.com/

I truly appreciate this article. Really Great.

# eUsanPFiKwEsbloD 2018/07/17 18:56 http://www.ledshoes.us.com/diajukan-pinjaman-penye

Some genuinely great content on this web site , thankyou for contribution.

# TqTTEpHSjNEe 2018/07/18 1:24 https://www.prospernoah.com/can-i-receive-money-th

I truly appreciate this blog article.Really looking forward to read more. Much obliged.

# zUtTsSVsrkIOJx 2018/07/18 6:38 http://auntjump9.affiliatblogger.com/14931526/red-

Sweet blog! I found it while browsing on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I ave been trying for a while but I never seem to get there! Many thanks

# KLmRgLHmrQWwkzuAcy 2018/07/18 9:15 https://www.xfacebox.com/members/bullbag5/activity

Wow, great blog.Really looking forward to read more.

# cEqtOGiqhm 2018/07/18 12:41 http://iamag.org/blog/view/20843/blonde-london-esc

Im thankful for the article.Thanks Again. Much obliged.

# gjysWtMvxBwbhTKGRYm 2018/07/18 13:45 http://daufembach.com/portfolios/tr3s/

Really enjoyed this post, is there any way I can get an alert email when you make a new post?

# vrsljoNXGdW 2018/07/18 18:13 https://disqus.com/by/feedcornrablas/

Well I definitely enjoyed studying it. This information provided by you is very constructive for good planning.

# rSdevFfGGQ 2018/07/18 19:16 http://ktsc.biz/xe/board/441569

Respect for ones parents is the highest duty of civil life.

# FcGBXiRfHoCXWWyg 2018/07/19 0:33 https://www.youtube.com/watch?v=yGXAsh7_2wA

Really appreciate you sharing this blog post. Awesome.

# NEBiTGGkjCzVcD 2018/07/19 9:49 http://azeitugal.com/gunas-criticam-seguidores-do-

Thanks again for the blog.Thanks Again. Keep writing.

# WeWvFMvXeZz 2018/07/19 14:08 https://www.prospernoah.com/clickbank-in-nigeria-m

This blog is really cool and besides diverting. I have picked many useful tips out of this source. I ad love to come back again soon. Thanks a bunch!

# DVushuHbJdCStFpLpOq 2018/07/19 17:42 http://www.authorstream.com/landinshah/

I visited a lot of website but I believe this one has something special in it in it

# VSUBWkooLiUqHA 2018/07/19 18:34 http://blog.meta.ua/~ilyasbennett/posts/i5490872/

You made some good points there. I looked on the net for more info about the issue and found most people will go along with your views on this web site.

# bXbvlNagEsSlTgEw 2018/07/20 4:05 http://s-power.com/board_stsf27/688889

I regard something genuinely special in this web site.

# fqJRlXRKbqVvwjP 2018/07/20 17:21 https://www.fresh-taste-catering.com/

Magnificent website. A lot of helpful information here. I am sending it to several buddies ans also sharing in delicious. And obviously, thanks in your sweat!

# qCniTXPOXdKacEto 2018/07/21 1:17 https://topbestbrand.com/&#3629;&#3633;&am

You are my inspiration, I own few web logs and occasionally run out from brand . Truth springs from argument amongst friends. by David Hume.

# NGdDJbAOqzLnh 2018/07/21 3:54 http://www.seoinvancouver.com/

Utterly pent written content, Really enjoyed looking at.

# SCltdBKZpEwSUFLNe 2018/07/21 6:29 http://www.seoinvancouver.com/

we came across a cool website that you just may possibly delight in. Take a search when you want

# WsnkQuekSKxrXsHNo 2018/07/21 9:01 http://www.seoinvancouver.com/

These are really fantastic ideas in about blogging. You have touched

# PRLkAAjkzRQjfPzJZto 2018/07/21 14:04 http://www.seoinvancouver.com/

My brother recommended I might like this blog. He was entirely right. This post actually made my day. You cann at imagine just how much time I had spent for this information! Thanks!

# wdRwrVeesxo 2018/07/21 14:04 http://www.seoinvancouver.com/

There is clearly a bundle to know about this. I consider you made some good points in features also.

# vvgcNYBawXgFlEc 2018/07/21 16:39 http://www.seoinvancouver.com/

Perfectly written subject matter, regards for information. Life is God as novel. Allow him to write it. by Isaac Bashevis Singer.

# vIBdvFcWTCqxFoqFnqH 2018/07/21 22:42 http://mnlcatalog.com/2018/07/17/commode-remodels-

state. This is the first time I frequented your web page and up to now?

# fIQmNuJDDo 2018/07/22 3:32 http://instacoolcar.website/story/33168

Whoa! This blog looks just like my old one! It as on a completely different subject but it has pretty much the same page layout and design. Superb choice of colors!

# wyduUDmHbkjW 2018/07/24 1:06 https://www.youtube.com/watch?v=yGXAsh7_2wA

Im obliged for the blog post.Thanks Again. Awesome.

# jUWOHjQNgv 2018/07/24 3:44 http://atomcraft.ru/user/Soudgedausa702/

You ave made some good points there. I checked on the internet for more information about the issue and found most people will go along with your views on this site.

# EjHCABbhCzmDD 2018/07/24 6:23 http://job.gradmsk.ru/users/bymnApemy288

Really appreciate you sharing this post.Much thanks again. Much obliged.

# GtFNmKNlXGPAE 2018/07/24 11:40 http://www.stylesupplier.com/

You made some first rate factors there. I seemed on the internet for the difficulty and located most individuals will associate with together with your website.

# KPZsLzKiUip 2018/07/24 17:09 http://www.fs19mods.com/

There as certainly a lot to learn about this topic. I love all the points you have made.

# jFTWMsPPsSsDqsM 2018/07/24 22:51 http://fabriclife.org/2018/07/20/discover-the-nume

This is a good tip particularly to those new to the blogosphere. Brief but very precise info Thanks for sharing this one. A must read post!

# ygBETadoJCWPjG 2018/07/25 15:16 https://bitelinda54.dlblog.org/2018/07/25/the-way-

There as certainly a lot to learn about this topic. I really like all the points you ave made.

# QQNrPvqtmLC 2018/07/25 21:54 http://tldubai.com/2013/04/25/post-with-separate-s

You ave made some decent points there. I looked on the web to find out more about the issue and found most people will go along with your views on this site.

# HgNMaHMdfmXnOdcp 2018/07/26 9:06 https://medium.com/@KobyDavey/understand-how-drast

Yay google is my world beater assisted me to find this outstanding web site !.

# JKCVDPYkbvNQT 2018/07/26 17:27 http://smartowl.com.au/uncategorized/useful-inform

Some truly great posts on this site, appreciate it for contribution.

# foIATVDkvD 2018/07/26 20:15 http://www.emcb.pt/component/k2/itemlist/user/4361

Thanks so much for the blog.Really looking forward to read more. Great.

# aeJgkKAoHMXyoj 2018/07/26 21:50 http://caralarmmiami.com

You are my function models. Many thanks for your post

# WDcdcWqXlXpoZvHcs 2018/07/27 2:54 http://www.lionbuyer.com/

pretty helpful material, overall I feel this is worthy of a bookmark, thanks

# rGRmQSEsDSlwsC 2018/07/27 15:48 http://fcrl.fr/debut-du-chantier-du-club-house/

Major thankies for the article post.Really looking forward to read more. Want more.

# IVOcsLSuzBJuVMqzMSS 2018/07/27 19:23 http://www.speedo.com.br/blog/?p=2863

pretty useful material, overall I imagine this is worthy of a bookmark, thanks

# IguaUqvECRNH 2018/07/27 20:17 http://www.malirapmusic.net/doul-crazy-og-ka-life/

You have made some good points there. I checked on the net for more information about the issue and found most people will go along with your views on this web site.

# ecrDrFrrDFuEoxDyETO 2018/07/27 21:10 http://concours-facebook.fr/story.php?title=die-ca

Of course, what a magnificent blog and revealing posts, I definitely will bookmark your website.All the Best!

# iIMGlRjQwOGwc 2018/07/28 4:00 http://instaforuminvesting.trade/story.php?id=3425

the check this site out in a single-elimination bracket and let people vote for their favorites.

# XRSDyndaqZqPsd 2018/07/28 12:09 http://fabriclife.org/2018/07/26/mall-and-shopping

That is a very good tip especially to those fresh to the blogosphere. Simple but very precise information Thanks for sharing this one. A must read post!

# cbiBwBgQUpMUvdx 2018/07/28 14:52 http://network-resselers.com/2018/07/26/sunday-ope

This is a topic which is near to my heart Many thanks! Where are your contact details though?

# ZIsKdyjSPVQ 2018/07/28 20:17 http://sunnytraveldays.com/2018/07/26/easter-sunda

I want to start a blog/online diary, but not sure where to start..

# PRYPXpCpyQCuqWd 2018/07/29 4:17 https://bearpatio84.bloglove.cc/2018/07/27/black-f

You ave offered intriguing and legitimate points which are thought-provoking in my viewpoint.

# LpPEqhBakrvutmLnzq 2018/07/29 9:28 http://amzbuydeal.com/story.php?title=hqbroker-com

Major thankies for the article post. Awesome.

# FLKsmwXBvpsXTJw 2018/07/30 18:52 http://combookmarkplan.gq/News/visit-website-26/

Well I really liked studying it. This post offered by you is very useful for proper planning.

# XvcKanMSZxVFdcCUrX 2018/07/30 23:22 http://www.verdeeblu.com/musical-spettacoli/attach

It as not that I want to replicate your web-site, but I really like the style and design. Could you tell me which style are you using? Or was it custom made?

# WuvHrHiWeveW 2018/07/31 1:06 https://www.atlantisplumbing.com

Im thankful for the article.Really looking forward to read more. Much obliged.

# hQDNRZbETLEAxntQJ 2018/07/31 4:39 https://docs.zoho.com/file/7jq41221ffec5823c4ca3bb

Peculiar article, totally what I needed.

# NVcEPPNkCUMROrbp 2018/07/31 7:49 https://metrofood-wiki.foodcase-services.com/index

Looking forward to reading more. Great article.Really looking forward to read more. Keep writing.

# LNDNXckUTifXScSA 2018/07/31 9:57 http://405.cd.gov.mn/?p=467

Regards for helping out, wonderful info.

# HpzSPQLOUHw 2018/07/31 20:00 http://seolister.cf/story.php?title=pipe-rack-rigg

IE still is the marketplace chief and a large portion of other people will leave out

# OSssaAuznUmaADfHkb 2018/07/31 22:36 https://www.pinterest.co.uk/ilulatal/

There as definately a great deal to learn about this topic. I really like all of the points you ave made.

# YkuCTIRygaMiQVBQh 2018/08/01 16:18 http://olegsggjhd.recentblog.net/7

spelling on several of your posts. A number of them are rife

# tNsbJZtGDYNp 2018/08/02 0:39 https://nyahsharples.wordpress.com/

The Constitution gives every American the inalienable right to make a damn fool of himself.

# kpdTaMMplqJ 2018/08/02 1:48 http://seosmmpro.org/News/-111831/

Just a smiling visitant here to share the love (:, btw great style. Individuals may form communities, but it is institutions alone that can create a nation. by Benjamin Disraeli.

# ZDblBLUTHRLW 2018/08/02 3:56 http://news.bookmarkstar.com/story.php?title=filde

I truly appreciate this article post.Much thanks again. Great.

# CECEpAgbEzhs 2018/08/02 7:35 https://earningcrypto.info/the-best-dogecoin-fauce

My brother suggested I might like this websiteHe was once totally rightThis post truly made my dayYou can not imagine simply how a lot time I had spent for this information! Thanks!

# TPBBioKJILdvAOdefRA 2018/08/02 9:06 http://www.seexxx.net/fake-hospital-innocent-redhe

Very informative blog article.Really looking forward to read more. Much obliged.

# kVbVJJFXmfrB 2018/08/02 9:11 https://earningcrypto.info/2018/06/virtual-currenc

It is really a great and helpful piece of info. I am glad that you shared this helpful info with us. Please keep us informed like this. Thanks for sharing.

# FXQTIfjTsHfW 2018/08/02 10:01 https://earningcrypto.info/2018/05/litecoin-ltc/

You made some good points there. I looked on the internet for the subject and found most guys will agree with your website.

# RHEvFTbQjAzGoM 2018/08/02 10:49 https://earningcrypto.info/2018/05/how-to-earn-eth

that type of information in such a perfect means of writing?

# nRsWrKfMzW 2018/08/02 11:09 http://kuhmen.ru/?p=6312

Terrific Post.thanks for share..much more wait..

# dovoJUvMuOAxp 2018/08/02 11:39 https://earningcrypto.info/2018/05/how-to-earn-ext

Marvelous, what a blog it is! This web site provides valuable information to us, keep it up.

# YTBpocoZEQ 2018/08/02 12:29 https://earningcrypto.info/2018/04/how-to-earn-das

I truly enjoаАа?аБТ?e? reading it, you could be a great author.

# qmeFRdkqlrBcKbE 2018/08/02 14:08 https://earningcrypto.info/2017/11/coinpot-faucets

Tirage en croix du tarot de marseille horoscope femme

# aQTcITzGmDvdTAJ 2018/08/02 21:52 https://github.com/multpocreme

This is a topic which is near to my heart Cheers! Where are your contact details though?

# yBipppsEeqNTfY 2018/08/03 1:19 http://amzbuydeal.com/story.php?title=cenforce-150

My brother suggested I might like this blog. He was totally right. This post truly made my day. You cann at imagine just how much time I had spent for this info! Thanks!

# QzmrWuvMCnbp 2018/08/03 2:41 https://orcid.org/0000-0003-4173-6391

The majority of of the commentary on this web site dont make sense.

# jmlzOuBIcPW 2018/08/03 13:08 http://hourestatereal.bid/story.php?id=33451

Wow, incredible blog layout! How lengthy have you ever been blogging for? you make blogging look easy. The total glance of your web site is fantastic, let alone the content!

# uPEeNwikvLgqZxX 2018/08/03 19:03 http://sualaptop365.edu.vn/members/tashatate1.3118

Tumblr article I saw a writer writing about this on Tumblr and it linked to

# SDtQbHdNvpxof 2018/08/03 20:57 http://backlinksofficial.me/story.php?id=1583

we came across a cool web-site that you just may possibly delight in. Take a appear in case you want

# WVmglswUYo 2018/08/03 22:51 https://studies.quantimo.do/index.php/Fantastic_St

I value the blog article.Much thanks again. Great.

# nhdIzqmahkHRVQ 2018/08/04 5:23 http://klausen.no-ip.org/wiki/index.php/Strategies

That is a good tip particularly to those new to the blogosphere. Simple but very accurate information Thanks for sharing this one. A must read post!

# OURocKODXlJoaxbh 2018/08/04 5:59 http://mynextbuck.com/second-job-to-pay-off-credit

It is faultless and I am glad that I visited this blog.

# nbopLFSvDbDP 2018/08/04 7:13 https://topbestbrand.com/&#3619;&#3633;&am

Wohh precisely what I was searching for, appreciate it for posting. The only way of knowing a person is to love them without hope. by Walter Benjamin.

# vhPiFoojsuXgzADIgWs 2018/08/04 8:09 http://bookmarkok.com/story.php?title=click-here-5

with us. аА а? leаА а?а?se stay us up to dаА а?а?te like thаАа?б?Т€Т?s.

# BmtGHeiuHpJrp 2018/08/04 9:18 http://businesseslasvegaslxn.nanobits.org/the-exac

Very good write-up. I certainly appreciate this site. Stick with it!

# RCgBRudBkHqoCssux 2018/08/04 11:51 https://topbestbrand.com/&#3607;&#3635;&am

Just Browsing While I was surfing yesterday I noticed a great post about

# cFRblONJctOhciweotT 2018/08/04 15:09 http://cheapseolasvegasvso.metablogs.net/unfortuna

Your style is very unique in comparison to other folks I ave read stuff from. Many thanks for posting when you ave got the opportunity, Guess I all just book mark this site.

# dHhEcLRnVPTBgVH 2018/08/05 2:17 https://www.atlantisplumbing.com/

Wow, great blog.Much thanks again. Really Great.

# cufKELkMWCesUBHJc 2018/08/05 2:51 http://merinteg.com/blog/view/58704/utilidades-de-

There is definately a great deal to find out about this topic. I love all the points you made.

# tmMIRdGMXSBTm 2018/08/05 4:13 http://merinteg.com/blog/view/59336/the-recommende

Loving the info on this site, you have done outstanding job on the articles.

# uleZsapkexB 2018/08/05 4:40 http://actionlunch2.host-sc.com/2018/08/02/the-rec

to check it out. I am definitely loving the

# fpGRbpNbnw 2018/08/05 5:07 http://mamaklr.com/blog/view/203679/should-man-wit

This is one awesome blog article.Thanks Again. Great.

# jAqnaqpVGwNlm 2018/08/06 12:51 http://adsposting.ga/story.php?title=cenforce-200-

I was examining some of your content on this site and I believe this internet site is very instructive! Keep on posting.

# ElXNxVVgSTKTOSyV 2018/08/06 20:19 http://hemoroiziforum.ro/discussion/129590/cenforc

Wow, that as what I was looking for, what a stuff! present here at this website, thanks admin of this site.

# nAgNWunqLwnJrgCiCG 2018/08/06 23:43 https://nikkifrost.yolasite.com/

Well I really liked reading it. This subject provided by you is very practical for proper planning.

# TIsyCRbHXezD 2018/08/07 1:39 https://allihoopa.com/cratemilxy

Whoa! This blog looks just like my old one! It as on a completely different topic but it has pretty much the same page layout and design. Excellent choice of colors!

# ajVMsLSdJnGbxDHJsd 2018/08/07 3:30 https://justpaste.it/6asu5

I value the article post.Much thanks again. Fantastic.

# qudSTcAshjAACCKab 2018/08/07 5:45 http://decadesupply0.blog5.net/15783438/one-should

This awesome blog is obviously cool and also factual. I have picked many helpful advices out of it. I ad love to return again soon. Thanks a lot!

# ZBpeOJcYEPBPCZD 2018/08/07 8:21 http://fontwarm34.curacaoconnected.com/post/the-ma

There is also one more method to increase traffic in favor of your website that is link exchange, therefore you as well try it

# hlUEySDdegSedlXaDs 2018/08/07 9:46 https://jarvismagana.de.tl/

if all webmasters and bloggers made good content as you probably did, the internet shall be much more useful than ever before.

# HrEgjeQxrqnEg 2018/08/07 12:08 http://savelivelife.com/story.php?title=tabletas-e

standard parts you happen to be familiar with but might not know how to utilize properly, along with other unique offerings in the car that ensure it is more hard to.

# LIjnKxnFeqdBJWvmBC 2018/08/07 12:37 https://apbd.pw/blog/view/4300/sildenafil-citrate-

You made some good points there. I looked on the net for more information about the issue and found most people will go along with your views on this web site.

# KHWslCYoABiIG 2018/08/07 15:00 https://github.com/sfigycconria

Thanks so much for the blog post. Great.

# kLimvMzckwczv 2018/08/07 15:44 http://demo.socia.us/blog/view/2004/you-need-to-be

You are my inspiration , I own few web logs and infrequently run out from to brand.

# syMQmXYHhSqNfC 2018/08/07 16:41 http://news.bookmarkstar.com/story.php?title=to-le

Woah! I am really loving the template/theme of this blog. It as simple, yet effective.

# nscCGAExJx 2018/08/07 20:00 http://exchange-metal.com/user/profile/1599756

This is a topic that as close to my heart Best wishes! Exactly where are your contact details though?

# pZgOXxDTNtSlVLPYs 2018/08/07 23:00 http://seolisting.cf/story.php?title=tadalista-com

Thanks a lot for the article post.Thanks Again. Fantastic.

# IyJTfKRXXDpQqkjPrxQ 2018/08/08 1:58 http://www.icsi.edu/capitalmarketweek/UserProfile/

Wow, fantastic blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is great, as well as the content!

# rpvtZmdLcyRAz 2018/08/08 21:19 https://jpgjoka.bid/blog/view/8949/the-benefits-of

You could definitely see your enthusiasm in the work you write. The arena hopes for more passionate writers such as you who aren at afraid to say how they believe. At all times follow your heart.

# CNxqqaXHWzAElfRaw 2018/08/09 0:19 http://hopecry0.affiliatblogger.com/15683263/the-w

Your mode of telling the whole thing in this article is in fact good, all be capable of without difficulty understand it, Thanks a lot.

# kBsiiIjmuKGONKvLiZp 2018/08/09 2:00 http://comfitbookmark.tk/story.php?title=chuyen-ha

You are my inhalation , I own few web logs and occasionally run out from to post.

# JNuIIcPOdJCdxmLitz 2018/08/09 4:57 http://combookmarkexpert.tk/News/nhac-hai-ngoai/

you can find a great deal of exercising guides over the internet but some of them are not scientifically established and just assumptions.

# hAPAWSyUJg 2018/08/09 5:25 http://seoworlds.ga/story.php?title=tadalista-10-m

This page certainly has all the info I needed concerning this subject and didn at know who to ask.

# ozYxCFTRBcPE 2018/08/09 7:07 http://dailybookmarking.com/story.php?title=for-mo

Im thankful for the blog article. Really Great.

# QijlSiLSjwjAd 2018/08/09 11:36 http://blogcatalog.org/story.php?title=free-downlo

motorcycle accident claims I started creating templates, but I don at know how to make demos in my Joomla website, for my visitors to test them..

# NIKbpNItESnwWGWDsNd 2018/08/09 14:44 https://jawbag46.blogcountry.net/2018/08/07/advant

Outstanding story there. What occurred after? Good luck!

# jfBEhAhYjuFLtBp 2018/08/09 15:17 https://kanstruppeacock6692.de.tl/This-is-my-blog.

You can definitely see your enthusiasm in the work you write. The world hopes for more passionate writers like you who are not afraid to say how they believe. Always go after your heart.

# YowYnzOVPlnoAD 2018/08/09 16:17 http://severina.xyz/story.php?title=free-download-

Really good information can be found on web blog.

# dRuMUuvEMuhcYghPg 2018/08/09 17:03 https://www.dailystrength.org/journals/several-out

I think this is a real great blog post. Want more.

# ZwXfRlQvyawioTj 2018/08/09 18:04 http://news.bookmarkstar.com/story.php?title=free-

please go to the web pages we comply with, like this one, as it represents our picks in the web

# AemheKEHekTfhUpA 2018/08/09 21:40 https://foursquare.com/user/507961252

Normally I don at read post on blogs, but I wish to say that this write-up very forced me to try and do it! Your writing style has been amazed me. Thanks, very great post.

# CktVIztZFIGKIs 2018/08/09 21:51 http://www.momexclusive.com/members/suninsect3/act

Wow, great blog.Much thanks again. Fantastic.

# RbbkTEtQmwqBjXdc 2018/08/09 23:28 https://jurytie6.jimdofree.com/2018/08/07/animals-

Very good article post.Much thanks again. Awesome.

# djVQiwUtXW 2018/08/10 4:08 http://seolister.cf/story.php?title=kredit-online#

Thanks again for the article.Thanks Again. Fantastic.

# pcnhzDgtXZtscwb 2018/08/10 5:09 http://www.authorstream.com/adisonlutz/

There is definately a great deal to find out about this topic. I love all the points you made.

# GXvFLPRBNrLQTX 2018/08/10 5:39 http://empireofmaximovies.com/2018/08/08/use-the-w

Thanks to my father who told me concerning this weblog,

# nUopecXtRLqBpWJMyfO 2018/08/10 6:41 https://www.pinterest.com/pin/719661215430968875/

This is a beautiful shot with very good lighting.

# mohrjgrKwvMtccDW 2018/08/10 10:50 https://martialartsconnections.com/members/relishm

I value the blog article.Thanks Again. Really Great.

# oKCISuoGvef 2018/08/10 10:55 https://steamkale3.crsblog.org/2018/08/08/ulthera-

xrumer ??????30????????????????5??????????????? | ????????

# FWbOSBLojbzP 2018/08/10 11:36 http://marketbuffet8.iktogo.com/post/the-features-

Thanks for sharing, this is a fantastic article.Really looking forward to read more. Much obliged.

# dkdCnZNMFEUHD 2018/08/11 4:19 http://finance.nrn.com/nrn/news/read/36689331

Thanks for sharing, this is a fantastic blog article. Much obliged.

# FeoLZeQdvECGwYIVq 2018/08/11 7:18 http://pinkknot57.diowebhost.com/12441182/varietie

You ave made some good points there. I checked on the internet to find out more about the issue and found most people will go along with your views on this website.

# QsSpTwEhCDiUzunhz 2018/08/11 8:02 https://profiles.wordpress.org/constercerbal/

Thanks again for the blog article.Really looking forward to read more.

# QHldXnueZwiSIvmpqKM 2018/08/11 8:59 http://forumcomputersery.download/story.php?id=394

to come here and visit more often. Did you hire out a developer to create your theme?

# lcUfqkguMgFBTatO 2018/08/11 16:08 https://bit.ly/2M4GzqJ

It as not that I want to duplicate your internet internet site, but I really like the style. Could you tell me which style are you using? Or was it custom made?

# kjNdMpFuluH 2018/08/12 17:18 http://buzzingglobe.com/news/high-risk-truck-drive

in future. Lots of folks will be benefited out of your writing.

# eDLfvgfcRjolS 2018/08/12 20:50 http://www.travelful.net/location/3899370/united-s

I think this is a real great article post.Really looking forward to read more. Much obliged.

# WGgxCVyDGLnHM 2018/08/12 22:51 http://www.travelful.net/location/3903581/united-s

Thanks-a-mundo for the article post.Really looking forward to read more. Keep writing.

# iYqpTBvtOylGD 2018/08/14 2:31 http://sjahi-alumni.com.asp1-10.lan3-1.websitetest

This is one awesome blog article.Thanks Again. Great.

タイトル  
名前  
Url
コメント