솔루션에 fp5,fp13 포함

This commit is contained in:
chi
2020-05-24 21:15:53 +09:00
parent 9e83bd63bd
commit 32ebea03fb
517 changed files with 170275 additions and 120 deletions

Binary file not shown.

View File

@@ -1,9 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
# Visual Studio Version 16
VisualStudioVersion = 16.0.29709.97
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MyControlOLEDBv2", "MyControlOLEDBv2\MyControlOLEDBv2.vbproj", "{326F9A0F-F714-432D-81CB-CED39EC6C424}"
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MyControlOLEDBv2_fp5", "Spread.Net.v5\MyControlOLEDBv2_fp5.vbproj", "{326F9A0F-F714-432D-81CB-CED39EC6C424}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MyControlOLEDBv2_fp13", "Spread.Net.v13\MyControlOLEDBv2_fp13.vbproj", "{0BC58028-0840-4EB3-84D4-7982B0550E1A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,8 +17,15 @@ Global
{326F9A0F-F714-432D-81CB-CED39EC6C424}.Debug|Any CPU.Build.0 = Debug|Any CPU
{326F9A0F-F714-432D-81CB-CED39EC6C424}.Release|Any CPU.ActiveCfg = Release|Any CPU
{326F9A0F-F714-432D-81CB-CED39EC6C424}.Release|Any CPU.Build.0 = Release|Any CPU
{0BC58028-0840-4EB3-84D4-7982B0550E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0BC58028-0840-4EB3-84D4-7982B0550E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BC58028-0840-4EB3-84D4-7982B0550E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0BC58028-0840-4EB3-84D4-7982B0550E1A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B10084D4-65A2-4165-B334-1833605547AC}
EndGlobalSection
EndGlobal

View File

@@ -1 +0,0 @@
FarPoint.Win.Spread.FpSpread, FarPoint.Win.Spread, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<PublishUrlHistory>
</PublishUrlHistory>
<InstallUrlHistory>
</InstallUrlHistory>
<SupportUrlHistory>
</SupportUrlHistory>
<UpdateUrlHistory>
</UpdateUrlHistory>
<BootstrapperUrlHistory>
</BootstrapperUrlHistory>
<FallbackCulture>ko-KR</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,13 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On

View File

@@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
' 어셈블리와 관련된 정보를 수정하려면
' 이 특성 값을 변경하십시오.
' 어셈블리 특성 값을 검토합니다.
<Assembly: AssemblyTitle("MyControlOLEDBv2")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("MICROSOFT")>
<Assembly: AssemblyProduct("MyControlOLEDBv2")>
<Assembly: AssemblyCopyright("Copyright (C) MICROSOFT 2007")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
<Assembly: Guid("faf04807-27f6-4f69-b4e5-c1a2d61add2e")>
' 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
'
' 주 버전
' 부 버전
' 빌드 번호
' 수정 버전
'
' 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
' 지정되도록 할 수 있습니다.
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("15.09.10.1405")>
<Assembly: AssemblyFileVersion("15.09.10.1405")>

View File

@@ -0,0 +1,93 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
'클래스에서 자동으로 생성되었습니다.
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
'''<summary>
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MyControlOLEDBv2.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
''' 재정의합니다.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property close_32() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("close_32", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property new_32() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("new_32", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property srch_32() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("srch_32", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings 자동 저장 기능"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.MyControlOLEDBv2.My.MySettings
Get
Return Global.MyControlOLEDBv2.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1 @@
FarPoint.Win.Spread.FpSpread, FarPoint.Win.Spread, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457

View File

@@ -0,0 +1,183 @@
Imports System.Text
Imports System.Data
Public Class MyCheckBox
Dim ColName As String
Dim Coltype As OleDbType
Dim Ditem As Boolean
Dim CheckVal As String
Dim UnCheckVal As String
Dim otherval As Boolean
Dim Prompt As String
Dim WhereState As String = vbNullString
Dim POS As Int16
Protected Var_ViewColNumber As Short
Protected Var_BaseLabel As Label
Private VAR_USERCLICK As Boolean = False '//우클릭시 비활성화되는데 그 기능의 사용여부이다.
''' <summary>
''' 우클릭시 컨트롤 비활성화 기능여부
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("우클릭시 컨트롤 비활성화 기능의 사용여부")> _
Public Property DB_USERCLICK() As Boolean
Get
Return VAR_USERCLICK
End Get
Set(ByVal value As Boolean)
VAR_USERCLICK = value
End Set
End Property
''' <summary>
''' 이 컨트롤과 연결된 레이블을 설정/반환 합니다.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("이 컨트롤과 연결된 문자를 나타낼 레이블을 선택합니다")> _
Public Property DB_BaseLabel() As Label
Get
Return Var_BaseLabel
End Get
Set(ByVal value As Label)
'//데이터가 들어오면 현재의 프롬프트를 갱신합니다.
Var_BaseLabel = value
Me.DB_Prompt = Prompt
End Set
End Property
''' <summary>
''' 검색블럭에 속해있을때의 검색조건
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("검색블럭아이템일경우" & vbCrLf & "검색조건을 입력합니다. >= <= LIKE")> _
Public Property DB_WhereType() As String
Get
Return WhereState
End Get
Set(ByVal value As String)
WhereState = value
End Set
End Property
<System.ComponentModel.Description("컬럼의 제목입니다.")> _
Public Property DB_Prompt() As String
Get
Return IIf(Prompt Is vbNullString, DB_ColName, Prompt)
End Get
Set(ByVal value As String)
Prompt = value
End Set
End Property
<System.ComponentModel.Description("데이터베이스 컬럼")> _
Public Property DB_ColName() As String
Get
If ColName = "" Then
Return Me.Name
Else
Return ColName
End If
End Get
Set(ByVal value As String)
ColName = value
DB_Prompt = value
End Set
End Property
<System.ComponentModel.Description("지정된값외의 값이 입력되었을때 Check/UnCheck 선택")> _
Public Property DB_OtherValue() As Boolean
Get
Return otherval
End Get
Set(ByVal value As Boolean)
otherval = False
End Set
End Property
<System.ComponentModel.Description("선택했을때의 ")> _
Public Property DB_CheckValue() As String
Get
Return CheckVal
End Get
Set(ByVal value As String)
CheckVal = value
End Set
End Property
<System.ComponentModel.Description("비선택시 ")> _
Public Property DB_UnCheckVal() As String
Get
Return UnCheckVal
End Get
Set(ByVal value As String)
UnCheckVal = value
End Set
End Property
<System.ComponentModel.Description("현재 컨트롤 값을 Set/Return 비활성일시 NOTHING 반환")> _
Public Property Value() As String
Get
If Me.CheckState = System.Windows.Forms.CheckState.Indeterminate Then
Return Nothing
Else
Return IIf(Me.Checked, CheckVal, UnCheckVal)
End If
End Get
Set(ByVal value As String)
Select Case value
Case CheckVal
Me.Checked = True
Case UnCheckVal
Me.Checked = False
Case Else
Me.Checked = otherval
End Select
End Set
End Property
<System.ComponentModel.Description("데이터베이스 컬럼의 타입")> _
Public Property DB_Type() As OleDbType
Get
Return Coltype
End Get
Set(ByVal value As OleDbType)
Coltype = value
End Set
End Property
<System.ComponentModel.Description(" 아이템이 데이터베이스 컬럼인가?")> _
Public Property DB_ITEM() As Boolean
Get
Return Ditem
End Get
Set(ByVal value As Boolean)
Ditem = value
End Set
End Property
Private Sub CheckBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}")
If Me.VAR_USERCLICK AndAlso e.KeyCode = Keys.Escape Then '//우측버튼 클릭시 비활성화한다
Me.CheckState = System.Windows.Forms.CheckState.Indeterminate
End If
End Sub
Private Sub CheckBox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If Me.VAR_USERCLICK AndAlso e.Button = System.Windows.Forms.MouseButtons.Right Then '//우측버튼 클릭시 비활성화한다
Me.CheckState = System.Windows.Forms.CheckState.Indeterminate
End If
End Sub
End Class

View File

@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0BC58028-0840-4EB3-84D4-7982B0550E1A}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MyControlOLEDBv2</RootNamespace>
<AssemblyName>MyControlOLEDBv2</AssemblyName>
<MyType>Windows</MyType>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<IsWebBootstrapper>true</IsWebBootstrapper>
<PublishUrl>http://localhost/MyControlOLEDBv2/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<BootstrapperEnabled>true</BootstrapperEnabled>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<ApplicationRevision>0</ApplicationRevision>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="FarPoint.CalcEngine, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Excel, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Localization, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PDF, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Chart, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Spread, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL" />
<Reference Include="GrapeCity.CalcEngine, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="GrapeCity.Spreadsheet, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="GrapeCity.Spreadsheet.Win, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="GrapeCity.Win.PluginInputMan, Version=13.45.20191.0, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.ComponentModel" />
<Import Include="System.Data" />
<Import Include="System.Data.OleDb" />
<Import Include="System.Diagnostics" />
<Import Include="System.Drawing" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="lov.Designer.vb">
<DependentUpon>lov.vb</DependentUpon>
</Compile>
<Compile Include="lov.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="ImpCtl.designer.vb">
<DependentUpon>ImpCtl.vb</DependentUpon>
</Compile>
<Compile Include="ImpCtl.vb">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="MyCheckBox.Designer.vb">
<DependentUpon>MyCheckBox.vb</DependentUpon>
</Compile>
<Compile Include="MyCheckBox.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyCombo.Designer.vb">
<DependentUpon>MyCombo.vb</DependentUpon>
</Compile>
<Compile Include="MyCombo.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyFpoint.Designer.vb">
<DependentUpon>MyFpoint.vb</DependentUpon>
</Compile>
<Compile Include="MyFpoint.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyINI.vb" />
<Compile Include="MyLabel.Designer.vb">
<DependentUpon>MyLabel.vb</DependentUpon>
</Compile>
<Compile Include="MyLabel.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyListView.Designer.vb">
<DependentUpon>MyListView.vb</DependentUpon>
</Compile>
<Compile Include="MyListView.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyMaskBox.Designer.vb">
<DependentUpon>MyMaskBox.vb</DependentUpon>
</Compile>
<Compile Include="MyMaskBox.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MySearchGrp.Designer.vb">
<DependentUpon>MySearchGrp.vb</DependentUpon>
</Compile>
<Compile Include="MySearchGrp.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MySortGrp.Designer.vb">
<DependentUpon>MySortGrp.vb</DependentUpon>
</Compile>
<Compile Include="MySortGrp.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="MyTextBox.Designer.vb">
<DependentUpon>MyTextBox.vb</DependentUpon>
</Compile>
<Compile Include="MyTextBox.vb">
<SubType>Component</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="ImpCtl.resx">
<DependentUpon>ImpCtl.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="lov.resx">
<SubType>Designer</SubType>
<DependentUpon>lov.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="MyCheckBox.resx">
<SubType>Designer</SubType>
<DependentUpon>MyCheckBox.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MyMaskBox.resx">
<SubType>Designer</SubType>
<DependentUpon>MyMaskBox.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MyTextBox.resx">
<SubType>Designer</SubType>
<DependentUpon>MyTextBox.vb</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Service Include="{94E38DFF-614B-4CBD-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None Include="Resources\new_32.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\close_32.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\srch_32.png" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,850 @@
Public Class MyFpoint
Inherits FarPoint.Win.Spread.FpSpread
Private v_AAutoAddrowInLast As ToolStripButton = Nothing
Private V_enterToTab As Boolean = False
Private V_DeleteKey As Boolean = False
Private V_CurrentDel As Boolean = False
Private V_FIRSTINDEX As Integer = 0
Private V_NextRowindex As Integer = -1
Private A_Ubound As New ArrayList
Private V_SpaceEdit As Boolean = True
Private V_sameRHeight As Boolean = True
Private V_선택줄번호 As Int16 = -1
<System.ComponentModel.Description("더이상데이터가없는 마지막줄일때 자동으로 해당 버튼을 클릭해줍니다.")> _
Public Property AAutoAddrowInLast() As ToolStripButton
Get
Return Me.v_AAutoAddrowInLast
End Get
Set(ByVal value As ToolStripButton)
Me.v_AAutoAddrowInLast = value
End Set
End Property
<System.ComponentModel.Description("선택용 체크박스의 인덱스번호를 입력하세요")> _
Public Property 선택줄번호() As Int16
Get
Return V_선택줄번호
End Get
Set(ByVal value As Int16)
V_선택줄번호 = value
End Set
End Property
<System.ComponentModel.Description("줄너비가 변경될때 모두 같이 변경됩니다")> _
Public Property SameRowheight() As Boolean
Get
Return V_sameRHeight
End Get
Set(ByVal value As Boolean)
V_sameRHeight = value
End Set
End Property
<System.ComponentModel.Description("스페이스키를 누르면 편집모드로 들어갑니다")> _
Public Property EditFromSpace() As Boolean
Get
Return V_SpaceEdit
End Get
Set(ByVal value As Boolean)
V_SpaceEdit = value
End Set
End Property
''' <summary>
''' 중복된 데이터를 검색합니다. startindex = 시작할 줄번호,endindex = 종료할 줄번호, source 검색원본의 열번호들, target 검색대상의 열번호들
''' 검색완료후 전체 중복된 갯수를 리턴합니다.
''' </summary>
''' <param name="StartIndex"></param>
''' <param name="EndIndex"></param>
''' <param name="Source"></param>
''' <param name="Tartger"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function 중복검사(ByVal StartIndex As Integer, ByVal EndIndex As Integer, ByVal Source() As Short, ByVal Tartger() As Short, Optional ByVal CheckColnum As Short = -1, Optional ByVal PBar As ProgressBar = Nothing) As Integer
'''''검색방법은 1번개체부터 마지막개체까지 풀루프를 돌면서 동일한 놈을 찾는다.
Dim 원본, 대상 As String 'New System.Text.StringBuilder
Dim fcnt As Integer = 0
If Not PBar Is Nothing Then
PBar.Value = StartIndex
PBar.Minimum = StartIndex
PBar.Maximum = EndIndex
End If
'NOTICE("중복되는 [전주번호]를 찾는중입니다...", Me.lb_msg)
'Me.Invalidate()
For A As Integer = StartIndex To EndIndex
원본 = ""
For Each T As Short In Source
원본 &= Me.ActiveSheet.Cells(A, T).Value
Next
If 원본.ToString <> "" Then
For B As Integer = StartIndex To EndIndex
If A <> B Then '//같은라인은 피하고 그렇지 않은 라인의 번호를 확인한다.
대상 = ""
For Each T As Short In Tartger
대상 &= Me.ActiveSheet.Cells(B, T).Value
Next
If 원본.ToString = 대상.ToString Then
'MsgBox(원본)
fcnt += 1
If CheckColnum > -1 Then
Me.ActiveSheet.Cells(A, CheckColnum).Value = True
Me.ActiveSheet.Cells(B, CheckColnum).Value = True
End If
End If
End If
Next
End If
If Not PBar Is Nothing Then
If PBar.Value < PBar.Maximum Then PBar.Value += 1
Me.Invalidate()
End If
Next
Return fcnt
'NOTICE("[전주번호] 중복검사 완료(" & fcnt & "개의 데이터를 찾았습니다)", Me.lb_msg)
End Function
''' <summary>
''' 중복된 데이터를 검색합니다. startindex = 시작할 줄번호,endindex = 종료할 줄번호, source 검색원본의 열번호들, target 검색대상의 열번호들
''' 검색완료후 전체 중복된 갯수를 리턴합니다.
''' </summary>
''' <param name="StartIndex"></param>
''' <param name="EndIndex"></param>
''' <param name="Source"></param>
''' <param name="Tartger"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function 중복검사2(ByVal StartIndex As Integer, ByVal EndIndex As Integer, ByVal Source() As Short, ByVal Tartger() As Short, Optional ByVal CheckColnum As Short = -1, Optional ByVal PBar As ProgressBar = Nothing) As Integer
'''''검색방법은 1번개체부터 마지막개체까지 풀루프를 돌면서 동일한 놈을 찾는다.
Dim 원본, 대상 As String 'New System.Text.StringBuilder
Dim fcnt As Integer = 0
If Not PBar Is Nothing Then
PBar.Value = StartIndex
PBar.Minimum = StartIndex
PBar.Maximum = EndIndex
End If
For A As Integer = StartIndex To EndIndex
원본 = ""
For Each T As Short In Source
원본 &= Me.ActiveSheet.Cells(A, T).Value
Next
If 원본.Trim.ToString <> "" Then
For B As Integer = StartIndex To EndIndex
If A <> B Then '//같은라인은 피하고 그렇지 않은 라인의 번호를 확인한다.
대상 = ""
For Each T As Short In Tartger
대상 &= Me.ActiveSheet.Cells(B, T).Value
Next
If 원본.Trim.ToString = 대상.Trim.ToString Then
fcnt += 1
If CheckColnum > -1 Then
Me.ActiveSheet.Cells(A, CheckColnum).Value = True
Me.ActiveSheet.Cells(B, CheckColnum).Value = True
End If
End If
End If
Next
End If
If Not PBar Is Nothing Then
If PBar.Value < PBar.Maximum Then PBar.Value += 1
Me.Invalidate()
End If
Next
Return fcnt
'NOTICE("[전주번호] 중복검사 완료(" & fcnt & "개의 데이터를 찾았습니다)", Me.lb_msg)
End Function
Public Function 중복검사같은줄(ByVal StartIndex As Integer, ByVal EndIndex As Integer, ByVal Source() As Short, ByVal Tartger() As Short, Optional ByVal CheckColnum As Short = -1, Optional ByVal PBar As ProgressBar = Nothing, Optional ByVal TrueDirection As Boolean = True) As Integer
Dim 원본, 대상 As String 'New System.Text.StringBuilder
Dim fcnt As Integer = 0
Dim Can As Boolean = False
If Not PBar Is Nothing Then : PBar.Value = StartIndex : PBar.Minimum = StartIndex : PBar.Maximum = EndIndex : End If
For A As Integer = StartIndex To EndIndex
원본 = "" : 대상 = ""
Can = False
For Each T As Short In Source
원본 &= Me.ActiveSheet.Cells(A, T).Value
Next
For Each T As Short In Tartger
대상 &= Me.ActiveSheet.Cells(A, T).Value
Next
If 원본.Trim.ToString <> "" Then
If TrueDirection = True Then
If 원본.Trim.ToString = 대상.Trim.ToString Then Can = True
Else
If 원본.Trim.ToString <> 대상.Trim.ToString Then Can = True
End If
If Can Then
fcnt += 1
If CheckColnum > -1 Then Me.ActiveSheet.Cells(A, CheckColnum).Value = True
End If
End If
If Not PBar Is Nothing Then
If PBar.Value < PBar.Maximum Then PBar.Value += 1
Me.Invalidate()
End If
Next
Return fcnt
End Function
Public Function 중복검사같은줄공란포함(ByVal StartIndex As Integer, ByVal EndIndex As Integer, ByVal Source() As Short, ByVal Tartger() As Short, Optional ByVal CheckColnum As Short = -1, Optional ByVal PBar As ProgressBar = Nothing, Optional ByVal TrueDirection As Boolean = True) As Integer
Dim 원본, 대상 As String 'New System.Text.StringBuilder
Dim fcnt As Integer = 0
Dim Can As Boolean = False
If Not PBar Is Nothing Then : PBar.Value = StartIndex : PBar.Minimum = StartIndex : PBar.Maximum = EndIndex : End If
For A As Integer = StartIndex To EndIndex
원본 = "" : 대상 = ""
Can = False
For Each T As Short In Source
원본 &= Me.ActiveSheet.Cells(A, T).Text
Next
For Each T As Short In Tartger
대상 &= Me.ActiveSheet.Cells(A, T).Text
Next
If TrueDirection = True Then
If 원본.Trim.ToString = 대상.Trim.ToString Then Can = True
Else
If 원본.Trim.ToString <> 대상.Trim.ToString Then Can = True
End If
If Can Then
fcnt += 1
If CheckColnum > -1 Then Me.ActiveSheet.Cells(A, CheckColnum).Value = True
End If
If Not PBar Is Nothing Then
If PBar.Value < PBar.Maximum Then PBar.Value += 1
Me.Invalidate()
End If
Next
Return fcnt
End Function
''' <summary>
''' 사용하지 않는걸 권장합니다( 이명령은 insertNewrow 로 사용하길 권장합니다.)
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function AddRowsU() As Integer
Dim Idx As Integer
With Me.ActiveSheet
If .RowCount <= 0 Then '//데이터가 아에없다면
Idx = 0
.AddUnboundRows(Idx, 1)
.Rows(Idx).Tag = "UNBOUND"
.ActiveRowIndex = 0
.ActiveColumnIndex = Me.FIRST_FOCUSINDEX
A_Ubound.Add(Idx)
Else
Idx = IIf(.ActiveRow.Index < 0, 0, .ActiveRow.Index)
.AddUnboundRows(Idx, 1)
.Rows(Idx).Tag = "UNBOUND"
A_Ubound.Add(Idx)
End If
End With
Return Idx
End Function
''' <summary>
''' 현재위치 위에 새로운 행을 추가합니다(바운드 적용됨)
''' </summary>
''' <remarks></remarks>
Public Sub Arin_InsertNewRow()
If Not Me.Focused Then Me.Focus()
Me.ActiveSheet.Rows.Add(Me.ActiveSheet.ActiveRowIndex, 1)
Me.ActiveSheet.SetActiveCell(Me.ActiveSheet.ActiveRowIndex, Me.FIRST_FOCUSINDEX)
End Sub
''' <summary>
''' 마지막에 새로운 행을 추가합니다(바운드 적용됨)
''' </summary>
''' <remarks></remarks>
Public Sub Arin_AddNewRow()
If Not Me.Focused Then Me.Focus()
Me.ActiveSheet.Rows.Add(Me.ActiveSheet.RowCount, 1)
Me.ActiveSheet.SetActiveCell(Me.ActiveSheet.RowCount, Me.FIRST_FOCUSINDEX)
SendKeys.Send("{ENTER}")
End Sub
''' <summary>
''' 마지막에 새로운 행을 추가합니다.(바운드적용안됨)
''' </summary>
''' <remarks></remarks>
Public Sub Arin_AddNewRowU()
If Not Me.Focused Then Me.Focus()
Dim Idx As Integer
Me.ActiveSheet.AddUnboundRows(Me.ActiveSheet.RowCount, 1)
Idx = Me.ActiveSheet.RowCount - 1
Me.ActiveSheet.Rows(Idx).Tag = "UNBOUND"
Me.ActiveSheet.SetActiveCell(Me.ActiveSheet.RowCount, Me.FIRST_FOCUSINDEX)
SendKeys.Send("{ENTER}")
End Sub
Public Function NewRowsU() As Integer
Dim Idx As Integer
Me.ActiveSheet.AddUnboundRows(Me.ActiveSheet.RowCount, 1)
Idx = Me.ActiveSheet.RowCount - 1
Me.ActiveSheet.Rows(Idx).Tag = "UNBOUND"
A_Ubound.Add(Idx) '--언바운드목록에 제외시켜버린다
Return Idx
End Function
Public Sub Attach_Ubound(Optional ByVal NullChkColnum As Integer = -1)
' MsgBox(A_Ubound.Count)
Dim nullVal As Boolean = False
For Each A As Integer In A_Ubound
Try
If Me.ActiveSheet.Rows(CInt(A)).Tag = "UNBOUND" Then '//언바운드된열일경우에만
If NullChkColnum > -1 Then
nullVal = True
For z As Integer = NullChkColnum To Me.ActiveSheet.ColumnCount - 1
If Me.ActiveSheet.Cells(A, z).Text <> "" Then
'MsgBox(Me.ActiveSheet.Cells(A, z).Text)
nullVal = False
Exit For
End If
Next
End If
If Not nullVal Then Me.ActiveSheet.AddRowToDataSource(CInt(A), True)
End If
Catch ex As Exception
MsgBox("[Err]Add-Unbound Row" & vbCrLf & ex.Message.ToString)
End Try
Next
A_Ubound.Clear()
End Sub
<System.ComponentModel.Description("줄바꿈을 할 열 번호입니다")> _
Public Property NextRow_Index() As Integer
Get
Return V_NextRowindex
End Get
Set(ByVal value As Integer)
V_NextRowindex = value
End Set
End Property
<System.ComponentModel.Description("줄이 바뀌었을때 커서가 위치할 시작 값입니다.")> _
Public Property FIRST_FOCUSINDEX() As Integer
Get
Return V_FIRSTINDEX
End Get
Set(ByVal value As Integer)
V_FIRSTINDEX = value
End Set
End Property
<System.ComponentModel.Description("Del 키를 누를시 커서가 위치한 셀의 값을 초기합니다")> _
Public Property CurrentDel() As Boolean
Get
Return V_CurrentDel
End Get
Set(ByVal value As Boolean)
V_CurrentDel = value
End Set
End Property
<System.ComponentModel.Description("Shift+Del 키를 누를시 해당 줄을 삭제합니다.")> _
Public Property DeleteKey() As Boolean
Get
Return V_DeleteKey
End Get
Set(ByVal value As Boolean)
V_DeleteKey = value
End Set
End Property
''' <summary>
''' 입력된 줄번호와 태그=데이터필드 가 일치하는 셀을 반환합니다.
''' </summary>
''' <param name="index"></param>
''' <param name="Tag"></param>
''' <param name="Sheetindex"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Cells(ByVal index As Integer, ByVal Tag As Object, Optional ByVal Sheetindex As Integer = -1) As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
If Sheetindex = -1 Then Sheetindex = Me.ActiveSheetIndex
For Each SC As FarPoint.Win.Spread.Column In Me.Sheets(Sheetindex).Columns
If SC.DataField.ToUpper = Tag.ToString.ToUpper Then
RetVal = Me.Sheets(Sheetindex).Cells(index, SC.Index)
Exit For
End If
Next
If RetVal Is Nothing Then
MsgBox("Can't Find column [" & Tag.ToString & "]", MsgBoxStyle.Critical, "Farpoint function Cells")
End If
Return RetVal
End Function
''' <summary>
''' 현재선택된 줄의 열번호에해당하는 셀을 반환합니다.
''' </summary>
''' <param name="Columnindex"></param>
''' <param name="Sheetindex"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Cells(ByVal Columnindex As Integer, Optional ByVal Sheetindex As Integer = -1) As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
If Sheetindex = -1 Then Sheetindex = Me.ActiveSheetIndex
Return Me.Sheets(Sheetindex).Cells(Me.ActiveSheet.ActiveRowIndex, Columnindex)
Return RetVal
End Function
''' <summary>
''' 현재선택된 셀을 반환합니다
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function Cells() As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
Return Me.ActiveSheet.ActiveCell
End Function
Public Function ActiveCell() As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
Return Me.ActiveSheet.ActiveCell
End Function
''' <summary>
''' 전줄의 현재열위치 셀을 반환
''' </summary>
''' <param name="FirstrowValueisNothing"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function PreRCells(Optional ByVal FirstrowValueisNothing As Boolean = False) As FarPoint.Win.Spread.Cell
If FirstrowValueisNothing AndAlso Me.ActiveRowindex = 0 Then Return Nothing
If Me.ActiveRowindex = 0 Then
If FirstrowValueisNothing Then
Return Nothing
Else
Return Me.ActiveSheet.ActiveCell
End If
Else
Return Me.ActiveSheet.Cells(Me.ActiveRowindex - 1, Me.ActiveColumnindex)
End If
End Function
''' <summary>
''' 앞셀을 반환
''' </summary>
''' <param name="FirstColValueisNothing"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function PreCells(Optional ByVal FirstColValueisNothing As Boolean = False) As FarPoint.Win.Spread.Cell
If FirstColValueisNothing AndAlso Me.ActiveColumnindex = 0 Then Return Nothing
If Me.ActiveColumnindex = 0 Then
If FirstColValueisNothing Then
Return Nothing
Else
Return Me.ActiveSheet.ActiveCell
End If
Else
Return Me.ActiveSheet.Cells(Me.ActiveRowindex, Me.ActiveColumnindex - 1)
End If
End Function
''' <summary>
''' 입력된 태그와 데이터필드가 일치하는 셀을 반환합니다.(줄번호는 현재줄)
''' </summary>
''' <param name="Tag"></param>
''' <param name="Sheetindex"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Cells(ByVal Tag As Object, Optional ByVal Sheetindex As Integer = -1) As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
If Sheetindex = -1 Then Sheetindex = Me.ActiveSheetIndex
For Each SC As FarPoint.Win.Spread.Column In Me.Sheets(Sheetindex).Columns
If SC.DataField.ToUpper = Tag.ToString.ToUpper Then
RetVal = Me.Sheets(Sheetindex).Cells(Me.ActiveRowindex, SC.Index)
Exit For
End If
Next
If RetVal Is Nothing Then
MsgBox("Can't Find column [" & Tag.ToString & "]", MsgBoxStyle.Critical, "Farpoint function Cells")
End If
Return RetVal
End Function
''' <summary>
''' 활성화된 열제목줄을 반환합니다.
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function ActiveColumn() As FarPoint.Win.Spread.Column
Return Me.ActiveSheet.Columns(Me.ActiveColumnindex)
End Function
''' <summary>
''' 입력된 태그와 데이터필드가 일치하는 셀을 반환합니다.(줄번호는 현재줄)
''' </summary>
''' <param name="Tag"></param>
''' <param name="Sheetindex"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function CCells(ByVal Tag As Object, Optional ByVal Sheetindex As Integer = -1) As FarPoint.Win.Spread.Cell
Dim RetVal As FarPoint.Win.Spread.Cell = Nothing
If Sheetindex = -1 Then Sheetindex = Me.ActiveSheetIndex
For Each SC As FarPoint.Win.Spread.Column In Me.Sheets(Sheetindex).Columns
If SC.DataField.ToUpper = Tag.ToString.ToUpper Then
RetVal = Me.Sheets(Sheetindex).Cells(Me.ActiveRowindex, SC.Index)
Exit For
End If
Next
If RetVal Is Nothing Then
MsgBox("Can't Find column [" & Tag.ToString & "]", MsgBoxStyle.Critical, "Farpoint function Cells")
End If
Return RetVal
End Function
''' <summary>
''' 활성화된 줄번호를 반환
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function ActiveRowindex() As Integer
Return Me.ActiveSheet.ActiveRowIndex
End Function
''' <summary>
''' 활성화된 열버호를 반환
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function ActiveColumnindex() As Integer
Return Me.ActiveSheet.ActiveColumnIndex
End Function
''' <summary>
''' 엔터키를 누르면 다음셀로이동하는 키맵을 설정합니다.
''' </summary>
''' <remarks></remarks>
Public Sub EnterToNextItem()
Dim im As New FarPoint.Win.Spread.InputMap
im = Me.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
im = Me.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
End Sub
Public Sub NEXT_CELL()
If Me.ActiveSheet.ActiveRowIndex <> Me.ActiveSheet.RowCount - 1 Then '//마지막줄이 아니면
If Me.ActiveSheet.ActiveColumnIndex = Me.ActiveSheet.ColumnCount - 1 Then '/마지막열이면 다음줄 첨으로 이동
'SendKeys.Send("{TAB}")
Me.ActiveSheet.ActiveRowIndex += 1
Me.ActiveSheet.ActiveColumnIndex = V_FIRSTINDEX '//첫인덱스로 옴긴다.기본값은 0이다.
'Me.ActiveSheet.SetActiveCell(Me.ActiveSheet.ActiveRowIndex + 1, V_FIRSTINDEX)
Else
'SendKeys.Send("{TAB}")
'Me.ActiveSheet.SetActiveCell(Me.ActiveSheet.ActiveRowIndex, Me.ActiveSheet.ActiveColumnIndex + 1)
'Me.ActiveSheet.IsSelected(Me.ActiveSheet.ActiveRowIndex, Me.ActiveSheet.ActiveColumnIndex + 1)
'ME.ActiveSheet.SEL
Me.ActiveSheet.ActiveColumnIndex += 1
End If
Else
If Me.ActiveSheet.ActiveColumnIndex <> Me.ActiveSheet.ColumnCount - 1 Then '/마지막열이면 다음줄 첨으로 이동
'Me.ActiveSheet.ActiveRowIndex += 1
Me.ActiveSheet.ActiveColumnIndex += 1 '//첫인덱스로 옴긴다.기본값은 0이다.
End If
End If
End Sub
Public Sub NEXT_ROW()
If Me.ActiveSheet.ActiveRowIndex <> Me.ActiveSheet.RowCount - 1 Then '//마지막줄이 아니면
Me.ActiveSheet.ActiveRowIndex += 1
Me.ActiveSheet.ActiveColumnIndex = V_FIRSTINDEX '//첫인덱스로 옴긴다.기본값은 0이다.
End If
End Sub
Public Sub ItemCheck_Select(Optional ByVal index As Int16 = -1)
Dim sheet As FarPoint.Win.Spread.SheetView = Me.ActiveSheet
If index = -1 AndAlso Me.선택줄번호 <> -1 Then index = 선택줄번호 '//지정된열제목이 잇는지
sheet.AutoFilterReset(index) '//필터적용시 만힝 느리므로 필터를 해제한다.
For i As Integer = 0 To sheet.RowCount - 1
sheet.Cells(i, index).Value = True
Next
End Sub
Public Sub ItemCheck_Unselect(Optional ByVal index As Int16 = -1)
Dim sheet As FarPoint.Win.Spread.SheetView = Me.ActiveSheet
If index = -1 AndAlso Me.선택줄번호 <> -1 Then index = 선택줄번호 '//지정된열제목이 잇는지
sheet.AutoFilterReset(index) '//필터적용시 만힝 느리므로 필터를 해제한다.
For i As Integer = 0 To sheet.RowCount - 1
sheet.Cells(i, index).Value = False
Next
End Sub
Public Sub ItemCheck_Reverse(Optional ByVal index As Int16 = -1)
Dim sheet As FarPoint.Win.Spread.SheetView = Me.ActiveSheet
If index = -1 AndAlso Me.선택줄번호 <> -1 Then index = 선택줄번호 '//지정된열제목이 잇는지
sheet.AutoFilterReset(index) '//필터적용시 만힝 느리므로 필터를 해제한다.
For i As Integer = 0 To sheet.RowCount - 1
sheet.Cells(i, index).Value = IIf(sheet.Cells(i, index).Value = True, False, True)
Next
End Sub
''' <summary>
''' 뷰의 열너비,열이름(옵션),줌팩터등을 저장합니다.
''' </summary>
''' <param name="ColName"></param>
''' <remarks></remarks>
Public Sub Setting_Save(Optional ByVal ColName As Boolean = True, Optional ByVal Tag As String = "", Optional ByVal FN As String = "")
ColSize_Save(Tag, FN)
If ColName Then ColName_Save(Tag, FN)
CurrentState_Save(Tag, FN)
AZOOM_Save(Tag, FN)
End Sub
''' <summary>
''' 뷰의 열너비,열이름(옵션),줌팩터등을 불러옵니다
''' </summary>
''' <param name="ColName"></param>
''' <remarks></remarks>
Public Sub Setting_Load(Optional ByVal ColName As Boolean = True, Optional ByVal Tag As String = "", Optional ByVal FN As String = "")
ColSize_Load(Tag, FN)
If ColName Then ColName_Load(Tag, FN)
CurrentState_Load(Tag, FN)
AZOOM_LOAD(Tag, FN)
End Sub
''' <summary>
''' 현재 열너비를 Spread.ini 파일에 저장합니다.
''' </summary>
''' <remarks></remarks>
Public Sub AZOOM_Save(ByVal tag As String, ByVal fn As String)
Dim File As New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\" & fn & "spread.INI")
If System.IO.Directory.Exists(File.DirectoryName) = False Then System.IO.Directory.CreateDirectory(File.DirectoryName)
Dim a As New MyINI2(File.FullName)
a.Write(Me.Parent.Name & "-" & (Me.Name & tag), "ZOOM", Me.ActiveSheet.ZoomFactor)
End Sub
''' <summary>
''' 현재 열너비를 Spread.ini 파일로 부터 불러옵니다.
''' </summary>
''' <remarks></remarks>
Public Sub AZOOM_LOAD(ByVal tag As String, ByVal fn As String)
Dim FILEname As String = My.Application.Info.DirectoryPath & "\" & fn & "spread.INI"
If Not System.IO.File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
ColSize_Save(tag, fn)
Return
End If
'MsgBox("PARENT" & Me.Parent.Name.ToString & "/" & Me.Parent.Text)
Dim a As New MyINI2(FILEname)
Me.ActiveSheet.ZoomFactor = a.Read(Me.Parent.Name & "-" & (Me.Name & tag), "ZOOM", 1)
End Sub
''' <summary>
''' 현재 열너비를 Spread.ini 파일에 저장합니다.
''' </summary>
''' <remarks></remarks>
Public Sub ColSize_Save(ByVal tag As String, ByVal fn As String)
Dim File As New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\" & fn & "spread.INI")
If System.IO.Directory.Exists(File.DirectoryName) = False Then System.IO.Directory.CreateDirectory(File.DirectoryName)
Dim a As New MyINI2(File.FullName)
For Each z As FarPoint.Win.Spread.Column In Me.ActiveSheet.Columns
a.Write(Me.Parent.Name & "-" & (Me.Name & tag), "COLSIZE" & z.Index.ToString, z.Width)
Next
End Sub
''' <summary>
''' 현재 열너비를 Spread.ini 파일로 부터 불러옵니다.
''' </summary>
''' <remarks></remarks>
Public Sub ColSize_Load(ByVal tag As String, ByVal fn As String)
Dim FILEname As String = My.Application.Info.DirectoryPath & "\" & fn & "spread.INI"
If Not System.IO.File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
ColSize_Save(tag, fn)
Return
End If
'MsgBox("PARENT" & Me.Parent.Name.ToString & "/" & Me.Parent.Text)
Dim a As New MyINI2(FILEname)
For Each col As FarPoint.Win.Spread.Column In Me.ActiveSheet.Columns
'MsgBox(COL.Index)
'a.Write(Me.Parent.Name, "COLSIZE" & COL.Index.ToString, File, COL.Width)
Try
col.Width = a.Read(Me.Parent.Name & "-" & (Me.Name & tag), "COLSIZE" & col.Index.ToString)
Catch ex As Exception '//없을경우에는 에러를 내므로 그냥 나간다
End Try
Next
End Sub
Public Sub ColName_Load(ByVal tag As String, ByVal fn As String)
Dim FILEname As String = My.Application.Info.DirectoryPath & "\" & fn & "spread.INI"
If Not System.IO.File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
ColSize_Save(tag, fn)
Return
End If
'MsgBox("PARENT" & Me.Parent.Name.ToString & "/" & Me.Parent.Text)
Dim a As New MyINI2(FILEname)
For Each col As FarPoint.Win.Spread.Column In Me.ActiveSheet.Columns
'MsgBox(COL.Index)
'a.Write(Me.Parent.Name, "COLSIZE" & COL.Index.ToString, File, COL.Width)
Try
col.Label = a.Read(Me.Parent.Name & "-" & Me.Name & tag, "COLNAME" & col.Index.ToString).ToString.Trim(Chr(0))
Catch ex As Exception '//없을경우에는 에러를 내므로 그냥 나간다
End Try
Next
End Sub
Public Sub ColName_Save(ByVal tag As String, ByVal fn As String)
Dim File As New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\" & fn & "spread.INI")
If System.IO.Directory.Exists(File.DirectoryName) = False Then System.IO.Directory.CreateDirectory(File.DirectoryName)
Dim a As New MyINI2(File.FullName)
For Each z As FarPoint.Win.Spread.Column In Me.ActiveSheet.Columns
a.Write(Me.Parent.Name & "-" & Me.Name & tag, "COLNAME" & z.Index.ToString, z.Label)
Next
End Sub
''' <summary>
''' [보충요망] :줄높이를 저장
''' </summary>
''' <remarks></remarks>
Public Sub CurrentState_Save(ByVal tag As String, ByVal fn As String)
Dim File As New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\" & fn & "spread.INI")
If System.IO.Directory.Exists(File.DirectoryName) = False Then System.IO.Directory.CreateDirectory(File.DirectoryName)
Dim a As New MyINI2(File.FullName)
a.Write(Me.Parent.Name & "-" & Me.Name & tag, "RowHeight", Me.ActiveSheet.Rows.Default.Height)
End Sub
''' <summary>
''' [보충요망] :줄높이를 불러온다.(spre.ini)
''' </summary>
''' <remarks></remarks>
Public Sub CurrentState_Load(ByVal tag As String, ByVal fn As String)
Dim FILEname As String = My.Application.Info.DirectoryPath & "\" & fn & "spread.INI"
If Not System.IO.File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
CurrentState_Save(tag, fn)
Return
End If
Dim a As New MyINI2(My.Application.Info.DirectoryPath & "\" & fn & "spread.INI")
Me.ActiveSheet.Rows.Default.Height = a.Read(Me.Parent.Name & "-" & Me.Name & tag, "RowHeight", 20)
End Sub
Private Sub Delete_itm(Optional ByVal rowindex As Integer = -1, Optional ByVal prompt As Boolean = True)
Dim Commit As Boolean = True
Dim A As New System.Text.StringBuilder("경고 : 데이터 삭제를 선택했습니다")
A.AppendLine()
A.AppendLine("현재 선택된 줄이 삭제됩니다")
A.AppendLine("계속하시겠습니까?")
If prompt Then
If MsgBox(A.ToString, MsgBoxStyle.Critical + MsgBoxStyle.OkCancel, "선택줄 삭제") <> MsgBoxResult.Ok Then Commit = False
End If
If Not Commit Then Return '//명령프롬프트에서 취소를 선택햇을시에는 빠져나간다.
Me.ActiveSheet.ActiveRow.Remove()
End Sub
Private Sub MyFpoint_EditModeOff(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.EditModeOff
End Sub
''' <summary>
''' 전줄의 현재열위치 셀을 반환
''' </summary>
''' <param name="FirstrowValueisNothing"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function CellsPR(Optional ByVal FirstrowValueisNothing As Boolean = False) As FarPoint.Win.Spread.Cell
If FirstrowValueisNothing AndAlso Me.ActiveRowindex = 0 Then Return Nothing
If Me.ActiveRowindex = 0 Then
If FirstrowValueisNothing Then
Return Nothing
Else
Return Me.ActiveSheet.ActiveCell
End If
Else
Return Me.ActiveSheet.Cells(Me.ActiveRowindex - 1, Me.ActiveColumnindex)
End If
End Function
Private Sub CustFP_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
e.Handled = True
e.SuppressKeyPress = False
Select Case e.KeyCode
Case Keys.Enter
If e.Control Then
Me.Cells.Value = Me.CellsPR.Value
Else
If Not Me.v_AAutoAddrowInLast Is Nothing Then
If Me.ActiveSheet.ActiveRowIndex = Me.ActiveSheet.RowCount - 1 Then '//마지막줄에
If Me.V_NextRowindex = Me.ActiveSheet.ActiveColumnIndex Then '//다음줄로가아햘 경우라면
e.Handled = True
Me.v_AAutoAddrowInLast.PerformClick()
ElseIf Me.ActiveSheet.ActiveColumnIndex = Me.ActiveSheet.ColumnCount - 1 Then '//마지막열이라면
e.Handled = True
Me.v_AAutoAddrowInLast.PerformClick()
End If
End If
Else
If Me.V_NextRowindex = Me.ActiveSheet.ActiveColumnIndex Then '//다음줄로가아햘 경우라면
Me.NEXT_ROW()
ElseIf Me.ActiveSheet.ActiveColumnIndex = Me.ActiveSheet.ColumnCount - 1 Then '//마지막열이라면
Me.NEXT_ROW()
End If
End If
End If
Case Keys.Delete
If e.Shift Then '//쉬프트가 눌러져잇을경우
If Me.V_DeleteKey Then Delete_itm(, True)
e.Handled = True
Else
If Me.V_CurrentDel Then
Me.ActiveSheet.ActiveCell.ResetValue()
Me.OnEditModeOff(Nothing)
e.Handled = True
End If
End If
Case Keys.Space
If Me.V_SpaceEdit Then EditMode = True
e.Handled = True
Case Else '//그외다른게입력되어있을경우에는 editmode 에 들어가게되므로 한글처리를 위해 바로 에디트모드로 들어오게한다.
If e.KeyCode >= Keys.NumPad0 AndAlso e.KeyCode <= Keys.NumPad9 Then
'//우측숫자패트
ElseIf e.KeyCode >= Keys.D0 AndAlso e.KeyCode <= Keys.D9 Then
'//일반숫자패드
Else
If Not e.Alt AndAlso Not e.Control AndAlso Me.ImeMode = System.Windows.Forms.ImeMode.Hangul Then
EditMode = True
End If
End If
End Select
End Sub
Private Sub CustFP_RowHeightChanged(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.RowHeightChangedEventArgs) Handles Me.RowHeightChanged
If Me.V_sameRHeight Then
Dim Row As FarPoint.Win.Spread.RowHeightChangeExtents = e.RowList(0)
Me.ActiveSheet.Rows.Default.Height = Me.ActiveSheet.Rows(Row.FirstRow).Height
End If
End Sub
End Class

View File

@@ -0,0 +1,237 @@
Imports System.Text
Imports System.IO
Public Class MyListView
Private AutoView As Boolean = False '//자동으로 리뷰의내용을 쿼리블럭에표시할지
Private var_AutoDelete As Boolean = True '//Delte키를 눌렀을때 자동으로 rowid를 이용해서 삭제한다.
Private VAR_ENABLE_MYKEY As Boolean = True
Private var_enterkey As Boolean = True
''' <summary>
''' 엔터키를 누르면 포커스를 이동합니까?
''' </summary>
''' <remarks></remarks>
<System.ComponentModel.Description("엔터키를 누르면 다음으로 포커스를 이동합니까?")> _
Public Property DB_Enable_EnterKey() As Boolean
Get
Return var_enterkey
End Get
Set(ByVal value As Boolean)
var_enterkey = value
End Set
End Property
''' <summary>
''' 이 개체에 커서를 이동합니다.
''' </summary>
''' <remarks></remarks>
Public Sub DB_SetFocus()
If Me.Items.Count <= 0 Then
MsgBox("뷰 데이터가 존재하지 않습니다", MsgBoxStyle.Information, "확인")
Else
Me.Focus()
End If
End Sub
''' <summary>
''' 기본 셋트된 키 ENTER/SHIFT+KEY/DELETE 를 비활성화합니다.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("자동넘김 ENTER/SHIFT+ENTER/DELETE 키를 비활성화합니다")> _
Public Property DB_Enable_MyKey() As Boolean
Get
Return (VAR_ENABLE_MYKEY)
End Get
Set(ByVal value As Boolean)
VAR_ENABLE_MYKEY = value
End Set
End Property
''' <summary>
''' DELETE 키가 눌렷을때 선택되아이템의 0번재 값을 ROWID로 삭제합니다
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("Delete키를 눌렀을때 0번째 ID값을 가지고 삭제합니다")> _
Public Property DB_Enable_DelKey() As Boolean
Get
Return var_AutoDelete
End Get
Set(ByVal value As Boolean)
var_AutoDelete = value
End Set
End Property
''' <summary>
''' 자동으로 리뷰의 내용을 설정된 쿼리블럭에 표시합니다 selectedindexchanged 함수가 호출됩니다.
''' </summary>
''' <value></value>
''' <remarks></remarks>
<System.ComponentModel.Description("자동으로 리뷰의 내용을 설정된 쿼리블럭에 표시합니다 seletecindexchanged 함수가 호출됩니다")> _
Public Property DB_Autoview() As Boolean
Get
Return AutoView
End Get
Set(ByVal value As Boolean)
AutoView = value
End Set
End Property
''' <summary>
''' 모든 개체를 선택합니다.
''' </summary>
''' <remarks></remarks>
Public Sub ITEM_SELECT()
For Each A As ListViewItem In Me.Items
A.Checked = True
Next
End Sub
''' <summary>
''' 모든 개체의 선택을 해제합니다.
''' </summary>
''' <remarks></remarks>
Public Sub ITEM_UNSELECT()
For Each A As ListViewItem In Me.Items
A.Checked = False
Next
End Sub
''' <summary>
''' 선택 반전
''' </summary>
''' <remarks></remarks>
Public Sub ITEM_DESELECT()
For Each A As ListViewItem In Me.Items
A.Checked = IIf(A.Checked, False, True)
Next
End Sub
''' <summary>
''' 선택삭제
''' </summary>
''' <remarks></remarks>
Public Sub ITEM_SELECTDEL()
For Each A As ListViewItem In Me.Items
If A.Checked Then A.Remove()
Next
End Sub
''' <summary>
''' 리스트뷰 각열이 크기를 확인합니다.
''' </summary>
''' <remarks></remarks>
Public Sub COLSIZE_SAVE()
Dim a As New MyINI2(My.Application.Info.DirectoryPath & "\LISTVIEW.INI")
For Each COL As ColumnHeader In Me.Columns
a.Write(Me.Parent.Name & "-" & Me.Name, "COLSIZE" & COL.Index.ToString, COL.Width)
Next
End Sub
''' <summary>
''' 리스트뷰 각열의 크기를 파일로부터 불러옵니다.
''' </summary>
''' <remarks></remarks>
Public Sub COLSIZE_LOAD()
Dim FILEname As String = My.Application.Info.DirectoryPath & "\LISTVIEW.INI"
Dim a As New MyINI2(My.Application.Info.DirectoryPath & "\LISTVIEW.INI")
If Not File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
COLSIZE_SAVE()
Return
End If
'MsgBox("PARENT" & Me.Parent.Name.ToString & "/" & Me.Parent.Text)
For Each COL As ColumnHeader In Me.Columns
'MsgBox(COL.Index)
'a.Write(Me.Parent.Name, "COLSIZE" & COL.Index.ToString, File, COL.Width)
Try
COL.Width = a.Read(Me.Parent.Name & "-" & Me.Name, "COLSIZE" & COL.Index.ToString)
Catch ex As Exception '//없을경우에는 에러를 내므로 그냥 나간다
End Try
Next
End Sub
Public Sub FileSave()
Dim SD As New SaveFileDialog
SD.Filter = "탭으로 분리된 파일(*.TXT)|*.TXT|콤마로 분리된 파일(*.CSV)|*.CSV|Excel WorkSheet(*.XLS)|*.XLS|XML Excel WorkSheet|*.xml|HTML(*.HTML)|*.HTML"
SD.FilterIndex = 1
SD.RestoreDirectory = True
If SD.ShowDialog() = DialogResult.OK Then
Select Case SD.FilterIndex
Case 1
ExportToTXT(SD.FileName)
End Select
End If
End Sub
Public Function ExportToTXT(ByVal FileName As String, Optional ByVal StartPosition As Short = 2, Optional ByVal NotePadOpen As Boolean = False) As Boolean
Dim FS As New FileStream(FileName, FileMode.Create)
'Dim BW As New BinaryWriter(FS, System.Text.Encoding.Default)
Dim SW As New StreamWriter(FS, System.Text.Encoding.Default)
Dim rowIndex As Integer = 1 '엑셀의 행값
Dim Rrowindex As Integer = 1
Dim colIndex As Integer = 0 '엑셀의 열값
Dim RcolIndex As Integer = 0
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor '//마우스를 대기로 변환
Try
Dim LV As ListViewItem
Dim la As ListViewItem.ListViewSubItem
Dim SubBuf As StringBuilder
Dim Aa As ColumnHeader
'--열머리글 내보내기
For Each Aa In Me.Columns
'MsgBox(Aa.Text)
colIndex += 1
If colIndex >= StartPosition Then
RcolIndex += 1
SW.Write(Aa.Text & vbTab)
'excelApp.Cells(1, RcolIndex) = Aa.Text
End If
Next
SW.Write(vbCrLf)
'- 열데이터 내보내기
For Each LV In Me.Items
rowIndex += 1 '//행값을 1개 증가시킨다.
colIndex = 0 '//열값은 초기화한다.
RcolIndex = 0 '//열값은 초기화한다.
SubBuf = New StringBuilder '//문자열 저장버퍼 초기화
For Each la In LV.SubItems
colIndex += 1
If colIndex >= StartPosition Then
RcolIndex += 1
SW.Write(la.Text & vbTab) '//컬럼을 추가한다.
End If
Next
SW.Write(vbCrLf)
Next
SW.Close()
FS.Close()
Return True
Catch exp As Exception
MessageBox.Show(exp.ToString)
SW.Close()
FS.Close()
Return False
End Try
End Function
End Class

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,200 @@
Public Class lov
Public RES As Integer = 0
Public SelRow As DataRowView
Dim first As Boolean = False
' Dim DA As OracleClient.OracleDataAdapter
' Dim vCMD As OracleClient.OracleCommand
Dim Dt As New DataTable
Dim VSql As String
Dim work As Boolean
Dim A As New System.Text.StringBuilder
#Region "New Function"
Public Sub New()
InitializeComponent()
End Sub
Public Sub New(ByVal Dt As DataTable)
' 이 호출은 Windows Form 디자이너에 필요합니다.
InitializeComponent()
Me.BindingSource1.DataSource = Dt
Me.fpspread1.DataSource = Me.BindingSource1
'Me.OK_Button.PerformClick()
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
'Public Sub New(ByVal Connection As OracleClient.OracleConnection, ByVal Sql As String)
' ' 이 호출은 Windows Form 디자이너에 필요합니다.
' InitializeComponent()
' DA = New OracleClient.OracleDataAdapter(Sql, Connection)
' Dt = New DataTable
' DA.Fill(Dt)
' DA = Nothing
' Me.BindingSource1.DataSource = Dt
' Me.fpspread1.DataSource = Me.BindingSource1
' 'Me.OK_Button.PerformClick()
' ' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
'End Sub
'Public Sub New(ByVal cmd As OracleClient.OracleCommand)
' ' 이 호출은 Windows Form 디자이너에 필요합니다.
' InitializeComponent()
' vCMD = cmd
' DA = New OracleClient.OracleDataAdapter(vCMD)
' Dt = New DataTable
' DA.Fill(Dt)
' DA = Nothing
' Me.BindingSource1.DataSource = Dt
' Me.fpspread1.DataSource = Me.BindingSource1
' 'Me.OK_Button.PerformClick()
' ' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
'End Sub
#End Region
#Region "OK/CANCEL 버튼"
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ok.Click
SelRow = Me.BindingSource1.Current
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
#End Region
Public Sub NOTICE(ByVal MSG As String, ByVal Src As Object)
On Error Resume Next
If Src.GetType.Name.ToUpper = "TOOLSTRIPSTATUSLABEL" Then
CType(Src, ToolStripStatusLabel).Text = "" & MSG & Space(1)
ElseIf Src.GetType.Name.ToUpper = "LABEL" Then
CType(Src, Label).Text = "" & MSG & Space(1) & "(" & Now.ToString & ")"
End If
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
End Sub
Public Sub NOTICE(ByVal MSG As String, ByVal FCOLOR As Color, ByVal Src As System.Windows.Forms.ToolStripStatusLabel)
Src.Text = "" & MSG & Space(1) & "(" & Now.ToString & ")"
Src.ForeColor = FCOLOR
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
End Sub
Public Sub NOTICE(ByVal MSG As String, ByVal FCOLOR As Color, ByVal Src As System.Windows.Forms.ToolStripLabel)
Src.Text = "" & MSG & Space(1) & "(" & Now.ToString & ")"
Src.ForeColor = FCOLOR
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
End Sub
Public Sub NoticeDel(ByVal Src As System.Windows.Forms.ToolStripStatusLabel)
Src.Text = ""
End Sub
Private Sub fpspread1_CellDoubleClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs) Handles fpspread1.CellDoubleClick
Me.bt_ok.PerformClick()
End Sub
'Private Sub fpspread1_EnterCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.EnterCellEventArgs) Handles fpspread1.EnterCell
' NOTICE(Me.fpspread1_Sheet1.ActiveRowIndex & "/" & Me.fpspread1_Sheet1.ActiveColumnIndex & " : 엔터(ENTER)키는 현재항목을 선택 , ESC 키를 누르면 검색창으로 이동합니다.", Color.Blue, Me.lb_msg)
'End Sub
Private Sub fpspread1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles fpspread1.GotFocus
If Me.fpspread1_Sheet1.Rows.Count = 0 Then
NOTICE("선택 가능한 목록이 없습니다", Color.Red, Me.lb_msg)
Me.tb_searchText.Focus()
Else
NOTICE("엔터(ENTER)키는 현재항목을 선택 , ESC 키를 누르면 검색창으로 이동합니다.", Color.Blue, Me.lb_msg)
'MsgBox("sdf")
End If
End Sub
Private Sub Lov_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
Select Case Me.fpspread1.ActiveSheet.RowCount
Case 0
Me.bt_cancel.PerformClick()
Case 1
Me.bt_ok.PerformClick()
Case Else
Me.tb_searchText.Focus()
End Select
End Sub
''' <summary>
''' 사용하지않음
''' </summary>
''' <remarks></remarks>
Private Sub FindStr()
work = True
Dim Frow, Fcol As Integer
Dim Colname As String = Me.fpspread1.ActiveSheet.Columns(Me.fpspread1.ActiveSheet.ActiveColumnIndex).Label
Dim SearchStr As String = InputBox("[" & Colname & "] 열에서 검색할 문자를 입력하세요.", "검색문자를 입력하세요")
Me.fpspread1.Search(Me.fpspread1.ActiveSheetIndex, SearchStr, False, False, False, True, 0, Me.fpspread1.ActiveSheet.ActiveColumnIndex, Me.fpspread1.ActiveSheet.RowCount, Me.fpspread1.ActiveSheet.ActiveColumnIndex, Frow, Fcol)
If Frow >= 0 AndAlso Fcol >= 0 Then '//검색됫다면
Me.first = True
Me.fpspread1.ActiveSheet.SetActiveCell(Frow, Fcol)
SendKeys.Send("{RIGHT}")
SendKeys.Send("{LEFT}")
Me.lb_msg.Text = "줄번호 = " & Me.fpspread1.ActiveSheet.ActiveRowIndex + 1
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
Else
Me.lb_msg.Text = SearchStr & "로 검색된 값이 없습니다"
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
End If
End Sub
Private Sub Lov_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.fpspread1.EnterToNextItem()
End Sub
''' <summary>
''' where 절을 생성한후 리턴(모든 열에대한 같은 where like 절
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Private Function WhereState() As String
A.Remove(0, A.Length)
For i As Integer = 0 To Me.Dt.Columns.Count - 1
If Dt.Columns(i).DataType.Name.ToUpper = "STRING" Then
A.Append(IIf(i = 0, "", Space(1) & "or ") & Dt.Columns(i).Caption & " like '" & Me.tb_searchtext.Text & "%'")
End If
Next
Return A.ToString
End Function
Private Sub fpspread1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles fpspread1.KeyUp
Select Case e.KeyCode
Case Keys.Escape
Me.tb_searchtext.Focus()
Case Keys.Enter
Me.bt_ok.PerformClick()
End Select
End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_searchtext.GotFocus
NOTICE("방향키(↓)를 누르면 하단목록으로 이동합니다", Color.Blue, Me.lb_msg)
End Sub
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_searchtext.KeyDown
Select Case e.KeyCode
Case Keys.Down
Me.fpspread1.Focus()
If Me.fpspread1_Sheet1.Rows.Count = 1 Then Me.bt_ok.PerformClick() '//한것박에없을경우는 바로 그것이므로 바로 커밋한다.
Case Keys.Escape
Me.bt_cancel.PerformClick()
End Select
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_searchtext.TextChanged
Me.BindingSource1.Filter = Me.WhereState
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.tb_searchtext.Focus()
End Sub
End Class

View File

@@ -0,0 +1,29 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Text = "Form1"
End Sub
End Class

View File

@@ -0,0 +1,3 @@
Public Class Form1
End Class

View File

@@ -0,0 +1,137 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ImpCtl
Inherits System.Windows.Forms.UserControl
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.TextBox2 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.CheckBox1 = New System.Windows.Forms.CheckBox
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
Me.ComboBox1 = New System.Windows.Forms.ComboBox
Me.TableLayoutPanel1.SuspendLayout()
Me.SuspendLayout()
'
'TextBox2
'
Me.TextBox2.BackColor = System.Drawing.Color.LightSlateGray
Me.TextBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.TextBox2.Location = New System.Drawing.Point(1, 126)
Me.TextBox2.Margin = New System.Windows.Forms.Padding(0)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(89, 21)
Me.TextBox2.TabIndex = 6
Me.TextBox2.TabStop = False
Me.TextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label1
'
Me.Label1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.Label1.BackColor = System.Drawing.Color.White
Me.Label1.Font = New System.Drawing.Font("굴림", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label1.Location = New System.Drawing.Point(1, 1)
Me.Label1.Margin = New System.Windows.Forms.Padding(0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(89, 82)
Me.Label1.TabIndex = 5
Me.Label1.Text = "개체번호"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox1
'
Me.TextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TextBox1.Location = New System.Drawing.Point(1, 105)
Me.TextBox1.Margin = New System.Windows.Forms.Padding(0)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(89, 21)
Me.TextBox1.TabIndex = 4
Me.TextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'CheckBox1
'
Me.CheckBox1.AutoSize = True
Me.CheckBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.CheckBox1.Location = New System.Drawing.Point(1, 147)
Me.CheckBox1.Margin = New System.Windows.Forms.Padding(0)
Me.CheckBox1.Name = "CheckBox1"
Me.CheckBox1.Size = New System.Drawing.Size(89, 20)
Me.CheckBox1.TabIndex = 7
Me.CheckBox1.TabStop = False
Me.CheckBox1.Text = "빈값"
Me.ToolTip1.SetToolTip(Me.CheckBox1, "선택이 됫을경우 선택된 모든개체의 값이 비어있을경우 데이터가져오기 대상에 제외합니다")
Me.CheckBox1.UseVisualStyleBackColor = True
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
Me.TableLayoutPanel1.ColumnCount = 1
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.Controls.Add(Me.CheckBox1, 0, 4)
Me.TableLayoutPanel1.Controls.Add(Me.Label1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.TextBox2, 0, 3)
Me.TableLayoutPanel1.Controls.Add(Me.TextBox1, 0, 2)
Me.TableLayoutPanel1.Controls.Add(Me.ComboBox1, 0, 1)
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 5
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(91, 168)
Me.TableLayoutPanel1.TabIndex = 8
'
'ComboBox1
'
Me.ComboBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Items.AddRange(New Object() {"문자", "숫자", "날짜"})
Me.ComboBox1.Location = New System.Drawing.Point(1, 84)
Me.ComboBox1.Margin = New System.Windows.Forms.Padding(0)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(89, 20)
Me.ComboBox1.TabIndex = 8
'
'ImpCtl
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.TableLayoutPanel1)
Me.Name = "ImpCtl"
Me.Size = New System.Drawing.Size(91, 168)
Me.TableLayoutPanel1.ResumeLayout(False)
Me.TableLayoutPanel1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
End Class

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,173 @@
Imports System.Drawing
Public Class ImpCtl
Enum e_Valuetype
문자 = 0
숫자 = 1
날짜 = 2
End Enum
Dim v필드명 As String
Public Event TimeExpired(ByVal sender As Object, ByVal Status As String)
''' <summary>
''' 사용여부
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Overloads Property eNABLED() As Boolean
Get
Return Me.TextBox1.Enabled
End Get
Set(ByVal value As Boolean)
Me.TextBox1.Enabled = value
Me.Label1.Enabled = value
Me.TextBox2.Enabled = value
Me.CheckBox1.Enabled = value
If value = False Then Me.Label1.Text = ".."
End Set
End Property
''' <summary>
''' 연결할 필드명입니다.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property 필드명() As String
Get
Return v필드명
End Get
Set(ByVal value As String)
v필드명 = value
End Set
End Property
Public Property Vtype() As Boolean
Get
Return Me.ComboBox1.Enabled
End Get
Set(ByVal value As Boolean)
Me.ComboBox1.Enabled = value
End Set
End Property
Public Property Valuetype() As e_Valuetype
Get
Return Me.ComboBox1.SelectedIndex
End Get
Set(ByVal value As e_Valuetype)
Me.ComboBox1.SelectedIndex = 0
End Set
End Property
Public Property 제목() As String
Get
Return Me.Label1.Text
End Get
Set(ByVal value As String)
Me.Label1.Text = value.Replace("/", vbCrLf)
End Set
End Property
Public Property 문자열자르기() As String
Get
Return Me.TextBox2.Text
End Get
Set(ByVal value As String)
Me.TextBox2.Text = value
End Set
End Property
Public Property 열번호() As String
Get
Return Me.TextBox1.Text
End Get
Set(ByVal value As String)
Me.TextBox1.Text = value
End Set
End Property
Public Property 빈값체크() As Boolean
Get
Return Me.CheckBox1.Checked
End Get
Set(ByVal value As Boolean)
Me.CheckBox1.Checked = value
End Set
End Property
Public Sub New()
' 이 호출은 Windows Form 디자이너에 필요합니다.
InitializeComponent()
' AddHandler TextBox1.TextChanged, ADDRESS OF
'AddHandler TextBox1.TextChanged, AddressOf ControlChanged
' AddHandler Me.DoubleClick, Me.TextBox1.DoubleClick
'AddHandler Me.TimeExpired, AddressOf timeExp
End Sub
Private Sub timeExp(ByVal sender As Object, ByVal stri As String)
'MsgBox(stri)
End Sub
Private Sub ControlChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim A As TextBox = CType(sender, TextBox)
If A.Text.Length <= 0 Then Exit Sub
Select Case A.Text.Substring(0, 1)
Case ":"
If IsNumeric(A.Text.Substring(1)) Then
A.BackColor = Color.LawnGreen
Else
A.BackColor = Color.Tomato
End If
Case "?"
A.BackColor = Color.Gray
Case "#"
A.BackColor = Color.SteelBlue
Case Else
A.BackColor = Color.White
End Select
End Sub
Private Sub UserControl1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.DoubleClick
RaiseEvent TimeExpired(Me, "sdf")
End Sub
Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
RaiseEvent TimeExpired(Me, "sdf")
End Sub
Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
Me.TextBox1.SelectAll()
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
Me.TextBox2.SelectAll()
End Sub
Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus
Me.TextBox2.SelectAll()
' SendKeys.Send("{TAB}")
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
Me.TextBox1.SelectAll()
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Me.CheckBox1.ForeColor = IIf(Me.CheckBox1.Checked, Color.Red, Color.Black)
Me.Label1.ForeColor = IIf(Me.CheckBox1.Checked, Color.Red, Color.Black)
End Sub
End Class

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="new_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\new_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="close_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\close_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="srch_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\srch_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1 @@
FarPoint.Win.Spread.FpSpread, FarPoint.Win.Spread, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyCheckBox
Inherits System.Windows.Forms.CheckBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.SuspendLayout()
Me.ResumeLayout(False)
End Sub
End Class

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyCombo
Inherits System.Windows.Forms.ComboBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
''Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,205 @@
Imports System.Text
Imports System.Data
Imports System
Public Class MyCombo
Dim ColName As String
Dim Coltype As OleDbType = OleDbType.VarChar
Dim Ditem As Boolean
Dim SQl As String
Dim QueryType As Boolean = False
Dim Prompt As String
Dim WhereState As String = vbNullString
Dim POS As Int16
Dim StaticList As String = vbNullString '//쿼리아이템이아닌 수동아이템용 목록을 저장한다.
Dim QueryList As String = vbNullString '//쿼리아이템시 수동으로 입력할 목록을 저장한다.
Dim NotNull As Boolean = False
<System.ComponentModel.Description("반드시입력되어야 할 값입니까?")> _
Public Property DB_NotNull() As Boolean
Get
Return NotNull
End Get
Set(ByVal value As Boolean)
NotNull = value
End Set
End Property
<System.ComponentModel.Description("데이터베이의 위치표시")> _
Public Property DB_POs() As Int16
Get
Return POS
End Get
Set(ByVal value As Int16)
POS = value
End Set
End Property
<System.ComponentModel.Description("[STR] 검색조건절의 형태를 씁니다.(EX, >= , > , = , <= , < , LIKE )")> _
Public Property DB_WhereType() As String
Get
Return WhereState
End Get
Set(ByVal value As String)
WhereState = value
End Set
End Property
<System.ComponentModel.Description("목록을 작성할 쿼리문입니다" & vbCrLf & "Ex: select name,val from table")> _
Public Property DB_Query() As String
Get
Return SQl
End Get
Set(ByVal value As String)
SQl = value
End Set
End Property
<System.ComponentModel.Description("아이템목록이 쿼리로 되어있는지" & vbCrLf & "수동문자열인지 선택합니다")> _
Public Property DB_QueryType() As Boolean
Get
Return QueryType
End Get
Set(ByVal value As Boolean)
QueryType = value
End Set
End Property
<System.ComponentModel.Description("아이템을 쿼리로 작성시 추가로 입력할값을 표시" & vbCrLf & "ex:DSP,VAL,POS:텍스트,값,위치")> _
Public Property DB_QueryItem() As String
Get
Return QueryList
End Get
Set(ByVal value As String)
QueryList = value
End Set
End Property
<System.ComponentModel.Description("아이템을 수동작성시 입력할값" & vbCrLf & "ex:DSP,VAL:텍스트,값")> _
Public Property DB_StaticItem() As String
Get
Return StaticList
End Get
Set(ByVal value As String)
StaticList = value
End Set
End Property
<System.ComponentModel.Description("현재 별 의미는 없다..컬럼이 의미하는 글자")> _
Public Property DB_Prompt() As String
Get
Return IIf(Prompt Is vbNullString, DB_ColName, Prompt)
End Get
Set(ByVal value As String)
Prompt = value
End Set
End Property
<System.ComponentModel.Description("데이터베이스 컬럼의 이름을 적는다!. 반드시 필수")> _
Public Property DB_ColName() As String
Get
If ColName = "" Then
Return Me.Name
Else
Return ColName
End If
End Get
Set(ByVal value As String)
ColName = value
End Set
End Property
<System.ComponentModel.Description("데이터베이스 컬럼의 형식을 고른다")> _
Public Property DB_Type() As OleDbType
Get
Return Coltype
End Get
Set(ByVal value As OleDbType)
Coltype = value
End Set
End Property
<System.ComponentModel.Description("현재 컨트롤이 데이터베이스 필드인지 선택합니다.")> _
Public Property DB_ITEM() As Boolean
Get
Return Ditem
End Get
Set(ByVal value As Boolean)
Ditem = value
End Set
End Property
<System.ComponentModel.Description("현재값")> _
Public Property Value() As String
Get
If Me.SelectedValue = "" Then
Return Me.Text
Else
Return Me.SelectedValue
End If
End Get
Set(ByVal value As String)
Me.SelectedValue = value
If Me.SelectedValue Is vbNullString Then Me.Text = value
End Set
End Property
''' <summary>
''' 지정된 목록으로 업데이트
''' </summary>
''' <remarks></remarks>
Public Sub UpdateItem()
Dim NTab As New DataTable
Dim UserRow As DataRow
If QueryType = True Then '//쿼리를 사용해서 아이템을 쓸때
'DB.DB_SQL = (SQl)
' DB.Get_Data(NTab)
'NTab = DB.Get_TABLE
If Not QueryList Is Nothing Then
If QueryList.Trim.Length > 0 Then
For Each R As String In QueryList.Split(":")
UserRow = NTab.NewRow
UserRow(0) = R.Split(",")(0)
UserRow(1) = R.Split(",")(1)
NTab.Rows.InsertAt(UserRow, R.Split(",")(2))
Next
End If
End If
'If QueryList <> Nothing OrElse QueryList.Trim.Length > 0 Then '//추가쿼리목록이 있을경우에 추가해준다.
'For Each R As String In QueryList.Split(",")
'NTab.Rows.Add(R.Split(","))
'Next
'End If
Me.DataSource = NTab
Me.DisplayMember = Me.DisplayMember
Me.ValueMember = Me.ValueMember
Else '//쿼리가아닌 staticitem 을 데이터테이블로 만들어서 한다.
If StaticList = "" Then Exit Sub
Dim A As New DataTable("NEWTAB")
Dim CDIV() As String = StaticList.Split(":")
A.Columns.Add("DSP")
A.Columns.Add("VAL")
'SataicList 를 :로 분할한뒤 , 데이터를 나눈다.
For Each R As String In CDIV
A.Rows.Add(R.Split(","))
Next
Me.DataSource = A
Me.DisplayMember = "DSP"
Me.ValueMember = "VAL"
End If
End Sub
Private Sub ComboBOx_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}")
End Sub
End Class

View File

@@ -57,13 +57,13 @@
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="FarPoint.CalcEngine, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Excel, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PDF, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Chart, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Spread, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL" />
<Reference Include="FarPoint.CalcEngine, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Excel, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PDF, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Chart, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
<Reference Include="FarPoint.Win.Spread, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />

View File

@@ -0,0 +1,27 @@
Imports FarPoint.Win.Spread
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyFpoint
Inherits FarPoint.Win.Spread.FpSpread
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
'Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,287 @@
Imports System.IO
Public Class MyINI2
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpDownFileName As String) As Integer
'Private Aname As String
Public FileName As String = vbNullString
Private FileNameBuf As String
Private m_sPath As String
Private m_sKey As String
Private m_sSection As String
Private m_sDefault As String
Private m_lLastReturnCode As Integer
Public Sub New(ByVal File As String)
FileName = File
FileNameBuf = File
Me.Create()
'MsgBox("New 1=" & FileName & vbCrLf & "2=" & FileNameBuf)
' If Not System.IO.File.Exists(File) Then System.IO.File.Create(File)
End Sub
Public Sub Create()
If Exist() = True Then Return
Dim A As New IO.FileInfo(FileName)
A.Directory.Create()
Dim FS As IO.FileStream = A.Create()
Dim SW As New IO.StreamWriter(FS, System.Text.Encoding.Default)
SW.WriteLine("//Myini 로부터 자동생성된 파일입니다")
SW.WriteLine("//생성일자 : " & Now.ToString)
SW.Flush()
SW.Close()
FS.Close()
SW = Nothing
FS = Nothing
FileName = FileNameBuf
End Sub
Public Function Exist() As Boolean
Return System.IO.File.Exists(FileName)
End Function
Public Function Read(ByVal appkey As String, ByVal subkey As String, Optional ByVal DefaultValue As String = vbNullString) As String '//변수초기화
'MsgBox("Read 1=" & FileName & vbCrLf & "2=" & FileNameBuf)
Dim tempstr As Integer 'ini파일에서 읽어온 값을 임시저장하는 변수
Dim strtemp As String = New String(Chr(0), 2000) 'ini파일의 임시 변수
Dim Tempbuf As String
If Not Exist() Then
MsgBox("환경파일이 존재하지 않습니다" & vbCrLf & "APP=" & appkey & vbCrLf & "subkey=" & subkey & vbCrLf & "파일명=" & FileName, MsgBoxStyle.Critical, "Error")
Return vbNullString
End If
Try
tempstr = GetPrivateProfileString(appkey, subkey, "", strtemp, Len(strtemp), FileName)
Tempbuf = strtemp.Substring(0, tempstr)
Tempbuf = Tempbuf.Trim(Chr(0))
FileName = FileNameBuf
If Tempbuf.Trim = vbNullString AndAlso DefaultValue <> vbNullString Then
Return DefaultValue
Else
Return Tempbuf
End If
Catch ex As Exception
FileName = FileNameBuf
Return vbNullString
End Try
End Function
Public Function ReadFile(ByVal appkey As String, ByVal subkey As String, ByVal filename2 As String, Optional ByVal DefaultValue As String = vbNullString) As String '//변수초기화
'MsgBox("ReadFile 1=" & FileName & vbCrLf & "2=" & FileNameBuf)
Dim tempstr As Integer 'ini파일에서 읽어온 값을 임시저장하는 변수
Dim strtemp As String = New String(Chr(0), 2000) 'ini파일의 임시 변수
Dim Tempbuf As String
If Not System.IO.File.Exists(filename2) Then
MsgBox("환경파일이 존재하지 않습니다" & vbCrLf & "파일명=" & FileName, MsgBoxStyle.Critical, "Error")
Return vbNullString
End If
Try
tempstr = GetPrivateProfileString(appkey, subkey, "", strtemp, Len(strtemp), filename2)
Tempbuf = strtemp.Substring(0, tempstr)
If Tempbuf.Trim = vbNullString AndAlso DefaultValue <> vbNullString Then
Return DefaultValue
Else
Return Tempbuf
End If
Catch ex As Exception
Return vbNullString
End Try
FileName = FileNameBuf
End Function
Public Function Write(ByVal appkey As String, ByVal subkey As String, ByVal WriteVal As Object) As Integer
Dim RetVal As Integer
'MsgBox("Write1 1=" & FileName & vbCrLf & "2=" & FileNameBuf)
If Not Exist() Then
MsgBox("환경파일이 존재하지 않습니다" & vbCrLf & "파일을 생성합니다." & vbCrLf & "파일명=" & FileName, MsgBoxStyle.Information, "확인")
Me.Create()
End If
' FileName = Aname
RetVal = (WritePrivateProfileString(appkey, subkey, WriteVal, FileName))
FileName = FileNameBuf
Return RetVal
End Function
Public Sub Write(ByVal appkey As String, ByVal subkey As String, ByVal WriteVal As Object, ByVal fileName2 As String)
'MsgBox("Write2 1=" & FileName & vbCrLf & "2=" & FileNameBuf)
If Not System.IO.File.Exists(fileName2) Then
MsgBox("[D] 환경파일이 존재하지 않습니다" & vbCrLf & "파일을 생성합니다." & vbCrLf & "파일명=" & fileName2, MsgBoxStyle.Information, "확인")
System.IO.File.Create(fileName2)
End If
WritePrivateProfileString(appkey, subkey, WriteVal, fileName2)
FileName = FileNameBuf
End Sub
Public Sub EnumerateCurrentSection(ByRef sKey() As String, ByRef iCount As Integer)
Dim sSection As String
Dim iPos As Integer
Dim iNextPos As Integer
Dim sCur As String
iCount = 0
Erase sKey
sSection = INISection
If (Len(sSection) > 0) Then
iPos = 1
iNextPos = InStr(iPos, sSection, Chr(0))
Do While iNextPos <> 0
sCur = Mid(sSection, iPos, iNextPos - iPos)
If (sCur <> Chr(0)) Then
iCount = iCount + 1
'UPGRADE_WARNING: sKey 배열의 하한이 1에서 0(으)로 변경되었습니다. 자세한 내용은 다음을 참조하십시오. 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="0F1C9BE1-AF9D-476E-83B1-17D43BECFF20"'
ReDim Preserve sKey(iCount)
sKey(iCount) = Mid(sSection, iPos, iNextPos - iPos)
iPos = iNextPos + 1
iNextPos = InStr(iPos, sSection, Chr(0))
End If
Loop
End If
End Sub
Public Sub GetAllsection(ByVal key As String, ByRef Section As ArrayList, ByRef Value As ArrayList)
Dim FS As New System.IO.FileStream(FileName, FileMode.Open)
Dim SR As New StreamReader(FS, System.Text.Encoding.Default)
Dim Findkey As String = "[" & key & "]"
Dim Line As String
Dim KeyPos As Integer = -1
Dim Seppos As Integer = -1
While SR.Peek > -1
Line = SR.ReadLine
If KeyPos = -1 Then '//키를 못찻았으면
If Line.ToUpper.IndexOf(Findkey.ToUpper) > -1 Then KeyPos = Line.ToUpper.IndexOf(Findkey.ToUpper)
Else '//찾앗으면
If Line.IndexOf("[") = -1 Then '//그다음 키가 오기전까지 모두 추가한다.
Seppos = Line.IndexOf("=")
Section.Add(Line.Substring(0, Seppos))
Value.Add(Line.Substring(Seppos + 1))
Else
Exit While
End If
End If
End While
SR.Close()
FS.Close()
End Sub
Public Sub EnumerateAllSections(ByRef sSections() As String, ByRef iCount As Integer)
Dim sIniFile As String
Dim iPos As Integer
Dim iNextPos As Integer
Dim sCur As String
iCount = 0
Erase sSections
sIniFile = Sections
If (Len(sIniFile) > 0) Then
iPos = 1
iNextPos = InStr(iPos, sIniFile, Chr(0))
Do While iNextPos <> 0
If (iNextPos <> iPos) Then
sCur = Mid(sIniFile, iPos, iNextPos - iPos)
iCount = iCount + 1
'UPGRADE_WARNING: sSections 배열의 하한이 1에서 0(으)로 변경되었습니다. 자세한 내용은 다음을 참조하십시오. 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="0F1C9BE1-AF9D-476E-83B1-17D43BECFF20"'
ReDim Preserve sSections(iCount)
sSections(iCount) = sCur
End If
iPos = iNextPos + 1
iNextPos = InStr(iPos, sIniFile, Chr(0))
Loop
End If
End Sub
Property INISection() As String
Get
Dim sBuf As String
Dim iSize As String
Dim iRetCode As Short
sBuf = Space(8192)
iSize = CStr(Len(sBuf))
iRetCode = GetPrivateProfileString(m_sSection, 0, m_sDefault, sBuf, CInt(iSize), m_sPath)
If (CDbl(iSize) > 0) Then
INISection = Left(sBuf, iRetCode)
Else
INISection = ""
End If
End Get
Set(ByVal Value As String)
m_lLastReturnCode = WritePrivateProfileString(m_sSection, 0, Value, m_sPath)
End Set
End Property
ReadOnly Property Sections() As String
Get
Dim sBuf As String
Dim iSize As String
Dim iRetCode As Short
sBuf = Space(8192)
iSize = CStr(Len(sBuf))
iRetCode = GetPrivateProfileString(0, 0, m_sDefault, sBuf, CInt(iSize), m_sPath)
If (CDbl(iSize) > 0) Then
Sections = Left(sBuf, iRetCode)
Else
Sections = ""
End If
End Get
End Property
ReadOnly Property LastReturnCode() As Integer
Get
LastReturnCode = m_lLastReturnCode
End Get
End Property
ReadOnly Property Success() As Boolean
Get
Success = (m_lLastReturnCode <> 0)
End Get
End Property
'UPGRADE_NOTE: Default이(가) Default_Renamed(으)로 업그레이드되었습니다. 자세한 내용은 다음을 참조하십시오. 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="A9E4979A-37FA-4718-9994-97DD76ED70A7"'
Property Default_Renamed() As String
Get
Default_Renamed = m_sDefault
End Get
Set(ByVal Value As String)
m_sDefault = Value
End Set
End Property
Property Path() As String
Get
Path = m_sPath
End Get
Set(ByVal Value As String)
m_sPath = Value
End Set
End Property
Property Key() As String
Get
Key = m_sKey
End Get
Set(ByVal Value As String)
m_sKey = Value
End Set
End Property
Property Section() As String
Get
Section = m_sSection
End Get
Set(ByVal Value As String)
m_sSection = Value
End Set
End Property
End Class

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyLabel
Inherits System.Windows.Forms.PictureBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
'Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,226 @@
Public Class MyLabel
Public TextValue As String = "[tindevil@Nate.com]"
Public TextFont As New Font("HY견고딕", 30)
Dim v장평 As Int16 = 100
Dim v장높이 As Int16 = 100
Dim v설명 As String = vbNullString
Dim v전경색 As Color = Color.Black
Dim v회전 As Int16 = 0
Private v_공백 As Int16 = 0 '//공백
Private V_CB As CheckBox
Public Repeat As Short = 0 '//반복출력횟수
Public RepeatX As Single '//반복출력시 x변위
Public RepeatY As Single '//반복출력시 y변위
Public Pattern As String
Public DIV As String
Public Sub New()
' 이 호출은 Windows Form 디자이너에 필요합니다.
InitializeComponent()
'Me.BackColor = Color.Transparent
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
<System.ComponentModel.Description("글자사이의 공백 수")> _
Public Property CheckBox() As CheckBox
Get
Return V_CB
End Get
Set(ByVal value As CheckBox)
V_CB = value
Me.Invalidate()
End Set
End Property
<System.ComponentModel.Description("글자사이의 공백 수")> _
Public Property 공백() As Int16
Get
Return v_공백
End Get
Set(ByVal value As Int16)
v_공백 = value
Me.Invalidate()
End Set
End Property
Public Function 최종문자() As String
If v_공백 = 0 Then Return TextValue.Trim
Dim z As New System.Text.StringBuilder
For Each A As Char In TextValue.ToCharArray
z.Append(A.ToString & Space(v_공백))
Next
Return (z.ToString.Trim())
End Function
''' <summary>
''' 컨트롤의 장평을 설정합니다 기본값=100
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<DefaultValue(100), Description("컨트롤의 장평을 설정합니다. 기본=100%")> _
Public Property 장평() As Int16
Get
Return v장평
End Get
Set(ByVal value As Int16)
v장평 = value
Me.Invalidate()
End Set
End Property
<DefaultValue(100), Description("컨트롤의 글자너비를 설정합니다. 기본=100%")> _
Public Property 회전() As Int16
Get
Return v회전
End Get
Set(ByVal value As Int16)
v회전 = value
Me.Invalidate()
End Set
End Property
<DefaultValue(100), Description("컨트롤의 글자너비를 설정합니다. 기본=100%")> _
Public Property 장높이() As Int16
Get
Return v장높이
End Get
Set(ByVal value As Int16)
v장높이 = value
Me.Invalidate()
End Set
End Property
Public Function GetSize(Optional ByVal NewFont As Font = Nothing) As SizeF
If NewFont Is Nothing Then NewFont = TextFont
Return TextRenderer.MeasureText(최종문자, NewFont)
End Function
''' <summary>
''' 컨트롤의 설명을 집어넣습니다.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("컨트롤의 설명입니다")> _
Property 설명() As String
Get
If v설명 = vbNullString Then Return Me.Name.ToString
Return v설명
End Get
Set(ByVal value As String)
v설명 = value
End Set
End Property
Public Property MyForeColor() As Color
Get
Return v전경색
End Get
Set(ByVal value As Color)
v전경색 = value
Me.Invalidate()
End Set
End Property
<System.ComponentModel.Description("표시할 문자를 설정합니다.길이는 1입니다")> _
Public Property MyText() As String
Get
Return TextValue
End Get
Set(ByVal value As String)
TextValue = value
Me.Invalidate()
End Set
End Property
<System.ComponentModel.Description("텍스트의 폰트타입을 설정합니다")> _
Public Property MyFont() As Font
Get
Return TextFont
End Get
Set(ByVal value As Font)
TextFont = value
Me.Invalidate()
End Set
End Property
Public Function GetImage() As Bitmap
Dim Br As New SolidBrush(v전경색)
Me.Height = GetSize.Height * (v장높이 / 100)
Me.Width = GetSize.Width * (v장평 / 100)
Dim Bmp As New Bitmap(Me.Width, Me.Height, Me.CreateGraphics)
Dim G As Graphics = Graphics.FromImage(Bmp)
G.ScaleTransform((v장평 / 100), (v장높이 / 100))
G.DrawString(TextValue, TextFont, Br, 0, 0)
G.Dispose()
Return Bmp
End Function
Protected Overrides Sub OnPaint(ByVal pe As System.Windows.Forms.PaintEventArgs)
Dim Br As New SolidBrush(v전경색)
Dim LastText As String = ""
Dim Idx As Integer = 0
Dim Z As New System.Drawing.StringFormat()
Z.FormatFlags = StringFormatFlags.MeasureTrailingSpaces
If v장평 = 100 AndAlso v장높이 = 100 Then '//장평미적용 문자로 처리
Me.Width = GetSize.Width
Me.Height = GetSize.Height
LastText = 최종문자()
' Dim A As New Font("굴림", 20, FontStyle.Regular, GraphicsUnit.Display, &H1, True)
pe.Graphics.DrawString(LastText, TextFont, Br, 0, 0, Z)
'pe.Graphics.DrawString(LastText, A, Br, 0, 0)
Else
Me.Height = GetSize.Height * (v장높이 / 100)
Me.Width = GetSize.Width * (v장평 / 100)
Dim Bmp As New Bitmap(Me.Width, Me.Height, pe.Graphics)
Dim G As Graphics = Graphics.FromImage(Bmp)
If v회전 <> 0 Then
'G.ResetTransform()
'G.TranslateTransform(-Me.Width, -Me.Height, Drawing2D.MatrixOrder.Append)
'G.RotateTransform(v회전, Drawing2D.MatrixOrder.Append)
'G.TranslateTransform(Me.Width, Me.Height, Drawing2D.MatrixOrder.Append)
G.TranslateTransform(-Me.Width, -Me.Height, Drawing2D.MatrixOrder.Append)
G.RotateTransform(v회전, Drawing2D.MatrixOrder.Append)
G.TranslateTransform(Me.Width, Me.Height, Drawing2D.MatrixOrder.Append)
End If
'G.TranslateTransform(Me.Width / 2, Me.Height / 2, Drawing2D.MatrixOrder.Append)
G.ScaleTransform((v장평 / 100), (v장높이 / 100))
G.DrawString(TextValue, TextFont, Br, 0, 0)
G.Dispose()
pe.Graphics.DrawImage(Bmp, 0, 0) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
End If
End Sub
Private Sub RotateAt(ByVal gr As Graphics, ByVal cx As Integer, ByVal cy As Integer, ByVal angle As Single)
gr.ResetTransform()
gr.TranslateTransform(-cx, -cy, Drawing2D.MatrixOrder.Append)
gr.RotateTransform(angle, Drawing2D.MatrixOrder.Append)
gr.TranslateTransform(cx, cy, Drawing2D.MatrixOrder.Append)
End Sub
End Class

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyListView
Inherits System.Windows.Forms.ListView
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
' Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,32 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyMaskBox
Inherits System.Windows.Forms.MaskedTextBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider(Me.components)
CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider
End Class

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>394, 208</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@@ -0,0 +1,190 @@
Public Class MyMaskBox
Enum Inputtype
전부 = 1
숫자 = 2
문자 = 3
소문자 = 5
대문자 = 6
End Enum
Dim ColName As String
Dim Coltype As OleDbType = OleDbType.VarChar
Dim Ditem As Boolean
Dim Prompt As String
Dim WhereState As String = vbNullString
Dim NotNull As Boolean = False
Dim iNTYPE As Inputtype = Inputtype.전부
Dim DEF_VALUE As String = Me.Text
Protected Var_ViewColNumber As Short
Protected Var_BaseLabel As Label
<System.ComponentModel.Description("이 컨트롤과 연결된 문자를 나타낼 레이블을 선택합니다")> _
Public Property DB_BaseLabel() As Label
Get
Return Var_BaseLabel
End Get
Set(ByVal value As Label)
'//데이터가 들어오면 현재의 프롬프트를 갱신합니다.
Var_BaseLabel = value
Me.DB_Prompt = Prompt
End Set
End Property
<System.ComponentModel.Description("입력되는 값을 필터링합니다")> _
Public Property WHERE_DEFAULT_VALUE() As String
Get
Return DEF_VALUE
End Get
Set(ByVal value As String)
DEF_VALUE = value
End Set
End Property
<System.ComponentModel.Description("입력되는 값을 필터링합니다")> _
Public Property Input_type() As Inputtype
Get
Return iNTYPE
End Get
Set(ByVal value As Inputtype)
iNTYPE = value
End Set
End Property
<System.ComponentModel.Description("반드시입력되어야 할 값입니까?")> _
Public Property DB_NotNull() As Boolean
Get
Return NotNull
End Get
Set(ByVal value As Boolean)
NotNull = value
End Set
End Property
<System.ComponentModel.Description("검색그룹에 있을시 WHere 절")> _
Public Property DB_WhereType() As String
Get
Return WhereState
End Get
Set(ByVal value As String)
WhereState = value
End Set
End Property
<System.ComponentModel.Description("컬럼의 설명")> _
Public Property DB_Prompt() As String
Get
Return IIf(Prompt Is vbNullString, DB_ColName, Prompt)
End Get
Set(ByVal value As String)
Prompt = value
End Set
End Property
<System.ComponentModel.Description("바인딩될 데이터베이스 컬럼명")> _
Public Property DB_ColName() As String
Get
If ColName = "" Then
Return Me.Name
Else
Return ColName
End If
End Get
Set(ByVal value As String)
ColName = value
End Set
End Property
<System.ComponentModel.Description("연결될 데이터베이스 데이터형식")> _
Public Property DB_Type() As OleDbType
Get
Return Coltype
End Get
Set(ByVal value As OleDbType)
Coltype = value
End Set
End Property
<System.ComponentModel.Description("데이터베이스와 연결될 아이템인가?")> _
Public Property DB_ITEM() As Boolean
Get
Return Ditem
End Get
Set(ByVal value As Boolean)
Ditem = value
End Set
End Property
''' <summary>
''' 현재 값을 설정하거나 반환합니다.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
<System.ComponentModel.Description("현재 값을 설정하거나 가져옵니다")> _
Public Property Value() As String
Get
Return Me.Text
End Get
Set(ByVal value As String)
If value.ToUpper = "$$DATE$$" Then
Me.Text = Format(Now, "yyyyMMdd")
Else
Me.Text = value
End If
End Set
End Property
Private Sub MyMaskTextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs)
Me.SelectAll()
End Sub
Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Select Case iNTYPE
Case Inputtype.대문자
If Char.IsNumber(e.KeyChar) Then
e.Handled = True
Else
e.KeyChar = Char.ToUpper(e.KeyChar.ToString)
End If
'If Not Char.IsUpper(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.문자
If Char.IsNumber(e.KeyChar) Then e.Handled = True
' If Not Char.IsLetter(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.소문자
If Char.IsNumber(e.KeyChar) Then
e.Handled = True
Else
e.KeyChar = Char.ToLower(e.KeyChar.ToString)
End If
'If Not Char.IsLower(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.숫자
If Char.IsLetter(e.KeyChar) Then e.Handled = True
End Select
End Sub
Private Sub TextBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}")
If e.Alt AndAlso e.KeyCode = Keys.Enter Then SendKeys.Send("+{TAB}")
End Sub
Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If Me.NotNull = True AndAlso Me.Text = "" Then
Me.ErrorProvider1.SetError(Me, "이 필드는 반드시 입력되어야합니다")
Else
Me.ErrorProvider1.Clear()
End If
End Sub
End Class

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MySearchGrp
Inherits System.Windows.Forms.GroupBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
' Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,184 @@
Imports System.Text
Public Class MySearchGrp
''' <summary>
''' 이 개체에 커서를 이동합니다.
''' </summary>
''' <remarks></remarks>
Public Sub DB_SetFocus()
'정렬된 아이템중에 1번쨰 아이템에 포커르를 줍니다.
Dim A As ArrayList = GetSortedItem()
Dim itm As Control = A(0)
Dim ItmType As String = itm.GetType.Name.ToString.ToUpper
Select Case ItmType
Case "TEXTBOX"
CType(itm, MyControlOLEDBv2.MyTextBox).Focus()
Case "CHECKBOX"
CType(itm, MyControlOLEDBv2.MyCheckBox).Focus()
Case "COMBOBOX"
CType(itm, MyControlOLEDBv2.MyCombo).Focus()
End Select
End Sub
''' <summary>
''' 탭순서를 이용하여 정렬된 아이템의 배열(ARRAYLIST)을 반환합니다.
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function GetSortedItem() As ArrayList
Dim Iname As String
Dim CAr As New ArrayList
Dim CArC As New ArrayList
For Each itm As Control In Me.Controls
Iname = itm.GetType.Name.ToString.ToUpper
If Iname = "TEXTBOX" OrElse Iname = "CHECKBOX" OrElse Iname = "COMBOBOX" Then
CAr.Add(itm.TabIndex)
End If
Next
CAr.Sort()
For i As Integer = 0 To CAr.Count - 1
For Each itm As Control In Me.Controls
Iname = itm.GetType.Name.ToString.ToUpper
If itm.TabIndex = CAr.Item(i) Then CArC.Add(itm)
Next
Next
Return CArC
End Function
''' <summary>
''' WHERE SQL을 반한합니다.(PROMPT=TRUE 이면 WHERE절이 붙어서 반환됩니다)
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function GetWhere(Optional ByVal HEADER As Boolean = False, Optional ByVal AddParam As Boolean = True, Optional ByVal ResetParam As Boolean = True) As String
'where 절은 kcode = >= <= != 이런형태가 들어가서 만들어진다.
'where 절내의 Db_item 타입이 true 인것들만 구문을 작성한다.
Dim SQL As New StringBuilder(vbNullString)
Dim CNT As Integer = 0
If ResetParam Then
' MsgBox("파라미터 리셋")
'DB.MyParam_Reset()
End If
For Each ITM As Object In Me.Controls
' MsgBox(ITM.GetType.Name)
Select Case ITM.GetType.Name.ToUpper
Case "MYMASKTEXTBOX"
Dim A As MyControlOLEDBv2.MyMaskBox = ITM
If A.DB_ITEM AndAlso A.Text.Trim <> "" Then
'기본값 WHERE_DEFAULT_VALUE 값을 확인합니다. 변경이되었다면 WHERE절을 생성합니다
If A.Text <> A.WHERE_DEFAULT_VALUE Then
CNT += 1
If CNT <> 1 Then SQL.Append(" AND ")
If Not AddParam Then '//문자는 '를붙여준다
If A.DB_Type = OleDbType.VarChar Then
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & "'" & A.Value & "'")
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & A.Value)
End If
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & " :S" & CNT)
End If
'If AddParam Then DB.MyParam_Add(" :S" & CNT, A.DB_Type, A.Value)
End If
End If
Case "TEXTBOX"
Dim A As MyControlOLEDBv2.MyTextBox = ITM
If A.DB_ITEM AndAlso A.Text.Trim <> "" Then
'기본값 WHERE_DEFAULT_VALUE 값을 확인합니다. 변경이되었다면 WHERE절을 생성합니다
If A.Text <> A.WHERE_DEFAULT_VALUE Then
CNT += 1
If CNT <> 1 Then SQL.Append(" AND ")
If Not AddParam Then
If A.DB_Type = OleDbType.VarChar Then
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & "'" & A.Value & "'")
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & A.Value)
End If
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & " :S" & CNT)
End If
'If AddParam Then DB.MyParam_Add(" :S" & CNT, A.DB_Type, A.Value)
End If
End If
Case "CHECKBOX"
Dim A As MyControlOLEDBv2.MyCheckBox = ITM
If A.DB_ITEM Then
'기본값 WHERE_DEFAULT_VALUE 값을 확인합니다. 변경이되었다면 WHERE절을 생성합니다
CNT += 1
If CNT <> 1 Then SQL.Append(" AND ")
If Not AddParam Then
If A.DB_Type = OleDbType.VarChar Then
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & "'" & A.Value & "'")
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & A.Value)
End If
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & " :S" & CNT)
End If
'If AddParam Then DB.MyParam_Add(" :S" & CNT, A.DB_Type, A.Value)
End If
Case "COMBOBOX"
Dim A As MyControlOLEDBv2.MyCombo = ITM
If A.DB_ITEM Then
'기본값 WHERE_DEFAULT_VALUE 값을 확인합니다. 변경이되었다면 WHERE절을 생성합니다
If (A.DropDownStyle <> ComboBoxStyle.DropDownList AndAlso A.Text.Trim <> "") OrElse (A.DropDownStyle = ComboBoxStyle.DropDownList AndAlso Not (A.SelectedIndex = 0 AndAlso A.SelectedValue = -1)) Then
CNT += 1
If CNT <> 1 Then SQL.Append(" AND ")
If Not AddParam Then
If A.DB_Type = OleDbType.VarChar Then
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & "'" & A.Value & "'")
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & A.Value)
End If
Else
SQL.Append(A.DB_ColName & Space(1) & A.DB_WhereType & " :S" & CNT)
End If
' If AddParam Then DB.MyParam_Add(" :S" & CNT, A.DB_Type, A.Value)
End If
End If
End Select
Next
If SQL.ToString.Trim = "" Then '//만들어진게 아예없을경우이다.
Return vbNullString
Else
Return IIf(HEADER, " WHERE " & SQL.ToString, SQL.ToString)
End If
End Function
''' <summary>
''' 검색블럭내의 모든 콤보박스의 목록을 갱신합니다.
''' </summary>
''' <remarks></remarks>
Public Sub UpdateComboBox()
For Each Itm As Control In Me.Controls
Select Case Itm.GetType.Name.ToString.ToUpper
Case "COMBOBOX"
CType(Itm, MyControlOLEDBv2.MyCombo).UpdateItem()
End Select
Next
End Sub
End Class

View File

@@ -0,0 +1,26 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MySortGrp
Inherits System.Windows.Forms.GroupBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
' Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

View File

@@ -0,0 +1,120 @@
Imports System.Text
Imports System.IO
Public Class MySortGrp
Public Sub SAVE_Setting()
Dim a As New MyINI2(My.Application.Info.DirectoryPath & "\Setting.INI")
For Each C As Control In Me.Controls
If C.GetType.Name.ToUpper = "CHECKBOX" Then
a.Write(Me.Parent.Name & "-" & Me.Name, C.Name, CType(C, MyControlOLEDBv2.MyCheckBox).CheckState.ToString)
End If
Next
End Sub
Public Sub LOAD_Setting()
Dim FILEname As String = My.Application.Info.DirectoryPath & "\Setting.INI"
Dim a As New MyINI2(FILEname)
If Not File.Exists(FILEname) Then
MsgBox("열너비 파일이 존재하지 않습니다", MsgBoxStyle.Critical, "열너비설정-오류")
SAVE_Setting()
Return
End If
'MsgBox("PARENT" & Me.Parent.Name.ToString & "/" & Me.Parent.Text)
Dim Getdata As String
For Each C As Control In Me.Controls
If C.GetType.Name.ToUpper = "CHECKBOX" Then
Try
Getdata = a.Read(Me.Parent.Name & "-" & Me.Name, C.Name)
Select Case Getdata.ToUpper
Case "UNCHECKED"
CType(C, MyControlOLEDBv2.MyCheckBox).CheckState = CheckState.Unchecked
Case "INDETERMINATE"
CType(C, MyControlOLEDBv2.MyCheckBox).CheckState = CheckState.Indeterminate
Case "CHECKED"
CType(C, MyControlOLEDBv2.MyCheckBox).CheckState = CheckState.Checked
End Select
Catch ex As Exception
End Try
End If
Next
End Sub
''' <summary>
''' 이 개체에 커서를 이동합니다.
''' </summary>
''' <remarks></remarks>
Public Sub DB_SetFocus()
'정렬된 아이템중에 1번쨰 아이템에 포커르를 줍니다.
Dim A As ArrayList = GetSortedItem()
Dim itm As Control = A(0)
Dim ItmType As String = itm.GetType.Name.ToString.ToUpper
Select Case ItmType
Case "TEXTBOX"
CType(itm, MyControlOLEDBv2.MyTextBox).Focus()
Case "CHECKBOX"
CType(itm, MyControlOLEDBv2.MyCheckBox).Focus()
Case "COMBOBOX"
CType(itm, MyControlOLEDBv2.MyCombo).Focus()
End Select
End Sub
''' <summary>
''' 정렬 SQL문법을 반환합니다.(PROMPT=TRUE 이면 ORDER BY 가 붙여서 반환됩니다.)
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function GetSort(Optional ByVal HEADER As Boolean = False) As String
Dim SQL As New StringBuilder()
Dim First As Boolean = False
Dim Ar As ArrayList = GetSortedItem()
For Each ITM As MyControlOLEDBv2.MyCheckBox In Ar
' MsgBox(ITM.DB_ColName)
If ITM.Value <> Nothing Then
If Not First Then
First = True
SQL.Append(Space(1) & CType(ITM, MyControlOLEDBv2.MyCheckBox).DB_ColName & Space(1) & CType(ITM, MyControlOLEDBv2.MyCheckBox).Value)
Else
SQL.Append(Space(1) & "," & CType(ITM, MyControlOLEDBv2.MyCheckBox).DB_ColName & Space(1) & CType(ITM, MyControlOLEDBv2.MyCheckBox).Value)
End If
End If
Next
If SQL.ToString.Trim = "" Then
Return vbNullString
Else
Return IIf(HEADER, " ORDER BY " & SQL.ToString, SQL.ToString)
End If
End Function
''' <summary>
''' 탭순서로 정렬되어있는 아이템을 반환합니다
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Private Function GetSortedItem() As ArrayList
Dim Iname As String
Dim CAr As New ArrayList
Dim CArC As New ArrayList
For Each itm As Control In Me.Controls
Iname = itm.GetType.Name.ToString.ToUpper
If Iname = "CHECKBOX" Then
CAr.Add(itm.TabIndex)
End If
Next
CAr.Sort()
For i As Integer = 0 To CAr.Count - 1
For Each itm As Control In Me.Controls
Iname = itm.GetType.Name.ToString.ToUpper
If itm.TabIndex = CAr.Item(i) Then CArC.Add(itm)
Next
Next
Return CArC
End Function
End Class

View File

@@ -0,0 +1,32 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MyTextBox
Inherits System.Windows.Forms.TextBox
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider(Me.components)
CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider
End Class

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>511, 180</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@@ -0,0 +1,233 @@
Imports System.Drawing
Public Class MyTextBox
Enum Inputtype
전부 = 1
숫자 = 2
문자 = 3
소문자 = 5
대문자 = 6
숫자대문자 = 7
숫자소문자 = 8
End Enum
Dim ColName As String
Dim Coltype As OleDbType = OleDbType.VarChar
Dim Ditem As Boolean
Dim Prompt As String
Dim WhereState As String = vbNullString
Dim NotNull As Boolean = False
Dim iNTYPE As Inputtype = Inputtype.전부
Dim DEF_VALUE As String = Me.Text
Protected Var_ViewColNumber As Short
Protected Var_BaseLabel As Label
Public Sub New()
' 이 호출은 디자이너에 필요합니다.
InitializeComponent()
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
<System.ComponentModel.Description("이 컨트롤과 연결된 문자를 나타낼 레이블을 선택합니다")> _
Public Property DB_BaseLabel() As Label
Get
Return Var_BaseLabel
End Get
Set(ByVal value As Label)
'//데이터가 들어오면 현재의 프롬프트를 갱신합니다.
Var_BaseLabel = value
Me.DB_Prompt = Prompt
End Set
End Property
<System.ComponentModel.Description("입력되는 값을 필터링합니다")> _
Public Property WHERE_DEFAULT_VALUE() As String
Get
Return DEF_VALUE
End Get
Set(ByVal value As String)
DEF_VALUE = value
End Set
End Property
<System.ComponentModel.Description("입력되는 값을 필터링합니다")> _
Public Property Input_type() As Inputtype
Get
Return iNTYPE
End Get
Set(ByVal value As Inputtype)
iNTYPE = value
End Set
End Property
<System.ComponentModel.Description("반드시입력되어야 할 값입니까?")> _
Public Property DB_NotNull() As Boolean
Get
Return NotNull
End Get
Set(ByVal value As Boolean)
NotNull = value
End Set
End Property
<System.ComponentModel.Description("검색그룹에 있을시 WHere 절")> _
Public Property DB_WhereType() As String
Get
Return WhereState
End Get
Set(ByVal value As String)
WhereState = value
End Set
End Property
<System.ComponentModel.Description("컬럼의 설명")> _
Public Property DB_Prompt() As String
Get
Return IIf(Prompt Is vbNullString, DB_ColName, Prompt)
End Get
Set(ByVal value As String)
'//프롬프트가 바뀔때 연결된 레이블이 잇으면 텍스트를 바꿔준다.
Prompt = value
Try
Me.DB_BaseLabel.Text = value '& "(&" & Var_ViewColNumber & ")"
Catch ex As Exception
End Try
End Set
End Property
<System.ComponentModel.Description("바인딩될 데이터베이스 컬럼명")> _
Public Property DB_ColName() As String
Get
If ColName = "" Then
Return Me.Name
Else
Return ColName
End If
End Get
Set(ByVal value As String)
ColName = value
End Set
End Property
<System.ComponentModel.Description("연결될 데이터베이스 데이터형식")> _
Public Property DB_Type() As OleDbType
Get
Return Coltype
End Get
Set(ByVal value As OleDbType)
Coltype = value
End Set
End Property
<System.ComponentModel.Description("데이터베이스와 연결될 아이템인가?")> _
Public Property DB_ITEM() As Boolean
Get
Return Ditem
End Get
Set(ByVal value As Boolean)
Ditem = value
End Set
End Property
<System.ComponentModel.Description("현재 값을 설정하거나 가져옵니다")> _
Public Property Value() As String
Get
If Me.DB_Type = OleDbType.Numeric AndAlso Me.Text.Trim = "" Then
Return 0
End If
Return Me.Text
End Get
Set(ByVal value As String)
If value.ToUpper = "$$DATE$$" Then
Me.Text = Format(Now, "yyyyMMdd")
Else
Me.Text = value
End If
End Set
End Property
Private Sub TextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs)
If Me.Text.Length > 0 Then
Me.SelectAll()
End If
End Sub
Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Select Case iNTYPE
Case Inputtype.대문자
If Char.IsNumber(e.KeyChar) Then
e.Handled = True
Else
e.KeyChar = Char.ToUpper(e.KeyChar.ToString)
End If
'If Not Char.IsUpper(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.문자
If Char.IsNumber(e.KeyChar) Then e.Handled = True
' If Not Char.IsLetter(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.소문자
If Char.IsNumber(e.KeyChar) Then
e.Handled = True
Else
e.KeyChar = Char.ToLower(e.KeyChar.ToString)
End If
'If Not Char.IsLower(e.KeyChar.ToString) Then e.Handled = True
Case Inputtype.숫자
If Char.IsLetter(e.KeyChar) Then e.Handled = True
Case Inputtype.숫자대문자
e.KeyChar = Char.ToUpper(e.KeyChar.ToString)
Case Inputtype.숫자소문자
e.KeyChar = Char.ToLower(e.KeyChar.ToString)
End Select
End Sub
Private Sub TextBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter OrElse e.KeyCode = Keys.Down Then SendKeys.Send("{TAB}")
'If e.KeyCode = Keys.Right AndAlso Me.SelectionStart = Me.Text.Length Then '//오른쪽버튼일경우에는 현재커서위치가 마지막인상태에서 눌럿을때이다.
'SendKeys.Send("{TAB}")
'End If
If (e.Shift AndAlso e.KeyCode = Keys.Enter) OrElse e.KeyCode = Keys.Up Then
SendKeys.Send("+{TAB}")
End If
'If e.KeyCode = Keys.Left AndAlso Me.Text.Length <= 0 Then
' SendKeys.Send("+{TAB}")
' End If
'If e.KeyCode = Keys.Left AndAlso Me.SelectionStart = 0 Then
' SendKeys.Send("+{TAB}")
' End If
End Sub
Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Me.BackColor = IIf(Me.ReadOnly, Color.Gray, Color.White)
If Me.NotNull = True AndAlso Me.Text = "" Then
Me.ErrorProvider1.SetError(Me, "이 필드는 반드시 입력되어야합니다")
Me.BackColor = Color.Tomato
Else
Me.ErrorProvider1.Clear()
Me.BackColor = IIf(Me.ReadOnly, Color.Gray, Color.White)
'Me.BackColor = Color.White
End If
End Sub
End Class

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,235 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class lov
Inherits System.Windows.Forms.Form
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Dim TipAppearance1 As FarPoint.Win.Spread.TipAppearance = New FarPoint.Win.Spread.TipAppearance
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
Me.fpspread1 = New MyControlOLEDBv2.MyFpoint
Me.fpspread1_Sheet1 = New FarPoint.Win.Spread.SheetView
Me.Button1 = New System.Windows.Forms.Button
Me.tb_searchtext = New System.Windows.Forms.TextBox
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip
Me.bt_cancel = New System.Windows.Forms.ToolStripButton
Me.bt_ok = New System.Windows.Forms.ToolStripButton
Me.lb_msg = New System.Windows.Forms.ToolStripLabel
Me.BindingSource1 = New System.Windows.Forms.BindingSource(Me.components)
Me.TableLayoutPanel1.SuspendLayout()
CType(Me.fpspread1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.fpspread1_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.ToolStrip1.SuspendLayout()
CType(Me.BindingSource1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.ColumnCount = 2
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 666.0!))
Me.TableLayoutPanel1.Controls.Add(Me.fpspread1, 1, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Button1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.tb_searchtext, 1, 0)
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 1
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 45.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 247.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(720, 476)
Me.TableLayoutPanel1.TabIndex = 3
'
'fpspread1
'
Me.fpspread1.AAutoAddrowInLast = Nothing
Me.fpspread1.About = "3.0.2003.2005"
Me.fpspread1.AccessibleDescription = "fpspread1, Sheet1, Row 0, Column 0, "
Me.fpspread1.BackColor = System.Drawing.SystemColors.Control
Me.fpspread1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.TableLayoutPanel1.SetColumnSpan(Me.fpspread1, 2)
Me.fpspread1.CurrentDel = False
Me.fpspread1.DeleteKey = False
Me.fpspread1.Dock = System.Windows.Forms.DockStyle.Fill
Me.fpspread1.EditFromSpace = True
Me.fpspread1.EnableCrossSheetReference = False
Me.fpspread1.FIRST_FOCUSINDEX = 0
Me.fpspread1.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded
Me.fpspread1.Location = New System.Drawing.Point(3, 48)
Me.fpspread1.Name = "fpspread1"
Me.fpspread1.NextRow_Index = -1
Me.fpspread1.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.fpspread1.SameRowheight = True
Me.fpspread1.SelectionBlockOptions = FarPoint.Win.Spread.SelectionBlockOptions.Rows
Me.fpspread1.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.fpspread1_Sheet1})
Me.fpspread1.Size = New System.Drawing.Size(714, 425)
Me.fpspread1.TabIndex = 0
TipAppearance1.BackColor = System.Drawing.SystemColors.Info
TipAppearance1.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
TipAppearance1.ForeColor = System.Drawing.SystemColors.InfoText
Me.fpspread1.TextTipAppearance = TipAppearance1
Me.fpspread1.VerticalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded
Me.fpspread1.선택줄번호 = CType(-1, Short)
'
'fpspread1_Sheet1
'
Me.fpspread1_Sheet1.Reset()
Me.fpspread1_Sheet1.SheetName = "Sheet1"
'Formulas and custom names must be loaded with R1C1 reference style
Me.fpspread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
Me.fpspread1_Sheet1.Columns.Get(0).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(0).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(1).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(1).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(2).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(2).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(3).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(3).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(4).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(4).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(5).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(5).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(6).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(6).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(7).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(7).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(8).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(8).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(9).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(9).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(10).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(10).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(11).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(11).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(12).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(12).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(13).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(13).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(14).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(14).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(15).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(15).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(16).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(16).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(17).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(17).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(18).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(18).AllowAutoSort = True
Me.fpspread1_Sheet1.Columns.Get(19).AllowAutoFilter = True
Me.fpspread1_Sheet1.Columns.Get(19).AllowAutoSort = True
Me.fpspread1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.RowMode
Me.fpspread1_Sheet1.Protect = False
Me.fpspread1_Sheet1.RowHeader.Columns.Default.Resizable = False
Me.fpspread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1
'
'Button1
'
Me.Button1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup
Me.Button1.Image = Global.MyControlOLEDBv2.My.Resources.Resources.srch_32
Me.Button1.Location = New System.Drawing.Point(3, 3)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(48, 39)
Me.Button1.TabIndex = 2
Me.Button1.UseVisualStyleBackColor = True
'
'tb_searchtext
'
Me.tb_searchtext.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper
Me.tb_searchtext.Dock = System.Windows.Forms.DockStyle.Fill
Me.tb_searchtext.Font = New System.Drawing.Font("맑은 고딕", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.tb_searchtext.Location = New System.Drawing.Point(57, 3)
Me.tb_searchtext.Name = "tb_searchtext"
Me.tb_searchtext.Size = New System.Drawing.Size(660, 35)
Me.tb_searchtext.TabIndex = 3
Me.tb_searchtext.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'ToolStrip1
'
Me.ToolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32)
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_cancel, Me.bt_ok, Me.lb_msg})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 476)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(720, 39)
Me.ToolStrip1.TabIndex = 4
Me.ToolStrip1.Text = "ToolStrip1"
'
'bt_cancel
'
Me.bt_cancel.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.bt_cancel.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.bt_cancel.Image = Global.MyControlOLEDBv2.My.Resources.Resources.close_32
Me.bt_cancel.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_cancel.Name = "bt_cancel"
Me.bt_cancel.Size = New System.Drawing.Size(98, 36)
Me.bt_cancel.Text = "취소(&X)"
'
'bt_ok
'
Me.bt_ok.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.bt_ok.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.bt_ok.Image = Global.MyControlOLEDBv2.My.Resources.Resources.new_32
Me.bt_ok.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_ok.Name = "bt_ok"
Me.bt_ok.Size = New System.Drawing.Size(100, 36)
Me.bt_ok.Text = "확인(&O)"
'
'lb_msg
'
Me.lb_msg.Name = "lb_msg"
Me.lb_msg.Size = New System.Drawing.Size(23, 36)
Me.lb_msg.Text = ">>"
'
'lov
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(720, 515)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "lov"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "값을 선택하세요"
Me.TableLayoutPanel1.ResumeLayout(False)
Me.TableLayoutPanel1.PerformLayout()
CType(Me.fpspread1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.fpspread1_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
CType(Me.BindingSource1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Friend WithEvents fpspread1 As MyControlOLEDBv2.MyFpoint
Friend WithEvents fpspread1_Sheet1 As FarPoint.Win.Spread.SheetView
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents tb_searchtext As System.Windows.Forms.TextBox
Friend WithEvents BindingSource1 As System.Windows.Forms.BindingSource
Friend WithEvents bt_cancel As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
Friend WithEvents bt_ok As System.Windows.Forms.ToolStripButton
Friend WithEvents lb_msg As System.Windows.Forms.ToolStripLabel
End Class

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="fpspread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>679, 17</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>969, 17</value>
</metadata>
<metadata name="BindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>830, 17</value>
</metadata>
</root>