728x90
반응형
728x170
■ Windows Forms 응용 프로그램에서 데이터 입력을 수행하기 위해 WPF 복합 컨트롤을 호스팅하는 응용 프로그램을 작성한다.
[TestLibrary 프로젝트]
▶ CustomControlEventArgs.cs
using System;
namespace TestLibrary
{
/// <summary>
/// 커스텀 컨트롤 이벤트 인자
/// </summary>
public class CustomControlEventArgs : EventArgs
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// OK 버튼 클릭 여부
/// </summary>
private bool okButtonClicked;
/// <summary>
/// 명칭
/// </summary>
private string name;
/// <summary>
/// 주소
/// </summary>
private string address;
/// <summary>
/// 도시
/// </summary>
private string city;
/// <summary>
/// 주
/// </summary>
private string state;
/// <summary>
/// 우편 번호
/// </summary>
private string zip;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region OK 버튼 클릭 여부 - OKButtonClicked
/// <summary>
/// OK 버튼 클릭 여부
/// </summary>
public bool OKButtonClicked
{
get
{
return this.okButtonClicked;
}
set
{
this.okButtonClicked = value;
}
}
#endregion
#region 명칭 - Name
/// <summary>
/// 명칭
/// </summary>
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
#endregion
#region 주소 - Address
/// <summary>
/// 주소
/// </summary>
public string Address
{
get
{
return this.address;
}
set
{
this.address = value;
}
}
#endregion
#region 도시 - City
/// <summary>
/// 도시
/// </summary>
public string City
{
get
{
return this.city;
}
set
{
this.city = value;
}
}
#endregion
#region 주 - State
/// <summary>
/// 주
/// </summary>
public string State
{
get
{
return this.state;
}
set
{
this.state = value;
}
}
#endregion
#region 우편 번호 - Zip
/// <summary>
/// 우편 번호
/// </summary>
public string Zip
{
get
{
return this.zip;
}
set
{
this.zip = value;
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Consturctor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - CustomControlEventArgs(okButtonClicked, name, address, city, state, zip)
/// <summary>
/// 생성자
/// </summary>
/// <param name="okButtonClicked">OK 버튼 클릭 여부</param>
/// <param name="name">명칭</param>
/// <param name="address">주소</param>
/// <param name="city">도시</param>
/// <param name="state">주</param>
/// <param name="zip">우편 번호</param>
public CustomControlEventArgs(bool okButtonClicked, string name, string address, string city, string state, string zip)
{
this.okButtonClicked = okButtonClicked;
this.name = name;
this.address = address;
this.city = city;
this.state = state;
this.zip = zip;
}
#endregion
}
}
▶ CustomControl.xaml
<Grid Name="mainGrid" x:Class="TestLibrary.CustomControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="#dcdcdc">
<Grid.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="10 10 0 0" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontFamily" Value="나눔고딕코딩" />
<Setter Property="FontSize" Value="16" />
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="10 10 10 0" />
<Setter Property="Height" Value="25" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="FontFamily" Value="나눔고딕코딩" />
<Setter Property="FontSize" Value="16" />
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4"
HorizontalAlignment="Center"
Margin="10"
FontSize="20"
FontWeight="Bold"
Text="Simple WPF Control" />
<TextBlock Name="nameTextBlock" Grid.Row="1" Grid.Column="0"
Text="Name" />
<TextBox Name="nameTextBox" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" />
<TextBlock Name="addressTextBlock" Grid.Row="2" Grid.Column="0"
Text="Address" />
<TextBox Name="addressTextBox" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" />
<TextBlock Name="cityTextBlock" Grid.Row="3" Grid.Column="0"
Text="City" />
<TextBox Name="cityTextBox" Grid.Row="3" Grid.Column="1"
Width="100"
Height="25"
VerticalContentAlignment="Center" />
<TextBlock Name="stateTextBlock" Grid.Row="3" Grid.Column="2"
Text="State" />
<TextBox Name="stateTextBox" Grid.Row="3" Grid.Column="3"
Width="50" />
<TextBlock Name="zipTextBlock" Grid.Row="4" Grid.Column="0"
Text="Zip" />
<TextBox Name="zipTextBox" Grid.Row="4" Grid.Column="1"
Width="100" />
<Button Name="okButton" Grid.Row="5" Grid.Column="0"
Margin="10"
Width="100"
Height="30"
Content="OK" />
<Button Name="cancelButton" Grid.Row="5" Grid.Column="1"
Margin="10"
Width="100"
Height="30"
Content="Cancel" />
</Grid>
▶ CustomControl.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace TestLibrary
{
/// <summary>
/// 커스텀 컨트롤
/// </summary>
public partial class CustomControl : Grid
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Delegate
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 커스텀 컨트롤 이벤트 핸들러 - CustomControlEventHandler(sender, e)
/// <summary>
/// 커스텀 컨트롤 이벤트 핸들러
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
public delegate void CustomControlEventHandler(object sender, CustomControlEventArgs e);
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Event
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 버튼 클릭시 이벤트 - ButtonClick
/// <summary>
/// 버튼 클릭시 이벤트
/// </summary>
public event CustomControlEventHandler ButtonClick;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 배경 브러시
/// </summary>
private SolidColorBrush backgroundBrush;
/// <summary>
/// 전경 브러시
/// </summary>
private SolidColorBrush foregroundBrush;
/// <summary>
/// 폰트 패밀리
/// </summary>
private FontFamily fontFamily;
/// <summary>
/// 폰트 크기
/// </summary>
private double fontSize;
/// <summary>
/// 폰트 가중치
/// </summary>
private FontWeight fontWeight;
/// <summary>
/// 폰트 스타일
/// </summary>
private FontStyle fontStyle;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 배경 브러시 - BackgroundBrush
/// <summary>
/// 배경 브러시
/// </summary>
public SolidColorBrush BackgroundBrush
{
get
{
return this.backgroundBrush;
}
set
{
this.backgroundBrush = value;
this.mainGrid.Background = value;
}
}
#endregion
#region 전경 브러시 - ForegroundBrush
/// <summary>
/// 전경 브러시
/// </summary>
public SolidColorBrush ForegroundBrush
{
get
{
return this.foregroundBrush;
}
set
{
this.foregroundBrush = value;
this.nameTextBlock.Foreground = value;
this.addressTextBlock.Foreground = value;
this.cityTextBlock.Foreground = value;
this.stateTextBlock.Foreground = value;
this.zipTextBlock.Foreground = value;
}
}
#endregion
#region 폰트 패밀리 - FontFamily
/// <summary>
/// 폰트 패밀리
/// </summary>
public FontFamily FontFamily
{
get
{
return this.fontFamily;
}
set
{
this.fontFamily = value;
this.nameTextBlock.FontFamily = value;
this.addressTextBlock.FontFamily = value;
this.cityTextBlock.FontFamily = value;
this.stateTextBlock.FontFamily = value;
this.zipTextBlock.FontFamily = value;
}
}
#endregion
#region 폰트 크기 - FontSize
/// <summary>
/// 폰트 크기
/// </summary>
public double FontSize
{
get
{
return this.fontSize;
}
set
{
this.fontSize = value;
this.nameTextBlock.FontSize = value;
this.addressTextBlock.FontSize = value;
this.cityTextBlock.FontSize = value;
this.stateTextBlock.FontSize = value;
this.zipTextBlock.FontSize = value;
}
}
#endregion
#region 폰트 가중치 - FontWeight
/// <summary>
/// 폰트 가중치
/// </summary>
public FontWeight FontWeight
{
get
{
return this.fontWeight;
}
set
{
this.fontWeight = value;
this.nameTextBlock.FontWeight = value;
this.addressTextBlock.FontWeight = value;
this.cityTextBlock.FontWeight = value;
this.stateTextBlock.FontWeight = value;
this.zipTextBlock.FontWeight = value;
}
}
#endregion
#region 폰트 스타일 - FontStyle
/// <summary>
/// 폰트 스타일
/// </summary>
public FontStyle FontStyle
{
get
{
return this.fontStyle;
}
set
{
this.fontStyle = value;
this.nameTextBlock.FontStyle = value;
this.addressTextBlock.FontStyle = value;
this.cityTextBlock.FontStyle = value;
this.stateTextBlock.FontStyle = value;
this.zipTextBlock.FontStyle = value;
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - CustomControl()
/// <summary>
/// 생성자
/// </summary>
public CustomControl()
{
InitializeComponent();
Loaded += Grid_Loaded;
this.okButton.Click += button_Click;
this.cancelButton.Click += button_Click;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 그리드 로드시 처리하기 - Grid_Loaded(sender, e)
/// <summary>
/// 그리드 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Grid_Loaded(object sender, EventArgs e)
{
this.backgroundBrush = (SolidColorBrush)this.mainGrid.Background;
this.foregroundBrush = (SolidColorBrush)this.nameTextBlock.Foreground;
this.fontFamily = this.nameTextBlock.FontFamily;
this.fontSize = this.nameTextBlock.FontSize;
this.fontWeight = this.nameTextBlock.FontWeight;
this.fontStyle = this.nameTextBlock.FontStyle;
}
#endregion
#region 버튼 클릭시 처리하기 - button_Click(sender, e)
/// <summary>
/// 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void button_Click(object sender, RoutedEventArgs e)
{
CustomControlEventArgs customControlEventArgs = new CustomControlEventArgs
(
true,
this.nameTextBox.Text,
this.addressTextBox.Text,
this.cityTextBox.Text,
this.stateTextBox.Text,
this.zipTextBox.Text
);
if(sender == this.cancelButton)
{
customControlEventArgs.OKButtonClicked = false;
}
if(ButtonClick != null)
{
ButtonClick(this, customControlEventArgs);
}
}
#endregion
}
}
[TestProject 프로젝트]
▶ MainForm.cs
using System;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Media;
using TestLibrary;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 커스텀 컨트롤
/// </summary>
private CustomControl customControl;
private System.Windows.Media.SolidColorBrush initialBackgroundBrush;
private System.Windows.Media.SolidColorBrush initialForegroundBrush;
private System.Windows.Media.FontFamily initialFontFamily;
private double initialFontSize;
private System.Windows.FontWeight initialFontWeight;
private System.Windows.FontStyle initialFontStyle;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
Load += Form_Load;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 폼 로드시 처리하기 - Form_Load(sender, e)
/// <summary>
/// 폼 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Form_Load(object sender, EventArgs e)
{
this.customControl = new CustomControl();
this.customControl.InitializeComponent();
this.elementHost.Child = this.customControl;
this.customControl.ButtonClick += customControl_ButtonClick;
this.customControl.Loaded += customControl_Loaded;
this.originalBackgroundColorRadioButton.Click += originalBackgroundColorRadioButton_Click;
this.lightGreenBackgroundColorRadioButton.Click += lightGreenBackgroundColorRadioButton_Click;
this.lightSalmonBackgroundColorRadioButton.Click += lightSalmonBackgroundColorRadioButton_Click;
this.originalForegroundColorRadioButton.Click += originalForegroundColorRadioButton_Click;
this.redForegroundColorRadioButton.Click += redForegroundColorRadioButton_Click;
this.yellowForegroundColorRadioButton.Click += yellowForegroundColorRadioButton_Click;
this.originalFontFamilyRadioButton.Click += originalFontFamilyRadioButton_Click;
this.timesNewRomanFontFamilyRadioButton.Click += timesNewRomanFontFamilyRadioButton_Click;
this.windingsFontFamilyRadioButton.Click += windingsFontFamilyRadioButton_Click;
this.originalFontSizeRadioButton.Click += originalFontSizeRadioButton_Click;
this.twelveFontSizeRadioButton.Click += twelveFontSizeRadioButton_Click;
this.twentyFontSizeRadioButton.Click += twentyFontSizeRadioButton_Click;
this.originalFontStyleRadioButton.Click += originalFontStyleRadioButton_Click;
this.italicFontStyleRadioButton.Click += italicFontStyleRadioButton_Click;
this.originalFontWeightRadioButton.Click += originalFontWeightRadioButton_Click;
this.boldFontWeightRadioButton.Click += boldFontWeightRadioButton_Click;
}
#endregion
#region Original 배경색 라디오 버튼 클릭시 처리하기 - originalBackgroundColorRadioButton_Click(sender, e)
/// <summary>
/// Original 배경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalBackgroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.BackgroundBrush = this.initialBackgroundBrush;
}
#endregion
#region LightGreen 배경색 라디오 버튼 클릭시 처리하기 - lightGreenBackgroundColorRadioButton_Click(sender, e)
/// <summary>
/// LightGreen 배경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void lightGreenBackgroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.BackgroundBrush = new SolidColorBrush(Colors.LightGreen);
}
#endregion
#region LightSalmon 배경색 라디오 버튼 클릭시 처리하기 - lightSalmonBackgroundColorRadioButton_Click(sender, e)
/// <summary>
/// LightSalmon 배경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void lightSalmonBackgroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.BackgroundBrush = new SolidColorBrush(Colors.LightSalmon);
}
#endregion
#region Original 전경색 라디오 버튼 클릭시 처리하기 - originalForegroundColorRadioButton_Click(sender, e)
/// <summary>
/// Original 전경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalForegroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.ForegroundBrush = this.initialForegroundBrush;
}
#endregion
#region Red 전경색 라디오 버튼 클릭시 처리하기 - redForegroundColorRadioButton_Click(sender, e)
/// <summary>
/// Red 전경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void redForegroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.ForegroundBrush = new System.Windows.Media.SolidColorBrush(Colors.Red);
}
#endregion
#region Yellow 전경색 라디오 버튼 클릭시 처리하기 - yellowForegroundColorRadioButton_Click(sender, e)
/// <summary>
/// Yellow 전경색 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void yellowForegroundColorRadioButton_Click(object sender, EventArgs e)
{
this.customControl.ForegroundBrush = new System.Windows.Media.SolidColorBrush(Colors.Yellow);
}
#endregion
#region Original 폰트 패밀리 라디오 버튼 클릭시 처리하기 - originalFontFamilyRadioButton_Click(sender, e)
/// <summary>
/// Original 폰트 패밀리 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalFontFamilyRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontFamily = this.initialFontFamily;
}
#endregion
#region Times New Roman 폰트 패밀리 라디오 버튼 클릭시 처리하기 - timesNewRomanFontFamilyRadioButton_Click(sender, e)
/// <summary>
/// Times New Roman 폰트 패밀리 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void timesNewRomanFontFamilyRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontFamily = new System.Windows.Media.FontFamily("Times New Roman");
}
#endregion
#region Windings 폰트 패밀리 라디오 버튼 클릭시 처리하기 - windingsFontFamilyRadioButton_Click(sender, e)
/// <summary>
/// Windings 폰트 패밀리 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void windingsFontFamilyRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontFamily = new System.Windows.Media.FontFamily("WingDings");
}
#endregion
#region Original 폰트 크기 라디오 버튼 클릭시 처리하기 - originalFontSizeRadioButton_Click(sender, e)
/// <summary>
/// Original 폰트 크기 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalFontSizeRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontSize = this.initialFontSize;
}
#endregion
#region 12 폰트 크기 라디오 버튼 클릭시 처리하기 - twelveFontSizeRadioButton_Click(sender, e)
/// <summary>
/// 12 폰트 크기 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void twelveFontSizeRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontSize = 12;
}
#endregion
#region 20 폰트 크기 라디오 버튼 클릭시 처리하기 - twentyFontSizeRadioButton_Click(sender, e)
/// <summary>
/// 20 폰트 크기 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void twentyFontSizeRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontSize = 20;
}
#endregion
#region Original 폰트 스타일 라디오 버튼 클릭시 처리하기 - originalFontStyleRadioButton_Click(sender, e)
/// <summary>
/// Original 폰트 스타일 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalFontStyleRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontStyle = this.initialFontStyle;
}
#endregion
#region Italic 폰트 스타일 라디오 버튼 클릭시 처리하기 - italicFontStyleRadioButton_Click(sender, e)
/// <summary>
/// Italic 폰트 스타일 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void italicFontStyleRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontStyle = System.Windows.FontStyles.Italic;
}
#endregion
#region Original 폰트 가중치 라디오 버튼 클릭시 처리하기 - originalFontWeightRadioButton_Click(sender, e)
/// <summary>
/// Original 폰트 가중치 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void originalFontWeightRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontWeight = this.initialFontWeight;
}
#endregion
#region Bold 폰트 가중치 라디오 버튼 클릭시 처리하기 - boldFontWeightRadioButton_Click(sender, e)
/// <summary>
/// Bold 폰트 가중치 라디오 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void boldFontWeightRadioButton_Click(object sender, EventArgs e)
{
this.customControl.FontWeight = FontWeights.Bold;
}
#endregion
#region 커스텀 컨트롤 로드시 처리하기 - customControl_Loaded(sender, e)
/// <summary>
/// 커스텀 컨트롤 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void customControl_Loaded(object sender, RoutedEventArgs e)
{
this.initialBackgroundBrush = (System.Windows.Media.SolidColorBrush)this.customControl.BackgroundBrush;
this.initialForegroundBrush = this.customControl.ForegroundBrush;
this.initialFontFamily = this.customControl.FontFamily;
this.initialFontSize = this.customControl.FontSize;
this.initialFontWeight = this.customControl.FontWeight;
this.initialFontStyle = this.customControl.FontStyle;
}
#endregion
#region 커스텀 컨트롤 버튼 클릭시 처리하기 - customControl_ButtonClick(sender, e)
/// <summary>
/// 커스텀 컨트롤 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void customControl_ButtonClick(object sender, CustomControlEventArgs e)
{
if(e.OKButtonClicked)
{
this.addressLabel.Text = "Address : " + e.Address;
this.cityLabel.Text = "City : " + e.City;
this.nameLabel.Text = "Name : " + e.Name;
this.stateLabel.Text = "State : " + e.State;
this.zipLabel.Text = "Zip : " + e.Zip;
}
else
{
this.addressLabel.Text = "Address :";
this.cityLabel.Text = "City :";
this.nameLabel.Text = "Name :";
this.stateLabel.Text = "State :";
this.zipLabel.Text = "Zip :";
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] ElementHost 클래스 : PropertyMap 속성을 사용해 WPF 엘리먼트 속성 매핑 설정하기 (0) | 2023.01.01 |
---|---|
[C#/WINFORM] ElementHost 클래스 : WPF 복합 컨트롤 사용하기 (0) | 2023.01.01 |
[C#/WINFORM] RNGCryptoServiceProvider 클래스 : GetBytes 메소드를 사용해 임시 패스워드 생성기 만들기 (0) | 2022.11.05 |
[C#/WINFORM/.NET6] 이미지 RTF 구하기 (0) | 2022.10.30 |
[C#/WINFORM/.NET6] 마우스 이벤트 발생시키기 (0) | 2022.10.22 |
[C#/WINFORM/.NET6] Point 구조체 : 선의 왼쪽 포인트 여부 구하기 (0) | 2022.10.19 |
[C#/WINFORM/.NET6] 별점(Star Rating) 그리기 (0) | 2022.10.14 |
[C#/WINFORM/.NET6] 비주얼 스튜디오 2022에서 단일 실행 파일 배포하기 (0) | 2022.10.10 |
[C#/WINFORM/.NET6] ISynchronizeInvoke 인터페이스 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] MethodInvoker 대리자 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
댓글을 달아 주세요