伊莉討論區
標題:
TextBox選擇事件的問題及anchor問題[已解決]
[打印本頁]
作者:
天兵才子
時間:
2015-4-4 02:25 PM
標題:
TextBox選擇事件的問題及anchor問題[已解決]
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
Jeepluo
時間:
2015-4-6 08:00 AM
可不出你程式與你所要做的有何相關
你的程式:
Private Sub TEXT1_TextChanged(sender As Object, e As EventArgs) Handles TEXT1.TextChanged
If TEXTBOX1.Items.Count > 0 Then
TEXTBOX1SelectedIndex = 1
TEXTBOX1.Text = String.Empty
End If
End Sub
複製代碼
這一段程式怎麼看就是怪怪的
1.TEXTBOX1SelectedIndex → 這是指令還是變數
2.當你的 TextBox1.Item.Count > 1 時 TextBox1.Text = "" , 那你的 TextBox1.Text 永遠都是空的。
其他問題:
1.你的伺服器是什麼沒有說明?
2. text1.text 是畫面中的那一個物件?
3.一般來說下命令最好再加一個按鈕,按Enter很容易誤按的(當然要做一定可行的)。
作者:
天兵才子
時間:
2015-4-6 09:47 AM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
rr09192084
時間:
2015-4-6 12:47 PM
本帖最後由 rr09192084 於 2015-4-6 04:20 PM 編輯
A1:你的輸入只有ComboBox和TextBox兩個元件,一般來說ComboBox只有[有選]跟[沒選]兩種狀態,應該不會有資料輸入錯誤的選項。那就只有TextBox有輸入錯誤的可能,你這裡是要限制只能輸入數字而且長度必須是6,所以你應該朝這個方向去設計你的程式。我提供你這些程式碼,你要是看得懂就應該可以拿來應用。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Text1.ShortcutsEnabled = False '不啟用快速鍵
End Sub
Private Sub Text1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Text1.KeyPress
If Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
複製代碼
A2:你要先將你裡面的DataGridView元件設定[停駐於父容器中],然後把外面的GroupBox的ANCHOR屬性 上下左右都打勾
作者:
hatakc56923us
時間:
2015-4-6 01:00 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
hatakc56923us
時間:
2015-4-6 01:01 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
hatakc56923us
時間:
2015-4-6 01:05 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
hatakc56923us
時間:
2015-4-6 01:06 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
hatakc56923us
時間:
2015-4-6 01:33 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
天兵才子
時間:
2015-4-6 04:16 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
天兵才子
時間:
2015-4-6 04:17 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
rr09192084
時間:
2015-4-6 04:41 PM
清空COMBOBOX要這樣做
textbox1.SelectedIndex = -1
複製代碼
才對
作者:
hatakc56923us
時間:
2015-4-6 04:51 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
hatakc56923us
時間:
2015-4-6 04:52 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
rr09192084
時間:
2015-4-6 04:58 PM
在Form Load區段加上
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable
複製代碼
應該可以解決不能拉大的問題
作者:
天兵才子
時間:
2015-4-6 07:02 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
天兵才子
時間:
2015-4-6 07:05 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
天兵才子
時間:
2015-4-6 07:05 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
rr09192084
時間:
2015-4-6 10:34 PM
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
text1.ShortcutsEnabled = False '不啟用快速鍵
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable '允許自行拉大視窗
'GroupBox的Anchor屬性 上 下 左 右 都勾選的指令
GroupBox1.Anchor = AnchorStyles.Bottom + AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top
'DataGridView的停駐於父容器的指令
DataGridView1.Dock = DockStyle.Fill
Label1.Text = ""
End Sub
Private Sub text1_TextChanged(sender As Object, e As EventArgs) Handles text1.TextChanged
'這個寫法直接輸入6位數字時就會去撈資料,不需要按ENTER
'符合以下3個條件
'先去ComboBox選取了資料(Items是從0開始算起的)
'輸入的資料是數字
'長度要剛好是6位數
If textbox1.SelectedIndex >= 0 And IsNumeric(text1.Text) And text1.Text.Length = 6 Then
GetData() '條件符合了就直接去資料庫撈資料
ElseIf Not IsNumeric(text1.Text) And text1.Text.Length > 0 Then
'有錯的話就清空ComboBox和TextBox
Label1.Text = ""
textbox1.SelectedIndex = -1 '清空ComboBox指令
MessageBox.Show("輸入資料 " + text1.Text + " 格式有錯誤")
text1.Clear() '清空TextBox
textbox1.Focus() '然後游標(焦點)切換回到ComboBox裡
End If
End Sub
Private Sub textbox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles textbox1.SelectedIndexChanged
If textbox1.SelectedIndex >= 0 And IsNumeric(text1.Text) And text1.Text.Length = 6 Then
GetData() '如果先去TextBox輸入資料再來ComboBox選取資料,符合規則的話也去資料庫撈資料
End If
End Sub
Private Sub GetData() '這就是去資料庫撈資料的程式
'先前已經將資料格式檢查好了,這裡就不再需要檢查輸入的資料了
Label1.Text = textbox1.Text + " " + text1.Text '這只是測試用而已
'詳細的撈資料程式放在這裡
'........................
'........................
End Sub
複製代碼
這是詳細的程式碼,你參考看看吧,已經給你完整答案了,你應該多看看有關[事件]的資料,這是程式設計的基礎。
作者:
rr09192084
時間:
2015-4-6 10:46 PM
textbox1.SelectedIndex = -1 '清空ComboBox指令
text1.Clear() '清空TextBox
textbox1.Focus() '然後游標(焦點)切換回到ComboBox裡
複製代碼
GetData()這函式的最後再加上面3行,撈完資料後讓程式回到原先設計流程。
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!