台灣最大程式設計社群網站
線上人數
833
 
會員總數:245475
討論主題:189234
歡迎您免費加入會員
討論區列表 >> VB.NET >> 檢查字串跟ComboBox相同後在放入ComboBox
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
檢查字串跟ComboBox相同後在放入ComboBox
價值 : 50 QP  點閱數:929 回應數:14

樓主

培根
門外漢
0 43
1121 136
發送站內信

目前是以 VB.NET+Mysql下去寫
目前我遇到的狀況是 我有8個ComboBox
在使用者選好8個ComboBox的項目後 合程一個字串以,分開 例如:XXXX,XXXX,XXXX,XXX 在存到Mysql
而在DataGridView點選它的時候 會刪除,在把8個ComboBox的資料再依照格子放回去
當使用再把8個格子添滿的時候所回傳的格子是正確的
如果當使用者少填一格 回傳的格子再放入的時候會有錯誤

我的想法是 可不可以掃瞄ComboBox裡面有沒有一樣的字串 在給ComboBox
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.combobox_properties(v=vs.110).aspx
我在網頁裡面找不到相關的程式碼 相望高手們指點我一下

搜尋相關Tags的文章: [ 檢查字串跟ComboBox相同後在放入ComboBox ] ,
本篇文章發表於2017-11-21 16:05
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
這題 答案比題目簡單

檢查有沒有沒沒點選的
xxxx,xxxx,,xxxxxxx (第3格沒有選)
所以比對有沒有 ,, 就知道有沒有漏選了
if instr(combostr,",,")>0
有漏選了
end if

其餘的【題目】看不懂了
本篇文章回覆於2017-11-21 16:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

培根
檢舉此回應
我重點不是 檢查使用者有沒有漏選 因為搞不好使用這根本沒有 所以不需要選

我舉的例子:
這些都是已經打好的 只是選擇而已
ComboBox1 : 小明
ComboBox2 : 1008
ComboBox3 :
ComboBox4 : 木螺絲
ComboBox5 : ASD


我寫程是把它變一個字串 節省mysql的空間 看起來也不會很多東西
確定後 存置mysql會變成一個字串為 小明,1008,木螺絲,ASD

當使用者點選DataGridView裡面的那筆資料
我想要的結果跟上面一樣

然而真正的結果是
ComboBox1 : 小明
ComboBox2 : 1008
ComboBox3 : 木螺絲
ComboBox4 : ASD
ComboBox5 :

所以我想要比對ComboBox裡面的名稱 相同後在給ComboBox 這樣因該就會對了
我剛剛參考了 http://www.blueshop.com.tw/board/FUM20050124191756KKC/BRD20090926215710KRM.html
我想要反向思考 但是我還是不知道要怎麼找出已經打好的ComboBox選項
本篇文章回覆於2017-11-21 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

P陳
檢舉此回應
ComboBox1.selectedvalue= "小明"
ComboBox2.selectedvalue="1008"

ComboBox1.selectedItem= "小明"
ComboBox2.selectedItem="1008"

本篇文章回覆於2017-11-21 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

培根
檢舉此回應
TO:P陳
謝謝P陳 的程式語法
不過好像不是我要的結果
我寫了小程式下去實驗
ComboBox1集合中的字串為:1 2 3 4 5
ComboBox2集合中的字串為:6 7 8 9 10

第一個語法 我在執行它的時候 並沒有任何動作
而第二個語法 在我把ComboBox2選擇為10的時候 才會顯示OK
不知道有沒有掃瞄ComboBox集合中的字串裡面 有再放進去的屬性?
本篇文章回覆於2017-11-22 08:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

培根
檢舉此回應
TO:P陳
謝謝P陳的指導
我已經找到了我要的結果
它就在
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.combobox.items(v=vs.110).aspx
本篇文章回覆於2017-11-22 08:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

培根
檢舉此回應
TO:P陳
我好像誤會他的意思了
他把我所打的屬性加到了ComboBox
在顯示OK

看來我的問題還是存在
本篇文章回覆於2017-11-22 08:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

P陳
檢舉此回應
combo 有二種建立的方式

1.用資料表 (可以指定 valuemember displaymember)
可以用 combo1.selectedvalue="4"
2.用Additem 的方式加入的

請將您的程式PO上來,我們好判斷


本篇文章回覆於2017-11-22 16:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

練武功
檢舉此回應
我覺得可以在存入資料時,以結構化的方式存入。
因為你說 "存置mysql會變成一個字串為 小明,1008,木螺絲,ASD",一筆資料被簡化成4個欄位,但實際上應該有5個欄位。
如果你在存入時,空白的欄位也加上逗號,如" 小明,1008,,木螺絲,ASD",這樣將資料讀出來後,就可以依照實際欄位放置,應該就不會發生你遇到的問題。
而且只多一個逗號,資料量也不會增加太多。
本篇文章回覆於2017-11-22 18:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

培根
檢舉此回應
TO:練武功
練武功大大 說的沒錯
目前我的程式就是以這樣的放是下去存資料 沒問題的
可是看空白的資料還要,點 有點不太開心XD
所以我在想說 可不可以不加,號 來放在ComboBox對的位子

TO:P陳
我的資料有點龐大 所以難以放在留言板上
而我所用的實驗小程式 正是我程式的簡化版

其實我是想說 有沒有屬性可以先找 ComboBox集合中的字串裡面的字串 當裡面有這個字串 再給ComboBox
這樣就不會 有空白的資料 卻還要給,的問題了
本篇文章回覆於2017-11-22 18:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

練武功
檢舉此回應
To 4樓
你這個程式的問題在於焦點不在ComboBox上。
如果你在1-2行程式碼之間加上 ComboBox1.Focus(),就可以得到你預期的結果。
本篇文章回覆於2017-11-22 19:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

P陳
檢舉此回應
終於看到你想要的了 【ComboBox集合中的字串裡面的字串 當裡面有這個字串】
程式將類似如下 你先作看看,有問題再來討論

 for each item1 in combo1.items
if item1="小明" then
......
combo1.selecteditem="小明"
.....
exit for
end if
next
本篇文章回覆於2017-11-23 07:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

P陳
檢舉此回應
以下確實可行

ComboBox1.Items.Add("台")
ComboBox1.Items.Add("北")
ComboBox1.Items.Add("市")

For Each item1 In ComboBox1.Items
If item1 = "北" Then
ComboBox1.SelectedItem = "北"
Exit For
End If
Next
本篇文章回覆於2017-11-23 07:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

培根
檢舉此回應
TO:P陳
先說抱歉 前幾天在忙別的事情
我試過程式碼了 確實有達到我要的結果
感謝P陳
本篇文章回覆於2017-11-25 11:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

P陳
檢舉此回應
互相加油
本篇文章回覆於2017-11-25 14:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.