cudenetf
Messages postés448Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention26 juillet 2012
-
24 août 2006 à 08:22
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
4 juin 2007 à 09:01
bonjour,
je voudrais pouvoir activer automatiquement les majuscule ssur certains formulaires
j'ai essayé
if (!Control.IsKeyLocked(Keys.CapsLock))
{
SendKeys.Send("{capslock}");
}
mais quand je tape ds les champs text , celui ci est toujours en minuscules
Quelqu'un pourrait-il m'expliquer pourquoi?
[comme test g egalement ajouté
if (e.KeyCode == Keys.CapsLock)
{
if (!Control.IsKeyLocked(Keys.CapsLock))
{
MessageBox.Show("Vous avez désactivé les majuscules!!\nVous en avez besoin pour le lecteur de code barre.");
}
else
{
MessageBox.Show("Majuscules activées");
}
}
dans un événement keydown
et j'obtiens le message majuscules acitvées (mais elles ne le sont pas en vrai)
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 24 août 2006 à 10:29
si tes controles sont des textbox, tu as tout simplement la propriété CharacterCasing que tu peux passer sur "upper". sinon, tu peux tout simplement ne pas tenir compte de la casse utilisée par l'utilisateur.
string MaString = lecontroledesaisi.lastring;
MaString.ToUpper();
pas besoin de lui forcer l'activation de la touche majuscule (ce qui est dailleurs tres tres chiant quand une appli fait ca, dailleurs)
cudenetf
Messages postés448Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention26 juillet 20122 24 août 2006 à 13:30
ok merci,
mais ds le cas d'appuie sur les touches numeriques en haut du clavier (ou d'un ordi portable) si j'appuie sur la touche je ne crois pas que cela change le & en 1 (par exemple).
Vous n’avez pas trouvé la réponse que vous recherchez ?
cudenetf
Messages postés448Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention26 juillet 20122 24 août 2006 à 13:34
aussi merci a lutinore qui me renvoiue sur une question que j'avais deja poser precedemment; lol
par contre le probleme avec celle-ci est que meme lorsque je lancais mon appli sans lancer ce formulaire ou je voulais forcer le capslock(avec
[ DllImport( "user32.dll", SetLastError = true ) ]
private static extern uint SendInput( uint num, [ In ] KEYBDINPUT[ ] inputs, int size );),
cleui-ci se declenchait (par exemple je lancais un autre formulaire ocntenu ds le meme projet) et quand je revenais sous visual studio et ben ct en majuscule et ca a fini par me fatigué (lol).
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 24 août 2006 à 14:52
"merci a lutinore qui me renvoiue sur une question que j'avais deja poser precedemment; lol"
Oups.. j'avais pas vu.
"quand je revenais sous visual studio et ben ct en majuscule et ca a fini par me fatigué (lol)."
Normal, désactive le capslock en quittant l'application, dans la méthode OnFormClosed ou Dispose. Mais c'est sûr qu'activer le capslock à l'insu de l'utilisateur c'est enervant.
cudenetf
Messages postés448Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention26 juillet 20122 24 août 2006 à 16:11
non ce que je voulais dire c que meme si je ne lancais pas le formulaire ou l'instruction acitver capslock se trouvait
celoui-ci s'activait , g fait un test en mettant un messagebox ds le ocnstructeur pour voir si il etait lancé mais aucun message n'apparaissait et de retour sous l'editeur kje me retrouvais en majuscule,
sinon comment qu'on l'enleve le capslock :( pour le mettre on entre byte VK_CAPITAL = 0x14;
quel est le chiffre pour le supprimer (et ne supprimer que lui bien sur)?
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 25 août 2006 à 12:43
Dans le code que je t'ai donné l'autre fois, la méthode SendInput est dans une méthode anonyme sur l'évènement Click du bouton, donc CapsLock est activé seulement sur le click du bouton.
Il n'y a pas de chiffre pour le supprimer, 0x14 c'est la touche CapsLock elle même. Par contre on simule l'appui sur cette touche. Si il est sur ON il passe sur OFF et inversement..
private const int INPUT_KEYBOARD = 1;
private const int VK_CAPITAL = 0x14;
private const int KEYEVENTF_KEYUP = 0x0002;
[ StructLayout( LayoutKind.Sequential ) ]
private struct KEYBDINPUT
{
public uint type;
public ushort vk;
public ushort scan;
public uint flags;
public uint time;
public UIntPtr extraInfo;
private uint padding0;
private uint padding1;
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SendPerso.Touche(Keys.CapsLock);
}
}
class SendPerso
{
#region Win32 et Structure
[StructLayout(LayoutKind.Sequential)]
internal struct KEYBDINPUT
{
public uint type;
public ushort vk;
public ushort scan;
public uint flags;
public uint time;
public UIntPtr extraInfo;
private uint padding0;
private uint padding1;
}
[System.Security.SuppressUnmanagedCodeSecurity]
internal static class Win32
{
public const int INPUT_KEYBOARD = 1;
public const int KEYEVENTF_KEYUP = 0x0002;
public static readonly int SIZEOF_INPUT = Marshal.SizeOf(typeof(KEYBDINPUT));
[DllImport("user32.dll", SetLastError = true)]
public static extern uint SendInput(uint num, [In] KEYBDINPUT[] inputs, int size);
[DllImport("user32.dll")]
public static extern IntPtr GetMessageExtraInfo();
}
#endregion
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 4 juin 2007 à 09:01
lol.. merci toshi_hk de remonter ce message presque 1 an plus tard, mais la réponse était déja donnée sur la première page et d'ailleurs le code que tu viens de donner s'en inspire.