Еще одно решение, основанное на функции InStr(i, str, substr)
(поиск substr
в str
, начиная с позиции i
, больше информации о InStr () ):
Function findOccurancesCount(baseString, subString)
occurancesCount = 0
i = 1
Do
foundPosition = InStr(i, baseString, subString) 'searching from i position
If foundPosition > 0 Then 'substring is found at foundPosition index
occurancesCount = occurancesCount + 1 'count this occurance
i = foundPosition + 1 'searching from i+1 on the next cycle
End If
Loop While foundPosition <> 0
findOccurancesCount = occurancesCount
End Function
Как только нет подстроки, найденной (InStr
возвращает 0
, вместо найденной позиции подстроки в базовой строке), поиск завершается, и возвращается отсчет.
Привязка ApplicationSetting не позволяет применять к значению какое-либо выражение. Простое решение - получить собственный элемент управления от Button. Например:
using System;
using System.Windows.Forms;
class MyButton : Button {
public bool Invisible {
get { return !Visible; }
set { Visible = !value; }
}
}