Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Om egna menyer och shortcut.

Postades av 2004-02-24 12:07:30 - Benni Svensson, i forum c# (c-sharp), Tråden har 10 Kommentarer och lästs av 974 personer

Jag fick tag på en väldigt bra kod, med vars hjälp jag kan lägga till iconer i menyn.
Tyvärr så har jag slarvat bort adressen men...

Det finns bara en sak som stör mig, och det gäller på vilket sätt som menyerna visar shortcut.
Vad jag skulle vilja ha, och som är standard är:

Crlf + S

...men min meny visar:

CtrlfS

Här kommer lite koder:
<code>
Rectangle rc = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
e.Graphics.FillRectangle(new SolidBrush(System.Drawing.SystemColors.Control) , rc);
MenuItem s = (MenuItem)sender ;
string s1 = s.Text ;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far ;
sf.LineAlignment = StringAlignment.Far;
Rectangle rcText = rc ;
rcText.Width-=5 ;
string scut = "";
if(s.Shortcut.ToString() !="None")
{
scut = s.Shortcut.ToString();
}
else
{
scut = "";
}
</code>
Jag kan alltså få tag på shortcut när det står "None", men när jag försöker att göra någonting, t ex replace eller plocka ut ifrån höger, då fungerar det inte.
Inte heller så lyckas jag att kolla via length..

Jag är nu i slutspurten på mitt program, och skulle vara väldigt tacksam för hjälp.


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-02-24 16:44:45 - Johan Bovin

Men blir det inte bra om du skiter i att själv skriva dit shortcuten utan bara använder s.ShowShortcut = true;? Skriver den inte ut shortcutten rätt då? (tja, förutom siffror då)

http://www.syncfusion.com/FAQ/WinForms/FAQ_c49c.asp#q1088q


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-02-24 19:12:55 - Mattias Sjögren

Kolla om detta hjälper

http://www.msjogren.net/dotnet/eng/samples/dotnet_iconmenu.asp


MS


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-01 12:10:59 - Benni Svensson

Tyvärr så lyckades inte detta.

Arathorn förslag går tydligen bara att genomföra när shortcuten är känd, denna är dynamisk.

MS förslag lyckades inte heller, då hadde jag fått bygga om allting ifrån början.
Det jag funderar på är, varför kan inte en sån enkel sak som replace fungera? Det hadde ju fixat allting med en gång eller?


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-01 14:05:13 - Johan Bovin

jag fattar inte vad du menar med att shortcuten är dynamisk...
ritar du själv ut din meny eller vad är det som blir fel?
Hur tilldelas menuitemet en shortcut? har menutitemen över huuvdtaget någon shortcut?
Känns inte som om du ger all input du har...


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-01 21:20:22 - Benni Svensson

HEJ Arathorn.
Jo jag hittade en kanonfin kod, där det är lätt att få in BRA iconer på menyn.
Först så gör man menyerna( i vanlig ordning), och sätter owndraw till true
Sen kommer denna kod:
<code>
private void menuItem16_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Rectangle rc = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
e.Graphics.FillRectangle(new SolidBrush(System.Drawing.SystemColors.Control) , rc);
MenuItem s = (MenuItem)sender ;
string s1 = s.Text ;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far ;
sf.LineAlignment = StringAlignment.Far;
Rectangle rcText = rc ;
rcText.Width-=5 ;

string scut = s.Shortcut.ToString();

//****************************************shotcut

e.Graphics.DrawString(s1 , new Font("Microsoft Sans Serif" ,8),
new SolidBrush(Color.Silver) , rcText, sf );
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black)), rc );

if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.Selected))
{ //bakgrunden //bra färg
e.Graphics.FillRectangle(new SolidBrush(System.Drawing.SystemColors.InactiveCaption) , rc);
//,FontStyle.Bold | FontStyle.Underline
e.Graphics.DrawString( s1 + " " + scut , new Font("Microsoft Sans Serif" , 8
) , new SolidBrush(Color.White), rcText,sf);
//kanterna
e.Graphics.DrawRectangle(new Pen(new SolidBrush(System.Drawing.SystemColors.Highlight)), rc );
e.DrawFocusRectangle();
}
else
{ //bakgrunden //denna ok
e.Graphics.FillRectangle(new SolidBrush(Color.White) , rc);
if(s.Enabled==true)
{
e.Graphics.DrawString( s1 + " " + scut , new Font("Microsoft Sans Serif" ,8) ,
new SolidBrush(System.Drawing.SystemColors.WindowText), rc ,sf);

}
else
{
e.Graphics.DrawString( s1 + " " + scut , new Font("Microsoft Sans Serif" ,8) ,
new SolidBrush(System.Drawing.SystemColors.GrayText), rc ,sf);


}
//kanterna
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.WhiteSmoke)), rc );
e.DrawFocusRectangle();
}
Image useImage = null ;

if ( s1 == "Nytt" )
{
useImage = img_new;
}
if ( s1 == "Öppna" )
{
useImage = img_open;
}

if ( s1 == "Spara" )
{
useImage = img_save;
}
//OSv
</code>
Ifrån först början så visades inte shortcut alls, men så hittade jag under s att där fanns s.shortcut, och det är den som inte vill vissa sig riktigt.
När den skall visa Ctrl + C så visar den CtrlC.
Det är detta som är problemet.


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-01 22:18:00 - Benni Svensson

JAg hittade ett sätt att lösa problemet på:
<code>
switch(scut)
{
case "CtrlN":
scut = "Ctrl + N";
break;
case "CtrlO":
scut = "Ctrl + O";
break;
</code>

Det är inte det snyggaste sättet, men det fungerar.


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-02 12:20:43 - Roger Alsing

varför inte bara:

scut=scut.Replace("Ctrl","Ctrl + ");

???

//Roger


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-02 14:12:21 - Benni Svensson

Hej Roggan.
Jo det var ju det som jag började med, men det lyckades inte.
Hur jag än försökte så blev det fel, detta var det enda sättet som lyckades för mig.


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-02 21:42:59 - Oskar Johansson

Hm... Denna vb.net kod som jag skrev till min meny-app fungerar bra:

<code>
Public Function GetShortcutText(ByVal Shortcut As String) As String
Dim strTemp As String
strTemp = Shortcut
strTemp = strTemp.Replace("Shift", "Shift+")
strTemp = strTemp.Replace("Ctrl", "Ctrl+")
strTemp = strTemp.Replace("Alt", "Alt+")
Return strTemp
End Function

Public Function GetShortcutText(ByVal Shortcut As System.Windows.Forms.Shortcut) As String
Return GetShortcutText(Shortcut.ToString)
End Function
</code>


Svara

Sv: Om egna menyer och shortcut.

Postades av 2004-03-03 10:05:47 - Benni Svensson

Jo jag försökte också på det viset Onkelborg, men lyckades inte.
Jag får känna mig nöjd med min select-sats


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 156
27 952
271 704
11 801
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies