任何人都可以給我一個簡單的邏輯來確定行選擇嗎?如果選擇了行,則選擇 。我想運行一些命令。 這條線是在picturebox上繪製的。 感謝如何確定VB.Net中的行選擇
0
A
回答
0
我覺得你需要的是這樣的: -
If picturebox1.SelectionLength > 0 Then
Dim firstLine As Integer = picturebox1.GetLineFromCharIndex(picturebox1.SelectionStart)
Dim lastLine As Integer = picturebox1.GetLineFromCharIndex(picturebox1.SelectionStart + picturebox1.SelectionLength)
For line As Integer = firstLine To lastLine
Dim txt = picturebox1.Lines(line)
'do something here or run some command as u want...
Next
End If
0
我想你想要的是一個方法來確定是否被點擊或不是一些行。
一條線由兩點定義。直線由斜率(m)和截距(b)定義。 首先從兩點(也就是經過兩點的直線)得到線性方程。
將兩個點插入線性方程。你可以得到兩個線性方程。
y1 = m * x1 + b
y2 = m * x2 + b
解決b
和設置相等。
y1 - m * x1 = y2 - m * x2
求解m
--> m = -(y1 - y2)/(x1 - x2)
插入m
進入第一方程和解決b
--> b = y1 - m * x1
現在就可以了,對於給定的X coordiante,例如鼠標點擊的x座標,確定哪個y值您的線路具有在此位置:
Dim m, b As Double
GetSlopeIntercept(p1, p2, m, b) 'See above
Dim YLine as Double = m * MouseLocation.X + b
If Math.Abs(MouseLocation.Y - YLine) < 5 AndAlso _
MouseLocation.X > Math.Min(p1.X, p2.X) AndAlso _
MouseLocation.X < Math.Max(p1.X, p2.X) _
Then MessageBox.Show("Line was clicked!")
在這個例子中p1和p2是描述線上的點。 兩個避免點擊旁邊的實際線,但在直線,你需要檢查你的點的X座標以及。調整5
兩個定義線路必須被擊中的確切程度。
實際上,您需要一些存儲的行,並在每次鼠標單擊後檢查並應用更多的邏輯。最好是先定義線條類
Public Class MyLine
Public Property P1 As Point
Public Property P2 as Point
Public Property IsSelected As Boolean
Public Sub New(P1 as Point, P2 as Point)
Me.P1 = P1
Me.P2 = P2
IsSelected = False
End Sub
Public Sub DrawMe(ByRef g as Graphics, p As Pen)
If IsSelected = False Then
g.DrawLine(p, P1, P2)
Else
g.DrawLine(Pens.Red, P1, P2) 'Draw the line differently if it is selected
EndIf
End Sub
Public Sub TrySelect(MouseLocation As Point)
Dim m, b As Double
GetSlopeIntercept(p1, p2, m, b) 'See above
Dim YLine as Double = m * MouseLocation.X + b
If Math.Abs(MouseLocation.Y - YLine) < 5 AndAlso _
MouseLocation.X > Math.Min(p1.X, p2.X) AndAlso _
MouseLocation.X < Math.Max(p1.X, p2.X) _
Then Me.IsSelected = True Else Me.IsSelected = False
End Sub
End Class
保留線對象的集合進行繪製和處理。
相關問題
- 1. 如何從vb.net中的數據表中選擇特定列?
- 2. 如何確定哪些選擇器是從其餘選擇中選擇的?
- 3. 如何確定vb.net中的數據ID?
- 4. 如何正確填寫選擇列表中選定的選項..?
- 5. 如何確定usercontrol選擇的子項
- 6. 如何確定waf選擇的工具?
- 7. VB.NET DataGridView選擇整行
- 8. 如何確定在BASH中哪一行腳本選擇更快?
- 9. WPF DataGrid:如何確定ComboBox選擇更改的行的索引?
- 10. 如何選擇下拉值 - Vb.net的Webbrowser
- 11. 如何正確使用複選框在VB.net中運行總計?
- 12. VAR如何確定對多種選擇?
- 13. Microsoft.Office.Interop.Excel VB.NET如何在工作表中禁用選擇鎖定值
- 14. 如何從mysql-db中選擇正確的選擇/選項
- 15. 在vb.net中確定
- 16. vb.net/DataGridView的選擇?
- 17. 如何在選擇中進行選擇
- 18. WPF中的選定行DataGrid(VB.NET)
- 19. VB.NET GUI選擇
- 20. .chosen.change() - 如何確定它是選擇還是取消選擇
- 21. VB.NET-如何限制listview中的複選框選擇?
- 22. 選擇並由多個行值確定
- 23. 德爾福TStringGrid多重選擇,確定選定的行
- 24. 如何讓給定的行onChange與選擇的模型選擇
- 25. 如何確定選擇選項文本在IE中對齊?
- 26. 如何與給定值的選擇行
- 27. 如何選擇特定日子的行?
- 28. 如何選擇特定的行?
- 29. 如何確定在編輯模式下選擇了哪些行
- 30. VB.Net中的國際化:選擇正確的結構類型