70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
|
using System;
|
|||
|
using System.Net;
|
|||
|
using System.Text.RegularExpressions;
|
|||
|
using System.Windows;
|
|||
|
|
|||
|
namespace SicUI
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Interaction logic for RtIpAddressInput.xaml
|
|||
|
/// </summary>
|
|||
|
public partial class RtIpAddressInput : Window
|
|||
|
{
|
|||
|
public RtIpAddressInput(string ipAddress)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
|
|||
|
if (ipAddress.ToLower() == "localhost")
|
|||
|
txtRtIpAddress.Text = ipAddress;
|
|||
|
else
|
|||
|
{
|
|||
|
if (IPAddress.TryParse(ipAddress, out var ip))
|
|||
|
{
|
|||
|
txtRtIpAddress.Text = ip.ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
txtRtIpAddress.Text = "";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public string RtHostAddress { get; private set; }
|
|||
|
|
|||
|
protected override void OnActivated(EventArgs e)
|
|||
|
{
|
|||
|
base.OnActivated(e);
|
|||
|
|
|||
|
txtRtIpAddress.SelectAll();
|
|||
|
txtRtIpAddress.Focus();
|
|||
|
}
|
|||
|
|
|||
|
private void BtnLocalhost_OnClick(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
txtRtIpAddress.Text = "localhost";
|
|||
|
txtRtIpAddress.SelectAll();
|
|||
|
txtRtIpAddress.Focus();
|
|||
|
}
|
|||
|
|
|||
|
private void BtnOk_OnClick(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
var isMatch = Regex.IsMatch(txtRtIpAddress.Text, @"\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b");
|
|||
|
if (txtRtIpAddress.Text.ToLower() == "localhost" || isMatch)
|
|||
|
{
|
|||
|
RtHostAddress = txtRtIpAddress.Text;
|
|||
|
DialogResult = true;
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
MessageBox.Show("IP地址输入错误,请重新输入。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
|
|||
|
txtRtIpAddress.SelectAll();
|
|||
|
txtRtIpAddress.Focus();
|
|||
|
}
|
|||
|
|
|||
|
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
DialogResult = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|