MisterHolk
-
12 mars 2022 à 02:52
Whismeril
Messages postés18289Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention23 mars 2023
-
17 mars 2022 à 13:39
Bonjour,
Je sui entrain de créer une application pour mon père afin qu'il puisse voir et modifier l'adresse IP de son PC. Mais je bloque sur la façon de retourner la valeur qui me permet d'obtenir l'IP dans ma textbox, car la variable qui contient l'IP est en lecture seule.
J'ai essayé les codes que j'ai pu trouver et qui permettent le changement de l'IP tout comme le code qui permet de retirer la lecture seule mais ça fonctionne pas du tout.
Vous avez des idées ?
Mon code c'est ça:
using System.Net.NetworkInformation;
using System.Net.Sockets;
namespace NUTs___Network_Utility_Tools
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
switchtoen_menuBtn.Enabled = false;
}
private void chng_FR(object sender, EventArgs e)
{
#region form_Content
this.Text = "NUTs - un utilitaire réseau";
language_menuItem.Text = "Langue";
switchtofr_menuBtn.Text = "Passer en français";
switchtoen_menuBtn.Text = "Passer en anglais";
switchtofr_menuBtn.Enabled = false;
switchtoen_menuBtn.Enabled = true;
#endregion
#region chng_FR_Tab
networkinfos_tabPage.Text = "Vos informations réseau";
changeparameters_tabPage.Text = "Changer vos paramètres réseau";
ip_richTxtBx1.Text = "Adresse IP";
ip_richTxtBx2.Text = "Adresse IP";
subnetmask_richTxtBx1.Text = "Masque de sous réseau";
subnetmask_richTxtBx2.Text = "Masque de sous réseau";
defgateway_richTxtBx1.Text = "Passerelle par défaut";
defgateway_richTxtBx2.Text = "Passerelle par défaut";
primdns_richTxtBx1.Text = "Adresse DNS primaire";
primdns_richTxtBx2.Text = "Adresse DNS primaire";
secdns_richTxtBx1.Text = "Adresse DNS secondaire";
secdns_richTxtBx2.Text = "Adresse DNS secondaire";
retrieveinfos_Btn.Text = "RECUPERER INFOS";
applyparams_Btn.Text = "APPLIQUER PARAMETRES";
ip_TxtBx1.Text = "";
subnetmask_TxtBx1.Text = "";
defgateway_TxtBx1.Text = "";
primdns_TxtBx1.Text = "";
secdns_TxtBx1.Text = "";
#endregion
}
private void chng_EN(object sender, EventArgs e)
{
#region form_Content
this.Text = "NUTs - a network utility tool";
language_menuItem.Text = "Language";
switchtofr_menuBtn.Text = "Switch to french";
switchtoen_menuBtn.Text = "Switch to english";
switchtofr_menuBtn.Enabled = true;
switchtoen_menuBtn.Enabled = false;
#endregion
#region chng_EN_Tab
networkinfos_tabPage.Text = "Your network informations";
changeparameters_tabPage.Text = "Change your network parameters";
ip_richTxtBx1.Text = "IP Address";
ip_richTxtBx2.Text = "IP Address";
subnetmask_richTxtBx1.Text = "Subnet mask";
subnetmask_richTxtBx2.Text = "Subnet mask";
defgateway_richTxtBx1.Text = "Default gateway";
defgateway_richTxtBx2.Text = "Default gateway";
primdns_richTxtBx1.Text = "Primary DNS address";
primdns_richTxtBx2.Text = "Primary DNS address";
secdns_richTxtBx1.Text = "Secondary DNS address";
secdns_richTxtBx2.Text = "Secondary DNS address";
retrieveinfos_Btn.Text = "RETRIEVE INFOS";
applyparams_Btn.Text = "APPLY PARAMETERS";
ip_TxtBx1.Text = "";
subnetmask_TxtBx1.Text = "";
defgateway_TxtBx1.Text = "";
primdns_TxtBx1.Text = "";
secdns_TxtBx1.Text = "";
#endregion
}
#region retrieve_infos
private void retrieve_Infos(object sender, EventArgs e)
{
foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces())
{
if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && adapter.OperationalStatus == OperationalStatus.Up || adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet && adapter.OperationalStatus == OperationalStatus.Up)
{
foreach (UnicastIPAddressInformation ip in adapter.GetIPProperties().UnicastAddresses)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
ip_TxtBx1.Text = (ip.Address.ToString());
subnetmask_TxtBx1.Text = (ip.IPv4Mask.ToString());
}
}
foreach (GatewayIPAddressInformation defgateway in adapter.GetIPProperties().GatewayAddresses)
{
defgateway_TxtBx1.Text = (defgateway.Address.ToString());
}
}
}
if (switchtoen_menuBtn.Enabled == false && switchtofr_menuBtn.Enabled == true)
{
primdns_TxtBx1.Text = "Not implemented yet";
secdns_TxtBx1.Text = "Not implemented yet";
}
else
{
primdns_TxtBx1.Text = "Pas encore implémenté";
secdns_TxtBx1.Text = "Pas encore implémenté";
}
}
#endregion
#region change_infos
private void apply_parameters(object sender, EventArgs e)
{
foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces())
{
if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && adapter.OperationalStatus == OperationalStatus.Up || adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet && adapter.OperationalStatus == OperationalStatus.Up)
{
foreach (UnicastIPAddressInformation ip in adapter.GetIPProperties().UnicastAddresses)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
ip.Address = ip_TxtBx2.Text;
ip.IPv4Mask = subnetmask_TxtBx2;
}
}
foreach (GatewayIPAddressInformation defgateway in adapter.GetIPProperties().GatewayAddresses)
{
defgateway.Address = defgateway_TxtBx2.Text;
}
}
}
}
#endregion
}
}
Whismeril
Messages postés18289Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention23 mars 2023622 13 mars 2022 à 19:14
En soit ce n'est pas la façon de penser ce code qui est le problème, mais le fait que tu te sois probablement lancé dans ce projet avant d'avoir appris les bases.
Par ce que si tu connaissais ces bases, tu n'aurais pas écrit ce code.
Whismeril
Messages postés18289Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention23 mars 2023622 17 mars 2022 à 13:39
Oui une mauvaise syntaxe certes.
Mais le problème de fond c’est que t’as pas compris ce qu’est un objet.
Or l’objet c’est l’essence de C# donc sans comprendre tu ne pourras jamais bien coder.
Bidouiller oui dans une certaine mesure.
C’est pourquoi je t’ai orienté vers une autre discussion où le problème est le même et dans laquelle j’ai conseillé la lecture d’un cours à maintes reprises.