오홍~~ ^^
근데 MultiLine Strings 의 경우 자동으로 생기는 indent 의 앞 공백은 어떻게 처리될까? ^^;

 

 

New Language Features in Visual Basic 14

 

행복한 고수되셔요~~

^^

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고
Posted by woojja

간만에 왔군요... ㅋㅋ

요즘 몇가지 일을 한꺼번에 하느라... 바쁘군요...

8월까지는 꼼짝마가 될 듯합니다.

그래도 틈틈히 할 건 해야겠기에... 또 무언가를 손에 들었습니다. ㅡㅡ'

 

C# 코드를 보다가 VB 로 코드를 바꾸는데 턱 하니 무언가에 부딪쳤습니다.

여러분들께는 기초적인 내용이겠지만... ㅋㅋㅋ

 

한참 찾았네요...

 

코드는 이렇습니다.


            var genres = new List<Genre>
            {
                new Genre { Name = "Rock" },
                new Genre { Name = "Jazz" },
                new Genre { Name = "Metal" },
                new Genre { Name = "Alternative" },
                new Genre { Name = "Disco" },
                new Genre { Name = "Blues" },
                new Genre { Name = "Latin" },
                new Genre { Name = "Reggae" },
                new Genre { Name = "Pop" },
                new Genre { Name = "Classical" }
            };

 

이걸 vb.net 코드로 ㅋㅋㅋ

어떤 분의 목소리가 들리는 듯 합니다.

이럴 거 뭐하러 vb.net으로 하냐고...

C# 으로 하라고... ㅋㅋ

하지만 그래도 가봅니다. ㅋㅋㅋ

 

다음은 이렇게 변환 합니다.

 

Dim genres1 As New List(Of Genre) From {
                New Genre With {.Name = "Rock"},
                New Genre With {.Name = "Jazz"},
                New Genre With {.Name = "Metal"},
                New Genre With {.Name = "Alternative"},
                New Genre With {.Name = "Disco"},
                New Genre With {.Name = "Blues"},
                New Genre With {.Name = "Latin"},
                New Genre With {.Name = "Reggae"},
                New Genre With {.Name = "Pop"},
                New Genre With {.Name = "Classical"}
                }

 

또는

 

            Dim genres As New List(Of Genre) From {
                New Genre("Rock"),
                New Genre("Jazz"),
                New Genre("Metal"),
                New Genre("Alternative"),
                New Genre("Disco"),
                New Genre("Blues"),
                New Genre("Latin"),
                New Genre("Reggae"),
                New Genre("Pop"),
                New Genre("Classical")
                }

 

요렇게요... ㅋㅋㅋ

두번째 코드는 parameter 가 있는 initializer 가 있어야 하는 거고요.

 

핵심은 From With 에 있습니다.

 

머리 나쁜 제가 또 까먹을 듯 하여 올려봅니다.

 

그럼 행복한 고수되십시요...

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고
Posted by woojja

Environment.getEnvironmentVariable 에 관한 내용입니다.


strRetVal = System.Environment.getEnvironmentVariable(strEnvVar)


  • ALLUSERSPROFILE=C:\ProgramData
  • APPDATA=C:\Users\user\AppData\Roaming
  • HOMEPATH=\Users\user
  • LOCALAPPDATA=C:\Users\user\AppData\Local
  • PROGRAMDATA=C:\ProgramData
  • PUBLIC=C:\Users\Public
  • TEMP=C:\Users\user\AppData\Local\Temp
  • TMP=C:\Users\user\AppData\Local\Temp
  • USERPROFILE=C:\Users\user


  • 이 곳을 참고했습니다.

    행복한 고수되십시요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\












    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja
    2011.10.10 13:18
    오늘은 지난 소스를 보던 중 괜찮은 부분이 눈에 띄어 또 써먹을 곳이 있지 않을까 하여 Posting 해 봅니다.
    인터넷 어디선가 Copy 해온 소스인 것 같기도하고... (제가 만들었을리가... ^^;)
    다른 곳에서 유사한 소스를 분이 계시다면... 알려주셔요... Link 를 걸도록 하겠습니다.

    이 글을 보시는 분들께서도 필요하신 분이 있지 않을까 하는... ^^

        1 

        2     Private Function GetValueString(ByVal obj As Object) As String

        3         If (IsDBNull(obj)) Then Return "NULL"

        4 

        5         Select Case obj.GetType.FullName

        6 

        7             Case "System.Boolean"

        8                 If (obj = True) Then

        9                     Return "True"

       10                 Else

       11                     Return "False"

       12                 End If

       13 

       14             Case "System.String"

       15                 Dim str As String = obj

       16                 Return "N'" + str.Replace("'", "''") + "'"

       17 

       18             Case "System.DateTime"

       19                 Return "'" + obj.ToString() + "'"

       20 

       21             Case "System.Drawing.Image"

       22                 Return "NULL"

       23 

       24             Case "System.Drawing.Bitmap"

       25                 Return "NULL"

       26 

       27             Case "System.Byte[]"

       28                 Return "0x" + GetHexString(obj)

       29 

       30             Case Else

       31                 Return obj.ToString()

       32 

       33         End Select

       34     End Function

       35 

       36     Private Function GetHexString(ByRef bytes() As Byte) As String

       37         Dim sb As New System.Text.StringBuilder

       38         Dim b As Byte

       39         Dim i As Integer = 0

       40 

       41         For Each b In bytes

       42             i += 1

       43             sb.Append(b.ToString("X2"))

       44             If i > 10 Then

       45                 Return sb.ToString()

       46             End If

       47         Next

       48 

       49         Return sb.ToString()

       50     End Function



    행복한 고수되셔요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\












    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja
    image 파일을 동적으로? 넣어야 할 일이 생겼습니다.
    "동적으로" 라는 말에 "?" 를 붙인 이유는
    앞으로 진행할 작업이 동적이라고는 하지만 XML 파일에 추가를 시켜줘야하고, 이미지 파일을 Embedded Resource 로 등록을 해줘야 하기 때문입니다. ㅋㅋㅋ
    그럼 다시 컴파일을 해줘야 하니까요...


    위와 같이 image 들을 Embedded Resource 로 등록을 하게되면 (Build Action 을 Embedded Resource 로 설정해 놓은 것을 확인하자)
    저번 Article 에서 언급했듯이
    Reflector 를 이용해서 살펴보게되면 assembly 내에 아래 그림과 같이 등록되어 있는 것을 알 수 있다.

    (실행파일을 만들면 좋겠지만 귀차니즘으로 인해 현재 제작중인 Application 의 내용을 Capture 를 하다보니 수정하고 손으로 편집하고... 그래서 좀 조잡하네요. 이해해 주세용 ^^' )

    그럼 imagelist control 에 등록할 이미지들이 어떤 것들인지 정의할 XML 파일의 내용을 보면 아래와 같다.

      <CTypes>

        <CType value ="10">Black</CType>

        <CType value ="11">Blue</CType>

        <CType value ="12">Red</CType>

        <CType value ="13">Green</CType>

        <CType value ="14">Cyan</PType>

      </CTypes>

    위 녀석을 읽어서 아래와 같이 Loop 를 돌면서 imageList Control 에 Add 한다.

        1         For Each dzitem As string In arrData

        2             strKey = dzitem

        3            

        4 

        5             Dim img As System.Drawing.Image

        6             Dim asm As System.Reflection.Assembly = Assembly.GetExecutingAssembly()

        7             Dim imageStream As System.IO.Stream = asm.GetManifestResourceStream("woojjaApplication." & strKey & ".png")

        8             img = Image.FromStream(imageStream)

        9 

       10             imglist.Images.Add(strKey, img)

       11 

       12         Next


    Line 10 을 살펴보게되면 imageList 에 image 를 Add 할때 strKey 라고 하여 image 에 Key 를 부여할 수 있다.

    이와 같이 이미지를 등록하는 방법을 선택한 몇가지 이유 중에 하나가 Key 를 등록하기 위해서 였다. ^^

    Embedded Resource 가 아닌 Assembly 의 Resource 에 등록을 하고 imageList 에 image 를 Add 하는 방법을 써보려했으나 그건 좀 생각할 것이 좀더 많아서 다음 번에 구현해보려한다.


    그럼 행복한 고수되셔요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\















    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja


    Registry 를 수정하는 Application 을 제작하였다.
    기존에는 VisualStudio 의 UAC 를 상승시켜 사용을 하다보니 UnauthorizedAccessException 을 만나지 않았었다.


    그래서 기존에 제작한 Application 의 UAC 를 상승시켜야만 했다.



    UAC 를 상승시키는 한가지 방법으로 실행파일의 Manifest 를 사용하는 방법이 있다.
    이방법을 사용하기위해선 Manifest 파일과 mt.exe 파일을 사용해야만 하는데 먼저 manifest 파일을 보게되면
    대략 아래와 같다.

        1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

        2 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

        3   <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>

        4   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">

        5     <security>

        6       <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

        7         <requestedExecutionLevel level="asInvoker" uiAccess="false"/>

        8       </requestedPrivileges>

        9     </security>

       10   </trustInfo>

       11 </assembly>


    이 파일에서 requestedExecuteionLevel 의 level 값이 중요한데 기본적으로 "asInvoker" 로 되어 있다.
    이 값은 UAC 상승없이 실행하며 호출 Process 의 권한을 이용하도록 되어있다.
    따라서 나같은 경우 Application 의 Debug 가 VisualStudio 의 UAC 를 바탕으로 실행이 되었으므로 UAC 가 상승되어 있는 상태였으므로 맘대로 Registry 를 건드릴수 있었던 것이다.

    다른 값으로 "highestAvailable" 이 있는데 이것은 호출 Process 가 가지고 있는 권한 중 가장 높은 권한을 사용하는 옵션이다.

    여기서 내가 사용할 값은 "requireAdministrator" 으로 실행시 관리자 권한으로 UAC 상승을 요청하도록 하는 옵션인데 따라서 확인창이 뜨게 된다.

    내가 사용하는 방법을 간단히 소개를 했는데...
    위 방법을 사용하려면 먼저 manifest 파일을 얻어야 한다.
    간단히 얻는 방법이 있다.

    woojja.exe 의 실행파일인 경우 실행파일이 컴파일되는 Target Folder 에 가보면 ("bin" Folder 에 "Debug", "Release" Folder)
    woojja.vshost.exe.manifest 라는 파일이 보일 것이다.
    ㅋㅋㅋ 이것을 사용하자.
    파일을 복사하여 "woojja.exe.manifest" 라는 이름의 파일로 만들자...
    그리고 파일을 열어
    requestedExecuteionLevel 의 level 값을 "asInvoker" 에서 "requireAdministrator" 로 수정하자.
    저장하고...

    이제 mt.exe 를 실행시켜야 할 것이다.


    mt.exe 파일의 위치는
    "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin"
    에 있다.
    Version 에 따라
    "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin" 에도 존재한다.

    이제 실행시키자.

    실행파일(exe)인 경우 옵션값 1 을 사용한다.
    mt.exe -manifest "woojja.exe.manifest" -outputresource:"woojja.exe";#1

    Library 파일(dll)의 경우 옵션값 2 를 사용한다.
    mt.exe -manifest "woojja.dll.manifest" -outputresource:"woojja.dll";#2



     

    D:\wizExpert\Source\woojja\Deploy>"C:\Program Files\Microsoft SDKs\Windows\v7.0A\

    bin\mt.exe" -manifest "woojja.exe.manifest" -outputresource:"woojja.exe";#1

    Microsoft (R) Manifest Tool version 5.2.3790.2076

    Copyright (c) Microsoft Corporation 2005.

    All rights reserved.

     

    D:\wizExpert\Source\woojja\Deploy>

     

     



    그러면 요로케 나올 것이며...

    아래와 같이 UAC 확인창이 뜰 것이다.





    ^^
    행복한 고수되셔요...
    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\












    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja

    캬캬캬
    엄청나게 무식하다고 욕하지 마시라...

    기존 Resources 에 포함되어 있는 Resource 들을 보면 아래 와 같은 이미지들이 포함되어 있습니다.
    번호로되어있는 파일들이 보일텐데요...


    그 Resource 들을 파일 이름으로 조회를 해야할 일이 발생했습니다.
    xml 데이터를 이용해서 imageList 객체를 만들려고 하는데 먼저 imageList 객체에 image 를 어떻게 추가할 수 있는지 MSDN Document 를 찾아보면...

     

    .

    Paramenter 를 보면 string 형의 Key 값과 Bitmap 형의 image 가 필요한데...
    Key 는 XML 파일에서 가져오고... XML 에 있는 데이터를 바탕으로 Resource 에 등록되어 있는 이미지를 가져올 계획이었다.

    참고로 XML 파일에는 이런식으로 되어 있다.

       15   <PlayerTypes>

       16     <PlayerType category="Default" value ="0" enable="True" Default="True">Transparent</PlayerType>

       17     <PlayerType category="Normal" value ="10" enable="True">일반-검정</PlayerType>

       18     <PlayerType category="Normal" value ="11" enable="True">일반-파랑</PlayerType>

       19     <PlayerType category="Normal" value ="12" enable="True">일반-빨강­</PlayerType>

       20     <PlayerType category="Normal" value ="13" enable="True">일반-초록</PlayerType>

       21     <PlayerType category="Normal" value ="14" enable="True">일반-하늘색</PlayerType>

       22     <PlayerType category="PopUp" value ="20" enable="False">팝업-검정</PlayerType>

       23     <PlayerType category="PopUp" value ="21" enable="False">팝업-파랑</PlayerType>

       24     <PlayerType category="PopUp" value ="22" enable="False">팝업-빨강­</PlayerType>

       25     <PlayerType category="PopUp" value ="23" enable="False">팝업-초록</PlayerType>

       26     <PlayerType category="PopUp" value ="24" enable="False">팝업-하늘색</PlayerType>

       27     <PlayerType category="SimpleCircle" value ="30" enable="True">단순 원형-파랑</PlayerType>

       28     <PlayerType category="SimpleCircle" value ="31" enable="True">단순 원형-빨강­</PlayerType>

       29     <PlayerType category="SimpleCircle" value ="32" enable="True">단순 원형-검정</PlayerType>

       30     <PlayerType category="SimpleSquare" value ="40" enable="True">단순 사각-파랑</PlayerType>

       31     <PlayerType category="SimpleSquare" value ="41" enable="True">단순 사각-빨강­</PlayerType>

       32     <PlayerType category="SimpleSquare" value ="42" enable="True">단순 사각-검정</PlayerType>

       33   </PlayerTypes>


    그렇다면 이제 Assembly 에 있는 Resource 에 접근하는 방법을 알아봐야 할텐데...
    "Show All Files" 아이콘을 클릭하면 숨겨져 있는 파일을 모두 볼수 있는데.. Assembly 전체에서 사용하는 Resources.resx 의 Designer code 파일을 보도록 하자...(Resources.Designer.vb)

     



    이 파일을 열어보면... 아래와 같이 Resource 들을 접근하기위한 Property 가 주~~욱 나열되어 있는 것을 확인할 수 있다.

       63         Friend ReadOnly Property _10() As System.Drawing.Bitmap

       64             Get

       65                 Dim obj As Object = ResourceManager.GetObject("_10", resourceCulture)

       66                 Return CType(obj,System.Drawing.Bitmap)

       67             End Get

       68         End Property

       69 

       70         Friend ReadOnly Property _11() As System.Drawing.Bitmap

       71             Get

       72                 Dim obj As Object = ResourceManager.GetObject("_11", resourceCulture)

       73                 Return CType(obj,System.Drawing.Bitmap)

       74             End Get

       75         End Property

       76 

       77         Friend ReadOnly Property _12() As System.Drawing.Bitmap

       78             Get

       79                 Dim obj As Object = ResourceManager.GetObject("_12", resourceCulture)

       80                 Return CType(obj,System.Drawing.Bitmap)

       81             End Get

       82         End Property

       83 

       84         Friend ReadOnly Property _13() As System.Drawing.Bitmap

       85             Get

       86                 Dim obj As Object = ResourceManager.GetObject("_13", resourceCulture)

       87                 Return CType(obj,System.Drawing.Bitmap)

       88             End Get

       89         End Property


    이 파일은 어떤 녀석이 만들어 주느냐?


    위 그림처럼... Resources.resx 파일을 클릭해보면 아래 Properties 창에 "Custom Tool" 이라는 항목이 나오는데...
    값을 보면... VbMyResourcesResXFileCodeGenerator 라는 녀석이 있는데...
    바로 이녀석이 자동적으로 Generating 해주는 역할을 한다.
    이 녀석이 Resource 의 이름. 즉, String 을 건네주면 값을 반환하는 Function 같은 것을 지원해주면 좋으련만...
    그런 함수를 지원하지 않기 때문에...
    내가 손으로 직접 만들어 주려고 한다. ㅋㅋㅋ

    그럴려면...
    VisualBasic.NET 의 경우 Resource 에 어떻게 접근할까?
    위에서 봤듯이... Custome Tool 에 의해서 쉽게 접근 할 수 있다..

    VisualBasic.Net 의 경우 My Namespace 를 사용하면 쉽게? 접근할 수 있는데...

    Dim img As System.Drawing.Image = My.Resources._10
    

    이런식으로 하면 바로 이미지를 가져올 수 있다.

    하지만 나는 XML 파일의 String 값을 기반으로 실행을 하려고 했으므로...

     VbMyResourcesResXFileCodeGenerator 라는 녀석이 만들어낸 "Resources.Designer.vb" 파일을 참고삼아..
    모듈을 만들고 몸뚱이에... 함수를 추가하여 엇비슷하게 사용할까 한다. ㅋㅋㅋ
    (완전 단순 무식... ^^')

    그 단순무식의 실체는 아래와 같다...
    ㅋㅋㅋ

        1 Option Strict On

        2 Option Explicit On

        3 

        4 Imports System

        5 

        6 Namespace My.Resources

        7 

        8     <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _

        9      Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _

       10      Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _

       11      Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _

       12     Module Resources_Partial

       13 

       14         Private resourceMan As Global.System.Resources.ResourceManager

       15 

       16         Private resourceCulture As Global.System.Globalization.CultureInfo

       17 

       18         '''<summary>

       19         '''  Returns the cached ResourceManager instance used by this class.

       20         '''</summary>

       21         <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

       22         Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager

       23             Get

       24                 If Object.ReferenceEquals(resourceMan, Nothing) Then

       25                     Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("woojjaApplication.Resources", GetType(Resources).Assembly)

       26                     resourceMan = temp

       27                 End If

       28                 Return resourceMan

       29             End Get

       30         End Property

       31 

       32         '''<summary>

       33         '''  Overrides the current thread's CurrentUICulture property for all

       34         '''  resource lookups using this strongly typed resource class.

       35         '''</summary>

       36         <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

       37         Friend Property Culture() As Global.System.Globalization.CultureInfo

       38             Get

       39                 Return resourceCulture

       40             End Get

       41             Set(ByVal value As Global.System.Globalization.CultureInfo)

       42                 resourceCulture = value

       43             End Set

       44         End Property

       45 

       46         Public Function GetBitmapByName(ByVal strName As String) As System.Drawing.Bitmap

       47 

       48             Dim obj As Object = ResourceManager.GetObject(strName, resourceCulture)

       49             Return CType(obj, System.Drawing.Bitmap)

       50 

       51         End Function

       52 

       53         Public Function GetStringByName(ByVal strName As String) As String

       54 

       55             Dim obj As Object = ResourceManager.GetObject(strName, resourceCulture)

       56             Return CType(obj, String)

       57 

       58         End Function

       59 

       60     End Module

       61 End Namespace

       62 



    GetBitmapByName() 과 GetStringByName() 이라는 함수가 추가된 것을 볼 수 있을 것이다.

    함수의 Parameter에 strName 과 Type 을 던지는 것도 한가지 방법일 것이다.

    그건 여러분이 선택할 사항이고... ㅋㅋ

    Reflection 을 사용하여 원하는 값을 가져올 수도 있겠지만...
    그 정도로 값을 동적으로 가져와야 할 사항은 아닌 까닭에 한번 만들어 보았다. ^^;



    행복한 고수되십시요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\















    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja
    현재 작업중인 Application 에서 사용하는 XML File 을 Embedded Resource 로 사용해야할 일이 발생했습니다.

    해서

    아래와 같이
    Project 에 "Data" Folder 를 생성하고 settings.xml 이라는 xml 파일을 추가한 후
    Property 창에의 "Build Action" 옵션을 "Embedded Resource" 로 설정하였습니다.



    googling 을 통해서 얻은 지식으루다가 아래와 같이 코딩을 이어 갔습니다.
    하지만 2번을 통과하면 값을 가져오지 못합니다.

        1         Dim asm As System.Reflection.Assembly = Assembly.GetExecutingAssembly()

        2         Dim xmlStream As System.IO.Stream = asm.GetManifestResourceStream("WindowsApplication5.Data.settings.xml")

        3         Dim xmlDoc As XmlDocument = New XmlDocument()

        4         xmlDoc.Load(xmlStream)

        5         Dim xmlDs = XDocument.Parse(xmlDoc.OuterXml)


    그 이유를 찾아 보았습니다.
    짐작이 가는게 있었습니다.

    reflector 를 이용해서 exe 파일을 까보았더랬죠.

    역시나.. VB 는 폴더명을 Namespace 로 포함하지 않는 군요...
    당연히 똑같겠지만 서도... ilDAsm 파일로도 열어봤습니다. ^^'


    C#은 어떨까요?
    눈으로 직접 확인해 봐야겠죠? ㅋㅋㅋ
    위 VB Project와 동일한 환경으로 Xml 파일을 추가하였습니다.


    Build 를 하고
    Reflector 와 ilDAsm 으로 살펴보니...



    그렇군요...

    "Data" Folder 명이 Namespace 에 포함되어 있는 것을 볼 수 있습니다.


    단순히 C#  코드만 복사해서 사용하려다 보니 나온 오류였습니다. ㅋㅋㅋ

    VB.NET 에서는 아래와 같이 사용해야겠네요? ^^
     

        1         Dim asm As System.Reflection.Assembly = Assembly.GetExecutingAssembly()

        2         Dim xmlStream As System.IO.Stream = asm.GetManifestResourceStream("WindowsApplication5.settings.xml")

        3         Dim xmlDoc As XmlDocument = New XmlDocument()

        4         xmlDoc.Load(xmlStream)

        5         Dim xmlDs = XDocument.Parse(xmlDoc.OuterXml)


    그럼 이때 VB 는 C# 과 같이 Folder 별 Namespace 를 관리하지 않나? 라는 궁금증을 가지시는 분이 있으시겠죠?
    네... 맞습니니다.

    VB.Net 은 C# 과 같이 파일을 추가할 때 자동으로 Namespace Syntax 를 파일에 추가해 주지 않습니다.
    개발자가 직접해주어하지요...
    그래서 아래와 같은 상황에서 햇갈린다는 메세지를 띄워주게 됩니다.

    이럴 때는 직접 Namespace 로 감싸주셔요... ^^

    요런 점은 Microsoft VB Team 이 추가를 해줬으면 하는 바램이 있네요... 그쵸? ^^'



    행복한 고수되십시요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\




     












    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja

    Release 된지 한참 된 겁니다.
    그래도 혹시나 공부하실 분이 있으실까싶어 올려봅니다.

    Visual Basic for Windows Phone Developer Tools - RTW
    아래 링크는 Code Sample 이 있는 곳이지요...
    http://msdn.microsoft.com/en-us/library/ff431744(VS.92).aspx

    아래 링크는 Visual Basic 버전이 아닌..
    Windows Phone Developer Tools RTW


    헹복한 고수되십시요...


    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\












    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja



    WorldCup 을 보던 중에 패스 성공율에 대해 보여주는 화면이 나오더라고요...
    패스 하는 걸 일일이 카운팅하는 사람들이 있을텐데
    이건 그런 패스 카운팅하는 사람들이 쓸 것 같은? 어플입니다. ^^

    그냥 TV 만 보느니 한번 만들어 볼까 해서 만들어봤습니다.



    그냥 기본적인 문법을 사용한 거라서요...
    뭐 건져가실 건 없을 겁니다.

    ^^'
    다음번엔 패스 퍼센티지를 만들어 볼까? ㅋㅋㅋ

    대~~애 한민국 짝!짝!~짝!~짝!짝!

    필승입니다.

    행복한 고수되셔요...

    woojja ))*
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    깜빡잊고 실행파일과 소스를 안올렸네요... ㅋㅋ 필요는 없으시겠지만... ^^;
    아르헨티나 경기 합니다.
    오늘 필승입니다.

    대애~~한 민국 짝짝짝짝짝... ^^

        1 Public Class frmCounter

        2 

        3     Dim ActionStack As Stack(Of String)

        4 

        5     Public Sub New()

        6 

        7         ' This call is required by the designer.

        8         InitializeComponent()

        9 

       10         ' Add any initialization after the InitializeComponent() call.

       11         ActionStack = New Stack(Of String)

       12 

       13     End Sub

       14 

       15     Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbBPassFore.Click, pbBPassCross.Click, pbBPassError.Click, pbBCancel.Click, pbRPassFore.Click, pbRPassCross.Click, pbRPassError.Click, pbRCancel.Click

       16         Dim pb As PictureBox = CType(sender, PictureBox)

       17         Dim buttonName As String = pb.Name

       18         Select Case buttonName

       19             Case "pbBPassFore"

       20                 nupBFore.UpButton()

       21             Case "pbBPassCross"

       22                 nupBCross.UpButton()

       23             Case "pbBPassError"

       24                 nupBError.UpButton()

       25             Case "pbRPassFore"

       26                 nupRFore.UpButton()

       27             Case "pbRPassCross"

       28                 nupRCross.UpButton()

       29             Case "pbRPassError"

       30                 nupRError.UpButton()

       31             Case "pbRCancel"

       32                 'VB 에는break나 Continue 문이 없는 관계로 ^^'

       33                 CancelCount()

       34             Case "pbBCancel"

       35                 CancelCount()

       36         End Select

       37 

       38         If Not (String.Equals(buttonName, "pbRCancel") Or String.Equals(buttonName, "pbBCancel")) Then

       39             ActionStack.Push(buttonName)

       40         End If

       41 

       42     End Sub

       43 

       44     Private Sub CancelCount()

       45         If ActionStack.Count < 1 Then

       46             Return

       47         End If

       48         Dim buttonName As String = ActionStack.Pop()

       49         Select Case buttonName

       50             Case "pbBPassFore"

       51                 nupBFore.DownButton()

       52             Case "pbBPassCross"

       53                 nupBCross.DownButton()

       54             Case "pbBPassError"

       55                 nupBError.DownButton()

       56             Case "pbRPassFore"

       57                 nupRFore.DownButton()

       58             Case "pbRPassCross"

       59                 nupRCross.DownButton()

       60             Case "pbRPassError"

       61                 nupRError.DownButton()

       62         End Select

       63     End Sub

       64 

       65 End Class

       66 

       67 















    저작자 표시 비영리 변경 금지
    신고
    Posted by woojja
    이전버튼 1 2 3 4 이전버튼

    티스토리 툴바