Hodnota dle názvu konstanty   zodpovězená otázka

VB.NET

Dobrý den, nevíte někdo, jak získat hodnotu dle názvu konstanty?

Imports System.Reflection

Jak nastavit BindingFlags?


Dim ExcelType As Type = Type.GetTypeFromProgID("Excel.Application")
Dim Excel As Object = Activator.CreateInstance(ExcelType)

'???
Dim xlMaximizedValue As Object = ExcelType.GetField("Excel.XlWindowState.xlMaximized").GetValue(Nothing)

Excel.Visible = True
'Const xlMaximized = -4137
Excel.WindowState = xlMaximizedValue 
nahlásit spamnahlásit spam 0 odpovědětodpovědět

WindowState nemá číselnou hodnotu. Lze pouze ověřit zda-li je formulář minimalizovaný, maximalizovaný, nebo v režimu Normal.


Me.WindowState = FormWindowState.Minimized
Me.WindowState = FormWindowState.Maximized
Me.WindowState = FormWindowState.Normal

Ověřit to lze podmínkou.

If Me.WindowState = FormWindowState.Minimized Then
   MsgBox("Je minimalizovanej.", MsgBoxStyle.Information, "něco")
End If
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hodnota pro stav maximalizovaného okna ve výčtu(Enum) WindowState:

Dim maximized_value = System.Windows.Forms.FormWindowState.Maximized
nahlásit spamnahlásit spam 0 odpovědětodpovědět

(Hodnota výčtu XlWindowState pro maximalizované okno xlMaximized = -4137)

Cílem bylo nastavit WindowState pro late binding Excel deklarovaný jako Object (bez reference v projektu), pomocí Reflection a názvu konstanty, aniž bych konkrétní hodnotu znal :

Dim ExcelType As Type = Type.GetTypeFromProgID("Excel.Application")
Dim Excel As Object = Activator.CreateInstance(ExcelType)
Dim enumXlWindowState = ExcelType.Assembly.GetType("Microsoft.Office.Interop.Excel.XlWindowState")
Dim valueXlMaximized As Object = enumXlWindowState.GetField("xlMaximized").GetValue(Nothing)
Excel.WindowState = valueXlMaximized
nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback