0

テキスト ボックスの textchanged イベントで囲まれたこのコードを見てください。

        string testString = comboIPAddress.Text;
        string[] parts = testString.Split('.');
        int? ipclass = int.Parse(parts[0]);
        if (ipclass == null)
        {
            //do nothing
        }

        if (ipclass >= 1 && ipclass <= 126)
        {
            comboSubnet.Text = "255.0.0.0";
        }
        if (ipclass >= 192 && ipclass <= 223)
        {
            comboSubnet.Text = "255.255.255.0";
        }
        if (ipclass >= 128 && ipclass <= 191)
        {
            comboSubnet.Text = "255.255.0.0";
        }
        else
        {
            comboSubnet.Text = "";
        }

IPAddress コンボ ボックスからすべてを削除すると、exe の実行中にエラーが発生します (入力文字列が正しい形式ではありませんでした。)。int を null と比較する他の方法がわかりません。助けてください。

4

3 に答える 3

1

IPにMaskedTextBoxを使用することを検討しましたか? このSO answer に示されているように、 System.Net.IPAddress Parse メソッドを使用して入力を簡単に解析できます。

于 2013-05-25T13:07:50.687 に答える