//Array를 Object로 변환해서, 한번에 Row에 출력하기.혹은 저장하기

/*
string n = "1234";

Method.1
int outValue = Convert.ToInt32(n);

Method.2
int outValue = int.Parse(n);

Method.3
int outValue;
int.TryParse(n, out outValue);
*/


class Program
{
    static void Main(string[] args)
    {
        Application.Run(new NMNM());
    }
}

public class NMNM : Form
{
    private DataGridView control_datagridview;

    public NMNM()
    {
        DESIGN();
        DATA();
    }

    void DESIGN()
    {
         control_datagridview = new DataGridView();

         control_datagridview.Dock = DockStyle.Fill;
         control_datagridview.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
         control_datagridview.MultiSelect = false;
         control_datagridview.Location = new Point(362, 150);
         control_datagridview.Name = "control_datagridview";
         control_datagridview.Size = new Size(240, 150);
    }
    void DATA()
    {

        List<string> AuthorList = new List<string>();

         AuthorList.Add("Mahesh Chand");
         AuthorList.Add("Praveen Kumar");
         AuthorList.Add("Raj Kumar");
         AuthorList.Add("Nipun Tomar");
         AuthorList.Add("Dinesh Beniwal");

         control_datagridview.Rows.AddItem(AuthorList.ToArray());
    }
}

 

궁금합니다) system.reflection.targetinvocationexception 예외처리

Exception thrown: 'System.Reflection.TargetInvocationException' in mscorlib.dll(?)
Exception thrown: 'System.Reflection.TargetInvocationException' in mscorlib.dll(?)
Exception thrown: 'System.Reflection.TargetInvocationException' in mscorlib.dll(?)

B210145@DESKTOP-IE5O3G0 MINGW64 /c/Windows
$ find ./ -name mscorlib.dll
./Microsoft.NET/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
./Microsoft.NET/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
./Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
./Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

 

https://developercommunity.visualstudio.com/t/exception-thrown-systemreflectiontargetinvocatione/773645

 

Exception thrown: 'System.Reflection.TargetInvocationEx...

<p>When using Visual Studio 2017 running exactly the same code, I have no errors but when using Visual Studio 2019 I get the following exceptions when...

developercommunity.visualstudio.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jg1223&logNo=220006001600 

 

'System.Reflection.TargetInvocationException' 형식의 예외가 mscorlib.dll에서 발생했지만 사용자 코드에서 처

'System.Reflection.TargetInvocationException' 형식의 예외가 mscorlib.dll에서 발생했지만 사용자 ...

blog.naver.com

 

public class Program
{
    public static void Main()
    {
        DateMN nm = new DateMN();
        nm.running();
    }
}
public class DateMN
{
    DateTime now;
    string manualDT = "20230901070000";
    double rate = 0.0586;
    int middle_pay = 95000000;
    double rate_sum = 1300000;

    public void running()
    {
        int kk = 0;
        now = DateTime.ParseExact(manualDT, "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);

        while(true)
        {
            DateTime manual = now.AddDays(kk);
            if("2023-12-15" == manual.ToString().Substring(0,4+2+2+2)) middle_pay = middle_pay + 60000000;
            rate_sum = rate_sum + rate * middle_pay / 365.0;

            kk++;
            Console.WriteLine("[" + kk.ToString("0000") + "]" + manual.ToString() + "/" + middle_pay + "/" + rate_sum);

            if(kk > 200) break;
        }
    }
}

 

 

C#, 변수, 상수, 기본구조
C#, HelloWorld, Main 함수
C#, 연산자, 자료형(Value Type, Reference Type)
사용자정의타입(열거형, 구조체)
조건문, 제어문, 반복문(if, switch, for, while, forEach)
가변길이 매개변수(params), 명명된 인수 및 선택적 인수
프로퍼티(Property)
C# 객체지향 프로그래밍
클래스(Class), 객체, 상속, 추상클래스, 인터페이스, 다형성
C# 코드 최적화, 객체생성 및 멤버,필드 초기화
C# new, virtual, partial 한정자
값전달, 참조전달(ref, out)
C# 배열(Array)
C# 일반화 프로그래밍(Generic)
C# 컬렉션 클래스(Collection Class)
C# 델리게이트, 델리게이트 체인
C# 이벤트(Event)
C# 람다식(Lambda Expression)
C# Func, Action 델리게이트
C# 링크(Linq)




Xamarin 1.1 자마린 소개
1.2 자마린 설치
1.3 자마린 안드로이드(Xamarin.Android)
1.4 자마린 특징
2. Xamarin.Android
2.1 Hello Android(Xamarin.Android Application) Example
2.2 Hello Xamarin Android 구조
2.2.1 Resources
2.2.2 Xamarin.Android Activity란
2.2.3 Activity Life Cycle
2.2.4 Hello Xamarin Android의 기타 요소들
2.2.5 Xamarin Android Intent(인텐트)
2.2.6 Simple Intent Example(웹페이지 오픈하기)
2.2.7 Simple Intent Example(현재 위치를 얻은 후 지도에 표시하기, 마시멜로이후 권한 획득방법 구현)
2.2.8 Android Service 개요
2.3 Hello Android MultiScreen Example
2.4 Built-In List Item Layouts(내장 리스트아이템 레이아웃)
2.5 Xamarin.Android(With .JAR, .AAR, Native Android Library)
2.5.1 Binding Java Library(Consuming Java libraries from C#)
2.5.2 Xamarin.Android EmbeddedJar Binding(안드로이드 JAR 라이브러리 바인딩)
2.5.3 Xamarin.Android .AAR Binding(안드로이드 .AAR File을 자마린 바인딩 자바 라이브러리로 구현 후 Xamarin.Android 프로젝트에서 호출하기)
3. Xamarin.iOS
3.1 Xamarin.iOS 설치, 개발환경
3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
3.3 Xamarin.iOS HelloWorld 자세히 살펴보기
3.3.1 Xamarin.iOS HelloWorld 해부하기
3.3.2 Architecture and App Fundamentals
3.3.3 User Interface(iOS Designer, Storyboards)
3.4.4 View Controllers and the View Lifecycle
3.3.5 추가적인 사항
3.4 Xamarin.iOS HelloWorld(멀티 뷰) 실습
3.4.1 Xamarin.iOS HelloWorld(멀티 뷰) 자세히 살펴보기_MVC, Navigation Controller, View Controller
3.5 네비게이션 컨트롤러(Navigation Controller)
3.6 루트 뷰 컨트롤러(Root View Controller)
4. Xamarin.Forms
4.1 Xamarin.Forms Requirements
4.2 Xamarin.Forms Quick Start
4.3 Xamarin.Forms HelloWorld 분석
4.3.1 Xamarin.Forms HelloWorld 프로젝트 구조
4.3.2 Xamarin.Forms HelloWorld Fundamentals
4.3.3 Xamarin.Forms HelloWorld PCL 및 플랫폼별 코드 분석
4.3.4 Xamarin.Forms HelloWorld 사용자 인터페이스
4.3.5 Xamarin.Forms HelloWorld User Interaction
4.3.6 Xamarin.Forms HelloWorld 추가적인 개념
4.4 Xamarin.Forms Multiscreen Quick Start Example
4.5 Views And Layout
4.5.1 Stack Layout
4.5.2 Lists in Xamarin.Forms
4.5.3 ListView Data Sources
4.5.4 Selecting an Item in a ListView
4.5.5 DataTemplateSelector
4.5.6 ListView, DataTemplateSelector Example
4.6 MVVM개요 및 MVVM Example
4.6.1 ViewModel을 View에 연결하기
4.6.2 Creating a View Model Declaratively
4.6.3 Creating a View Model Programmatically
4.7 XAML 데이터 바인딩(Data Binding)
4.7.1 데이터 바인딩(Data Binding) 개요
4.7.2 View-to-View 데이터 바인딩
4.7.3 ListView 심플 데이터 바인딩, 컬렉션 바인딩(Collection Binding), ListView에서 클릭시 새창 띄우면서 데이터 넘기기
4.7.4 Backwards 바인딩
4.7.5 MVVM에서 데이터 바인딩 사용하기
4.7.6 MVVM, ViewModel을 이용한 ListView 데이터 바인딩
4.7.7 MVVM, XAML을 이용한 간단한 계산기 구현
4.8 SQLite.Net with Xamarin.Forms
4.8.1 Local SQLite Access Example
4.8 Hierarchical Navigation
4.8.1 Pushing Pages to the Navigation Stack
4.8.2 Popping Pages from the Navigation Stack
4.8.3 Passing Data when Navigating
4.8.4 Hierarchical Navigation Example
4.8.5 Login Flow Example
5. Xamarin.Forms & REST WebService
5.1 Rest service를 위한 클래스(HttpClient, HttpResponseMessage, HttpContent, HttpWebRequest)
5.2 Xamarin.Forms 안드로이드에서 자바기반 스프링 프레임워크(스프링 부트)로 작성한 웹서비스 호출 실습.
5.3 자마린 앱에서 스프링프레임워크/스프링부트 RESTful기반 웹서비스 Call 실습, JSON 파싱하기[웹서비스는 자바,스프링으로 모바일 앱은 자마린으로!]

'c# 언어' 카테고리의 다른 글

ClickOnce 보안 및 배포  (0) 2023.07.18
basic 3*3 frm hexa,cs,code  (0) 2023.07.13
mode con cols=80 lines=50  (0) 2023.06.11
REDIS 필수정리  (0) 2022.08.31
객체 지향(Object oriented) 프로그래밍  (0) 2022.06.17

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

music_22_00.Designer.cs
0.01MB
program.cs
0.00MB
music_22_00.cs
0.01MB

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

music_18_00.Designer.cs
0.01MB
program.cs
0.00MB
music_18_00.cs
0.01MB

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

 

music_14_00.Designer.cs
0.01MB
program.cs
0.00MB
music_14_00.cs
0.01MB

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

 

music_11_00.Designer.cs
0.01MB
program.cs
0.00MB
music_11_00.cs
0.01MB

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

 

program.cs
0.00MB
music_07_00.cs
0.01MB
music_07_00.Designer.cs
0.01MB



/*
람다식 문법 : (입력 파라미터) => { 실행문장 블럭 };

C# 3.0부터 지원하는 => 연산자는 C#에서 람다식(Lambda Expression)을 표현할 때 사용한다. 
람다식은 무명 메서드와 비슷하게 무명 함수(anonymous function)를 표현하는데 사용된다. 
람다식은 아래와 같이 입력 파라미터(0개 ~ N개)를 => 연산자 왼쪽에, 실행 문장들을 => 연산자 오른쪽에 둔다.
*/

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        Func<int, int> DoubleFunc = (num) => num * 2;

        int nummmm = 10;
        Console.WriteLine(DoubleFunc(nummmm));         
    }
}

/* 원본과 위는 람다식표현으로 바꾼,ㅡㅡㅡㅡ
class Program
{
    static int DoubleFunc(int num)
    {
        return num * 2;
    }
    static void Main(string[] args)
    {
        Console.WriteLine(DoubleFunc(10));
    }
}
*/




IN cmd
>mode con cols=80 lines=50

'c# 언어' 카테고리의 다른 글

basic 3*3 frm hexa,cs,code  (0) 2023.07.13
Xamarin 1.1 자마린 소개,교육자료  (0) 2023.07.10
REDIS 필수정리  (0) 2022.08.31
객체 지향(Object oriented) 프로그래밍  (0) 2022.06.17
tris::common_chek(int direction)::final  (0) 2022.04.18



/*
public int CompareTo (Version? value);

매개 변수
현재 Version 개체와 비교할 Version 개체이거나, null입니다.

반환 값 의미
0보다 작음 현재 Version 개체가 value 이전의 버전입니다.
0 현재 Version 개체가 value와 같은 버전입니다.
0보다 큼 현재 Version 개체가 value 이후의 버전이거나 value이 null입니다.
*/
/*
설명

이 메서드는 인터페이스를 System.IComparable<T> 구현하고 매개 변수의 받은 편지함을 value 해제할 필요가 없으므로 메서드보다 CompareTo 약간 더 잘 수행합니다.
중요도를 줄이는 의 구성 요소는 Version 주, 부, 빌드 및 수정입니다. 
알 수 없는 구성 요소는 알려진 구성 요소보다 오래된 것으로 간주됩니다. 
예를 들면 다음과 같습니다.

버전 1.1은 버전 1.1.0보다 이전 버전입니다.
버전 1.1은 버전 1.1.1보다 이전 버전입니다.
버전 1.1은 버전 1.1.2.3보다 이전 버전입니다.
버전 1.1.2는 버전 1.1.2.4보다 이전 버전입니다.
버전 1.2.5는 버전 1.2.3.4보다 최신 버전입니다.
*/

using System;

class Program
{
    public static void Main()
    {
        VersionManage nm = new VersionManage();
nm.running();
    }
}
class VersionManage
{
    public void running()
    {
        Version serverVersion = new Version("23.06.07.01");
        Version localVersion = new Version("10.1.20");

if (serverVersion.CompareTo((object)localVersion) > 0)
{
    Console.WriteLine("UPDATE NEEDED!!");
}
else
{
    Console.WriteLine("SAME!!");
}
    }
}

/*
C:\Users\xterm\Downloads>aa12
UPDATE NEEDED!!
*/

    

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;

public class MyFormControl : Form
{
    public delegate void AddListItem(String myString);
    public AddListItem myDelegate;
    private Button myButton;
    private Thread myThread;
    private ListBox myListBox;
    public MyFormControl()
    {
        myButton = new Button();
        myListBox = new ListBox();
        myButton.Location = new Point(72, 160);
        myButton.Size = new Size(152, 32);
        myButton.TabIndex = 1;
        myButton.Text = "Add items in list box";
        myButton.Click += new EventHandler(Button_Click);
        myListBox.Location = new Point(48, 32);
        myListBox.Name = "myListBox";
        myListBox.Name = "myListBox";
        myListBox.Size = new Size(200, 95);
        myListBox.TabIndex = 2;
        ClientSize = new Size(292, 273);
        Controls.AddRange(new Control[] {myListBox,myButton});
        Text = " 'Control_Invoke' example ";
        myDelegate = new AddListItem(AddListItemMethod);
    }
    static void Main()
    {
        MyFormControl myForm = new MyFormControl();
        myForm.ShowDialog();
    }
    public void AddListItemMethod(String myString)
    {
        myListBox.Items.Add(myString);
    }
    private void Button_Click(object sender, EventArgs e)
    {
        myThread = new Thread(new ThreadStart(ThreadFunction));
        myThread.Start();
    }
    private void ThreadFunction()
    {
        MyThreadClass myThreadClassObject  = new MyThreadClass(this);
        myThreadClassObject.Run();
    }
}

//In Logic,,,,,,Thread, When must control "UI Control", then, "Invoke", "BeginInvoke" use ,,,,!!!!!!
//In Logic,,,,,,Thread, When must control "UI Control", then, "Invoke", "BeginInvoke" use ,,,,!!!!!!
public class MyThreadClass
{
    MyFormControl myFormControl1;
    public MyThreadClass(MyFormControl myForm)
    {
        myFormControl1 = myForm;
    }
    String myString;

    public void Run()
    {
        for (int i = 1; i <= 5; i++)
        {
            myString = "Step number " + i.ToString() + " executed";
            Thread.Sleep(1000);

            myFormControl1.Invoke(myFormControl1.myDelegate,
            new Object[] {myString});
        }
    }
}

/*
Invoke란
1. Control.Invoke
> 컨트롤의 내부 핸들이 있는 스레드에서 지정된 대리자를 실행하는 방법
: UI 컨트롤 스레드에서 실행되지만 호출 스레드가 실행되기 앞서 기존 스레드 완료를 기다리고 호출된다.

2. Delegate.Invoke
> 동일한 스레드에서 사용할 대리자를 동기적으로 실행하는 방법

** Invoke 정리
> 컨트롤의 본인 스레드가 아닌 다른 스레드를 이용하여 해당 컨트롤 객체를 동기식으로 실행하는 방법이다.
*/

/*
Invoke 메서드 구조

public Object Invoke(
        Delegate method, --대리자 메서드
        params Object[] args -- 대리자 파라미터 (생략 가능)
)
*/

APMFileDownLoadDlg.cpp
0.03MB
APMFileDownLoad.cpp
0.00MB
MM.cs
0.00MB


/*
텍스트파일을 모두 대문자로 바꾸어서 문자열을 찾을때에,ㅡㅡㅡㅡㅡㅡ
*/


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Timers;
using System.Diagnostics;
using System.Xml.XPath;
using System.Reflection;
using System.Collections;
using System.Xml;
using System.IO;
using System.Net;


class Program
{
    public static void Main()
    {
        MMMMMMMM nm = new MMMMMMMM();
nm.running();
    }
}
class MMMMMMMM
{    
    void ____read_txt(string filename)
    {
        int kk, ii;
        string mmmText = "";
        string mmmsubText = "";
        string ____findStr = "SERVERINFO.XML";

        mmmText = Syste m.IO.File.ReadAllText(filename); 
        mmmText = mmmText.ToUpper();
        Console.WriteLine(mmmText);
    }
    public void running()
    {
        int kk;

        string folderName = Syste m.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); 
        string[] files = Directory.GetFiles(folderName, "*", SearchOption.AllDirectories);

        for(kk=0; kk<files.Length; kk++)
        {
            Console.WriteLine(files[kk]);

            if(files[kk].IndexOf(".cpp") >=0)
            {
                ____read_txt(files[kk]);
            }
        }
    }
}




/*
기존에 사용해왔던 방식대로, 구조체를 구성한다면, 아무런 문제없이 변수를 사용할수 있다.
즉 public만 사용해서, 코드를 구상한다고 생각하면, 기존처럼 코딩해도 아무런 문제가 없음,,,,,,,,,,,
그러나, 변수에 직접접근을 허락하지 않게 하려면, private, public의 기법을 사용해서 아래와 같이 접근할수 있다. 
*/

/*
private, public을 사용하면 좋은예제는, 
주식에서 삼성전자 현재가격을 내부  private 변수에 세팅하고, public 변수를 통해서 삼성전자현재 가격을 얻는다면
아주좋은 케이스일것 같다.
삼성전자현재가 가격은 마음대로 누구나가 셋팅할수 없는 변수라고 생각하면 된다.
웹페이지등에서 조회시에 public 변수로 조회하면 적당할듯하다.
*/

namespace TailCommon{
public class StockHyunPriceSearch
{
    private static StockHyunPriceSearch hyun;
    private StockHyunPriceSearch() { }
    public static StockHyunPriceSearch GetInstance
    {
        get
        {
            if (hyun == null)
            hyun = new StockHyunPriceSearch();
            return hyun;
        }
    }
    private IntPtr hyunValue;
    public IntPtr HyunValue
    {
        get { return hyunValue; }
    }
    public IntPtr SecurityNeededHyunValue
    {
        set { hyunValue = value; }
    }
}}

ex)
using namespace & DLL참조를해서 사용시에, 아래와 같은 코드는 허용될까(?),  곰곰히 한번 생각해보자.

using TailCommon;

TAILMemory.GetInstance.tailHandle = 10; (?)
Console.WriteLine(TAILMemory.GetInstance.tailHandle); (?)

/*
값의 입력은 private로
값의 조회는 public 으로,ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
*/



Remove item from Dropdownitems in a context menustrip(?)

void DeleteItem()
{
    foreach (ToolStripItem oSubitem in ListMenuItem.DropDownItems)
    {
        if (oSubitem is ToolStripMenuItem)
        {
            if (oSubitem.Text.StartsWith("Show"))
            {
                ListMenuItem.DropDownItems.RemoveAt(1);
            }
       }
   }
}

+ Recent posts