C#
-
C# XML 파일 읽기/쓰기닷넷/C# 2023. 3. 28. 16:42
C#에서 XML 파일을 읽고 쓰는 방법은 여러 가지가 있습니다. 다음은 각 방법과 코드 예시입니다. 1. XmlReader를 사용하여 XML 파일을 읽고 쓰는 방법 1) XML 파일 읽기 (1) XmlReader를 사용하여 XML 파일을 읽습니다. using System.Xml; XmlReader xmlReader = XmlReader.Create("file.xml"); (2) XmlReader에서 필요한 데이터를 읽습니다. while (xmlReader.Read()) { if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "node") { // Do something with the data } } (3) XMLReader를 닫습니다...
-
C# WPF TextBlock이 렌더링 되지 않은 상태에서 ActualWidth 값이 계산되게 하는 방법닷넷/WPF 2023. 3. 28. 15:50
만약 TextBlock의 ActualWidth에 따라서 어떤 작업이 진행되어야 하는 경우에, 뷰모델에서는 이 TextBlock의 정보를 알 수 없는 경우에 말이다. 뷰모델에서 내부적으로 TextBlock을 정의하여 사용한다면 TextBlock이 렌더링이 된 것이 아니기 때문에 ActualWidth 값은 null일 수 밖에 없다. 이 경우에 ActualWidth 값을 알 수 있게 계산할 수 있는 방법이다. TextBlock textBlock = new TextBlock(); textBlock.FontSize = 14; textBlock.Text = SelectedText; textBlock.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity..
-
C# WinForms DataGridView 복사 후 워드에 저장하기닷넷/WinForms 2023. 3. 21. 17:47
2018.07.20 - [C#/WinForm] - C# DataGridView 엑셀 출력 빠르게 하기 (복사&붙여넣기) C# DataGridView 엑셀 출력 빠르게 하기 (복사&붙여넣기) 이전에 포스팅한 2017/05/24 - [프로그래밍/C#] - C# DataGridView 데이터 엑셀파일에 저장 using oledb 은 데이터그리드뷰의 데이터를 엑셀파일로 출력할 때 속도가 느리다는 단점이 있다. 어떻게 하면 빠르 jasmintime.com 여기서 DataGridView의 데이터를 클립보드에 저장한 걸 응용해서 Word에 붙여넣기하는 방식은 다음과 같습니다. // 데이터그리드뷰 전체 선택 dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMod..
-
C# WPF TextBlock의 Text를 오른쪽에서 왼쪽으로 애니메이션(BeginAnimation, 롤링) 하는방법닷넷/WPF 2023. 3. 21. 13:10
1. MainWindow.xaml 뷰에는 텍스트를 입력하는 TextBox와 TextBox에 입력된 텍스트가 바인딩되는 TextBlock이 있습니다. 2. MainWindow.xaml.cs 뷰의 비하인드 코드에 TextBlock의 크기가 Canvas 크기를 넘어가면 애니메이션이 시작되고, 넘어가지 않으면 중지되는 StartRollingAnimation 메소드를 작성합니다. using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Animation; namespace WPF_TextBlocK_Rolling { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public pa..
-
[WPF WebBrowser] C#에서 자바스크립트 함수를 호출하거나 자바스크립트에서 C# 메소드를 호출하는 방법닷넷/WPF 2023. 3. 20. 16:50
2022.08.03 - [C#/WinForm] - WebBrowser 자바스크립트에서 C# 메소드를 호출하는 방법 WebBrowser 자바스크립트에서 C# 메소드를 호출하는 방법 namespace WindowsFormsApplication6 { // This first namespace is required for the ComVisible attribute used on the ScriptManager class. using System.Runtime.InteropServices; using System.Windows.Forms; // This is your form. public partial class Form1 : Form jasmintime.com WPF에서는 뷰와 뷰모델을 분리하여 호출하는 방..
-
C# 계산오류? 부동 소수점에 대해 알아보자닷넷/C# 2023. 3. 2. 15:57
최근에 닷넷 오픈모임방에서 질문이 하나 올라왔다. [????] [오후 5:53] C#에서 100-63.1 하면 36.9라는 결과가 나오는데 [????] [오후 5:53] 100-64.1을 하면 35.900000000000006 라는 결과가 출력됩니다 [????] [오후 5:53] 이유가 뭔지 알 수 있을까요? [????] [오후 5:53] 사진 [????] [오후 5:54] 제 PC가 이상한걸까요.. 아님 원래 그런걸까요.. 이렇게 나오는 원인은 근사치로 계산 되는 부동 소수점 때문이다. 100-64.1부터 근사치가 되는 이유는? 64.1은 십진수에서는 정확한 수이지만, 이진수에서는 정확하게 표현할 수 없는 수이다. 따라서 부동 소수점으로 표현할 때 근사치가 된다. 즉, 64.1을 이진수로 변환하면 10..
-
C# WinForms DevExpress CheckedListBoxControl에 바인딩 된 아이템들 중에서 특정 아이템만 체크/미체크 안 되게 비활성화 하는 방법닷넷/WinForms 2023. 2. 24. 18:07
DevExpress의 CheckedListBoxControl에서 아이템들 전체가 선택이 안 되게 하는 방법은 CheckedListBoxControl를 비활성화 시키는 checkedListBoxControl1.Enabled = false; 를 한다. 전체 비활성화가 아닌, 일부 아이템만 선택이 안 되는 비활성화 시키는 방법은 CheckedListBoxControl의 GetItemEnabled 이벤트를 사용하면 된다. CheckedListBoxControl의 아이템들 중에서 특정 항목들만 체크/미체크가 안 되게 비활성화 하는 방법 예제 코드 // CheckedListBoxControl를 사용하는 화면의 소스 코드 파일에서 // CheckedListBoxControl에 데이터소스 바인딩 및 // 이벤트를 통해..
-
아무리 구글링을 해도 관련 글을 찾을 수가 없어서 ChatGPT를 사용해 보았다. 비주얼 스튜디오에서 Any CPU로 빌드를 했을 때 실행파일 타입은 32비트로 나온다면 64비트로 작동하는 게 맞을까?기타 정보/정보공유-IT 2023. 2. 2. 12:05
회사에서 32비트 프로젝트를 64비트로 전환을 하는 중에 클라이언트 중에 32비트 PC가 있을 수도 있으니 32비트용, 64비트용 두 가지로 나누는 건 복잡해진다고 Any CPU로 하라고 전달을 받았다. Windows 10 64비트 컴퓨터에 있는 비주얼 스튜디오에서 Any CPU로 빌드를 했을 때 실행파일 타입이 32비트로 나온다면 64비트로 작동하는 게 맞을까? 64비트로 전환 할 때 Any CPU로 하지 않은 이유 중에 하나였다. 그동안 이 궁금증은 묻어만 두고 있다가 요근래 구글링을 해 보았지만 엉뚱한 결과물들만 나올 뿐이었다. 그래서 요새 유명해지고 있는 ChatGPT에 드디어 가입을 한 후 사용해보았다. 사용방법은 간단했다. https://chat.openai.com/chat 에서 로그인 혹은 ..
-
CefSharp 런타임 에러가 발생 하는 이유, Any CPU로 했을 때도 문제 없이 되게 하는 방법기타 정보/정보공유-IT 2023. 2. 1. 14:05
비주얼 스튜디오에서 C# Winform 프로젝트를 예로 들면, 프로젝트에 웹브라우저를 크로미움으로 쓴다면 누겟에서 CefSharp 패키지를 설치하는 것은 필연적으로 해야 하는 일이다. 그렇게 프로젝트에 CefSharp 관련 라이브러리들을 사용한 코드들을 완성하고 빌드를 하려고 하는데 빌드가 되지 않거나 런타임 에러가 발생하는 경우가 있다. 에러 메시지는 다음과 같이 두 가지 중에 하나가 나올 것이다. System.IO.FileNotFoundException: '파일이나 어셈블리 'CefSharp.Core.Runtime, Version=96.0.180.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할..
-
C# URL 파라미터 인코딩 방법 (특수문자가 있는 경우에 사용)닷넷/C# 2022. 10. 19. 16:14
2018.10.30 - [프로그래밍/C# (WinForms, ASP.NET)] - C# URL에 들어가는 한글 UTF-8 Encoding private string GetData() { string result = string.Empty; string url = "https://api.com?value="; string value = "[value]"; // 인코딩하는 방법 string valueEncoding = System.Web.HttpUtility.UrlEncode(value); // 인코딩한 내용을 디코딩하는 방법 string valueDecoding = System.Web.HttpUtility.UrlDecode(valueEncoding); HttpWebRequest request = (Http..
-
C# DevExpress GridControl 열 전체 선택, 헤더에 체크박스 넣는 법닷넷/WinForms 2022. 8. 25. 15:58
데브익스프레스 c# Winforms 에서 GridControl의 헤더 체크박는 넣는 방법 아래와 같이 소스파일에 코딩을 한다. #region 체크 박스 그리기 - DrawCheckBox(graphics, rectangle, isChecked) /// /// 체크 박스 그리기 /// /// /// /// 그래픽스 /// /// 사각형 /// /// 체크 여부 protected void DrawCheckBox(Graphics graphics, Rectangle rectangle, bool isChecked) { DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo checkEditViewInfo = this.repositoryItemCheckEdit1.CreateViewI..
-
[WinForms WebBrowser] 자바스크립트에서 C# 메소드를 호출하는 방법닷넷/WinForms 2022. 8. 3. 13:50
namespace WindowsFormsApplication6 { // This first namespace is required for the ComVisible attribute used on the ScriptManager class. using System.Runtime.InteropServices; using System.Windows.Forms; // This is your form. public partial class Form1 : Form { // This nested class must be ComVisible for the JavaScript to be able to call it. [ComVisible(true)] public class ScriptManager { // Variab..
-
C# WebBrowser IE버전 알맞게 변경하는 방법닷넷/WinForms 2022. 8. 3. 13:45
public Form1() { InitializeComponent(); SetBrowserEmulationVersion(); } private const string InternetExplorerRootKey = @"Software\Microsoft\Internet Explorer"; private const string BrowserEmulationKey = InternetExplorerRootKey + @"\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; public enum BrowserEmulationVersion { Default = 0, Version7 = 7000, Version8 = 8000, Version8Standards = 8888, Version..
-
C# WebBrowser 쿠키 삭제 방법닷넷/WinForms 2022. 8. 3. 13:43
public Form1() { InitializeComponent(); //Temporary Internet Files System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 8"); //Cookies() System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 2"); //History() System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 1"); //Form(Data) System.Diagnostics.Proce..
-
C# WinForms에서 레이아웃 깨지는 문제 해결 방법. 디스플레이 해상도, 텍스트 배율 안 따라게 하기닷넷/WinForms 2022. 2. 22. 17:37
사용자들이 윈폼에서 레이아웃이 깨진다고 표현하는 현상은 사용자의 디스플레이 상태가 개발 환경과 다른 경우 종종 일어날 수 있는 일이다. 해상도에 따라서 레이아웃이 깨진다면, Form 속성에 AutoScaleMode를 이용하면 깨지지 않게 할 수 있다. AutoScaleMode에서 Inherit은 클래스의 부모 확장 모드에 따라 배율을 제어한다. 부모가 없는 경우 자동 스케일링이 비활성화된다. 즉, 부모 폼이 있다면 자식 폼이 부모 폼의 AutoScaleMode를 따라간다. Font는 클래스가 사용하고 있는 글꼴의 치수에 상대적인 축척(일반적으로 시스템 글꼴)을 제어한다. 윈폼에서 AutoScaleMode는 기본적으로 Font로 설정되어 있어서 개발 도중에도 폰트를 바꾼다거나 크기를 바꾸게 되면 이에 따라..