Dá sa vo VB .NET nejako zistiť, či bolo stlačené súčasne ľavé aj pravé tlačítko myši?
Pri udalosti MouseUp je v e.Button stlačené tlačítko, ale buď ľavé, pravé alebo stredné. Ja však potrebujem ľavé + pravé.
Fórum › .NET
Kliknutie myšou
Tak zkus třeba při stlačení jednoho tlačítka nějak "křížově" zkontrolovat, jestli je stlačeno i to druhé tlačítko. Tj. třeba při stlačení levého tlačítka podmínkou zkontrolovat jestli je stlačeno i to pravé a naopak, následně se při splnění této podmínky odkážeš na požadovanou funkci. To by mohlo fungovat.
To mylan4 : Jaká je pravděpodobnost, že zmáčkneš obě tlačítka najednou? Jedno bude vždy rychlejší (byť o pár setinek). Nějak v tom nevydím smysl.
Tak já fakt nevim jak je to ve VB, ale snad by tam měl být nějaký identifikátor toho tlačítka, kterým pak můžeš testovat, zdali je tlačítko stisknuto nebo ne. Třeba v Delphi (sorry, ale ve VB neumim, ale tam to bude podobné) máš identifikátory tlačítek jako ssLeft, ssMiddle a ssRight v množinovém parametru Shift a testovat tam můžeš stisk tlačítek myši, tak asi takhle jsem to myslel (snad to pochopíš, pokud ne, kdyžtak se budu muset naučit ve VB:-)):
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
begin
if ssRight in Shift then
ShowMessage('Stlačili jste obě tlačítka myši');
end
else
if ssRight in Shift then
begin
if ssLeft in Shift then
ShowMessage('Stlačili jste obě tlačítka myši');
end
end;
To djanosik : jj, tak to jsem si taky myslel že obě tlačítka najednou stisknout asi nepůjdou, ale i kdyby, i na to má Delphi proporce (jenom abych doplnil a poukázal na to, že pravděpodobně i ve VB něco takového bude existovat) - identifikátor ssDouble (tj ssLeft a ssRight najednou), pro tento případ se to ale opravdu nehodí.
To Ace McIntosh : Ale pozor, zde nejde o VB, ale o VB.NET, což je podstatnej rozdíl.
To djanosik : No tak já nevím, univerzální postup by měl být možný za použití pomocných proměnných, zkusil jsem to napsat přímo do VB, ale nevím jestli to je správně (jak syntakticky, tak algoritmicky - neměl jsem jak otestovat a vymýšlel jsem to narychlo):
Private Levetlacitko As Boolean
Private Pravetlacitko As Boolean
//počáteční hodnotu proměnných Levetlacitko a Pravetlacitko nastavíme na false
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
If e.Button = MouseButtons.Left Then
Levetlacitko = True
If Pravetlacitko = True Then
MsgBox("Byla stisknuta obě tlačítka myši.");
End If
Else If e.Button = MouseButtons.Right Then
Pravetlacitko = True
If Levetlacitko = True Then
MsgBox("Byla stisknuta obě tlačítka myši.");
End If
End If
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
Levetlacitko = False
Pravetlaciko = False
End Sub
To djanosik : No.. je pravda, že to nebude celkom naraz. A zmysel to má, napr. v hre Minesweeper, ak stlačíš obe tlačítka, tak sa odkryjú okolité políčka. A ja programujem tiež akési Míny, ale budú tam aj životy (možno to je blbosť, ale jeden môj kamarát ma požiadal, aby som niečo také naprogramoval).
To Ace McIntosh: Tak nejako som videl krajné riešenie, ale myslel som si, že to takto urobiť nemôžem, pretože sa síce vykoná akcie pre stlačenie oboch tlačítok, ale ešte pred tým sa vykoná akcia pre stlačenie jedného tlačítka... Napr. stlačím ľavé tlačítko, vykoná sa akcia pre ľavé, hneď stlačím aj pravé a vykoná sa akcia určená pre ten "dvojklik".
Ale teraz mi došlo, že vlastne v danom prípade bude akcia definovaná len pre ten "dvojklik", takže to takto pôjde... :smile5: Díky! :smile2:
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Softwarove kliknutie... — založil Nrigo
Softwarove kliknutie... — založil Nrigo
Vymena obrazkov po prejdeni mysou — založil elo
Ako zlúčiť bunky po označení myšou — založil juraj175
Symulacia pohybu myšou alebo stlačenia tlačidla na klavesnicy — založil paloS_1
Moderátoři diskuze