DoboWiki
Top
> .NETプログラミング研究/63 をテンプレートにして作成
.NETプログラミング研究/63 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第63号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第63号 [#qb105914]
**.NET質問箱 [#g8faeb73]
「.NET質問箱」では、「どぼん!のプログラミング掲示板」に...
-[[どぼん!のプログラミング掲示板>https://dobon.net/vb/bb...
***16進数、8進数、2進数の文字列を整数に変換する、整数を16...
#column(注意){{
この記事の最新版は「[[16進数、8進数、2進数の文字列を整数...
}}
''【質問】''
16進数、8進数、2進数を表した文字列を整数に変換するには、...
''【回答】''
基本的には、文字列を整数に変換するにはConvertクラスのToIn...
以下に一つずつ説明していきます。
''16進数の文字列を整数に変換''
ConvertクラスのToInt32メソッド等や、Int32構造体等のParse...
Convert.ToInt32メソッドを使うと、次のようになります。
#code(vbnet){{
Dim num16 As Integer = Convert.ToInt32("FFFF", 16)
}}
#code(csharp){{
int num16 = Convert.ToInt32("FFFF", 16);
}}
Int32のParseメソッドを使った例は、次のようなものです。な...
#code(vbnet){{
Dim num16 As Integer = Integer.Parse("FFFF", _
System.Globalization.NumberStyles.HexNumber)
}}
#code(csharp){{
int num16 = int.Parse("FFFF",
System.Globalization.NumberStyles.HexNumber);
}}
VB.NETでは、CInt関数等を使って変換することもできます。
#code(vbnet){{
Dim num16 as Integer = CInt("&HFFFF")
}}
''整数を16進数の文字列に変換''
ConvertクラスのToStringメソッドや、Int32構造体等のToStrin...
Convert.ToStringを使った例は、次の通りです。
#code(vbnet){{
Dim num As Integer = 65535
Dim str As String = Convert.ToString(num, 16)
}}
#code(csharp){{
int num = 65535;
string str = Convert.ToString(num, 16);
}}
Int32.ToStringを使うと、次のようになります。
#code(vbnet){{
Dim num As Integer = 65535
Dim str As String = num.ToString("X")
}}
#code(csharp){{
int num = 65535;
string str = num.ToString("X");
}}
VB.NETでは、Hex関数を使うこともできます。
#code(vbnet){{
Dim num as Integer = 65535
Dim str as String = Hex(num)
}}
''8進数の文字列を整数に変換''
ConvertクラスのToInt32メソッド等を使うことにより、可能で...
#code(vbnet){{
Dim num8 As Integer = Convert.ToInt32("1750", 8)
}}
#code(csharp){{
int num8 = Convert.ToInt32("1750", 8);
}}
VB.NETでは、CInt関数等を使って変換することもできます。
#code(vbnet){{
Dim num8 as Integer = CInt("&O1750")
}}
''整数を8進数の文字列に変換''
ConvertクラスのToStringメソッドにより、可能です。
#code(vbnet){{
Dim num As Integer = 1000
Dim str As String = Convert.ToString(num, 8)
}}
#code(csharp){{
int num = 1000;
string str = Convert.ToString(num, 8);
}}
VB.NETでは、Oct関数を使うこともできます。
#code(vbnet){{
Dim num as Integer = 1000
Dim str as String = Oct(num)
}}
''2進数の文字列を整数に変換''
これも、ConvertクラスのToInt32メソッド等を使うことにより...
#code(vbnet){{
Dim num2 As Integer = Convert.ToInt32("1111101000", 2)
}}
#code(csharp){{
int num2 = Convert.ToInt32("1111101000", 2);
}}
''整数を2進数の文字列に変換''
これも、ConvertクラスのToStringメソッドにより、可能です。
#code(vbnet){{
Dim num As Integer = 1000
Dim str As String = Convert.ToString(num, 2)
}}
#code(csharp){{
int num = 1000;
string str = Convert.ToString(num, 2);
}}
○この記事の基になった掲示板のスレッド
-[[string "ff"を数値型の 255 に変換したい | 投稿者(敬称略...
***フォームの「閉じる」ボタンを無効にする [#e1a547c2]
#column(注意){{
この記事の最新版は「[[フォームの「閉じる」ボタンを無効に...
}}
''【質問】''
Windowsフォームの右上にある「閉じる」ボタン(Xボタン)を...
''【回答】''
幾つかの方法が考えられます。
まず一番単純なのは、フォームのControlBoxプロパティをFalse...
また、「フォームが閉じられる時その原因を知る」と「条件に...
-[[DOBON.NET .NET Tips - フォームが閉じられる時その原因を...
-[[DOBON.NET .NET Tips - 条件によりフォームが閉じられない...
この方法を使った例は、次のようなものです。なおこの例では...
#code(vbnet){{
Protected Overrides Sub WndProc( _
ByRef m As System.Windows.Forms.Message)
Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
If m.Msg = WM_SYSCOMMAND And m.WParam.ToInt32() = SC_...
Return
End If
MyBase.WndProc(m)
End Sub
}}
#code(csharp){{
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && m.WParam.ToInt32() == S...
{
return;
}
base.WndProc (ref m);
}
}}
補足:上の例では「条件によりフォームが閉じられないように...
さらに、GotDotNetの掲示板の「Disabling the close button?...
-[[GotDotNet Message Boards - Disabling the close button?...
これはフォームのCreateParamsプロパティをオーバーライドす...
以下にそのコードを引用させていただきます。
#code(vbnet){{
Protected Overrides ReadOnly Property CreateParams() As _
System.Windows.Forms.CreateParams
Get
Const CS_NOCLOSE As Integer = &H200
Dim cp As CreateParams = MyBase.CreateParams
cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
Return cp
End Get
End Property
}}
#code(csharp){{
protected override CreateParams CreateParams
{
get
{
const int CS_NOCLOSE = 0x200;
CreateParams cp = base.CreateParams;
cp.ClassStyle = cp.ClassStyle | CS_NOCLOSE;
return cp;
}
}
}}
最後にWin32 APIを使う方法も紹介しておきます。下記の方法で...
#code(vbnet){{
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function GetSystemMenu(ByVal hWnd As IntPtr, _
ByVal bRevert As Boolean) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function GetMenuItemCount(ByVal hMenu As IntPtr) A...
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function DrawMenuBar(ByVal hWnd As IntPtr) As Bool...
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function RemoveMenu(ByVal hMenu As IntPtr, _
ByVal uPosition As Integer, _
ByVal uFlags As Integer) As Boolean
End Function
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
Const MF_BYPOSITION As Int32 = &H400
Const MF_REMOVE As Int32 = &H1000
Dim menu As IntPtr = GetSystemMenu(Me.Handle, False)
Dim menuCount As Integer = GetMenuItemCount(menu)
If menuCount > 1 Then
'メニューの「閉じる」とセパレータを削除
RemoveMenu(menu, menuCount - 1, MF_BYPOSITION Or ...
RemoveMenu(menu, menuCount - 2, MF_BYPOSITION Or ...
DrawMenuBar(Me.Handle)
End If
End Sub
}}
#code(csharp){{
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRev...
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern int GetMenuItemCount(IntPtr hMenu);
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool DrawMenuBar(IntPtr hWnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool RemoveMenu(IntPtr hMenu, uint uPositio...
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
const Int32 MF_BYPOSITION = 0x400;
const Int32 MF_REMOVE = 0x1000;
IntPtr menu = GetSystemMenu(this.Handle, false);
int menuCount = GetMenuItemCount(menu);
if (menuCount > 1)
{
//メニューの「閉じる」とセパレータを削除
RemoveMenu(menu, (uint) (menuCount - 1), MF_BYPOS...
RemoveMenu(menu, (uint) (menuCount - 2), MF_BYPOS...
DrawMenuBar(this.Handle);
}
}
}}
○この記事の基になった掲示板のスレッド
-[[フォーム右上の閉じるボタン無効化 | 投稿者(敬称略) なか...
***TextBoxやRichTextBoxのタブの幅を変更する [#o9535c93]
#column(注意){{
この記事の最新版は「[[TextBoxやRichTextBoxのタブの幅を変...
}}
''【質問】''
TextBoxやRichTextBoxのタブの幅(文字数)を変更することが...
''【回答】''
RichTextBoxであれば、SelectionTabsプロパティにより、タブ...
SelectionTabsプロパティを使わないのであれば、Win32 APIを...
次の例では、Button1をクリックすることにより、TextBox1のタ...
#code(vbnet){{
<System.Runtime.InteropServices.DllImport("User32.dll")> _
Shared Function SendMessage(ByVal hWnd As IntPtr, _
ByVal msg As Integer, ByVal wParam As Integer, _
ByVal lParam() As Integer) As IntPtr
End Function
Private Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Const EM_SETTABSTOPS As Integer = &HCB
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, New I...
End Sub
}}
#code(csharp){{
[System.Runtime.InteropServices.DllImport("User32.dll")]
static extern IntPtr SendMessage(
IntPtr hWnd, int msg, int wParam, int [] lParam);
private void Button1_Click(object sender, System.EventArg...
{
const int EM_SETTABSTOPS = 0x00CB;
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, new i...
}
}}
○この記事の基になった掲示板のスレッド
-[[RichTextBox等のTabの幅を変えたい | 投稿者(敬称略) 春原...
-[[textBoxでTAB幅調整について | 投稿者(敬称略) てんてん, ...
***AutoScrollをTrueにしてスクロールバーを表示された時、指...
#column(注意){{
この記事の最新版は「[[AutoScrollをTrueにしてスクロールバ...
}}
''【質問】''
フォームのAutoScrollプロパティをTrueにしてスクロールバー...
''【回答】''
AutoScrollPositionプロパティにより、スクロールの位置を設...
AutoScrollPositionプロパティにスクロール位置を設定する場...
現在の位置から右、下に10ずつスクロールさせるには、次のよ...
#code(vbnet){{
Me.AutoScrollPosition = _
New Point(-Me.AutoScrollPosition.X + 10, _
-Me.AutoScrollPosition.Y + 10)
}}
#code(csharp){{
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X + 10,
-this.AutoScrollPosition.Y + 10);
}}
また、ScrollControlIntoViewメソッドにより、指定したコント...
注:ニュースグループにマイクロソフトからの投稿があります。
-[[microsoft.public.dotnet.framework.windowsforms - Re: h...
補足:SB_THUMBPOSITIONやSB_THUMBTRACKメッセージによりスク...
-[[microsoft.public.dotnet.framework.windowsforms - Re: s...
○この記事の基になった掲示板のスレッド
-[[フォームのスクロール | 投稿者(敬称略) UMU, NowhereMan>...
**コメント [#tbcbe4a9]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2006-01-09 (月) 18:00:00,DOB...
終了行:
#title(.NETプログラミング研究 第63号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第63号 [#qb105914]
**.NET質問箱 [#g8faeb73]
「.NET質問箱」では、「どぼん!のプログラミング掲示板」に...
-[[どぼん!のプログラミング掲示板>https://dobon.net/vb/bb...
***16進数、8進数、2進数の文字列を整数に変換する、整数を16...
#column(注意){{
この記事の最新版は「[[16進数、8進数、2進数の文字列を整数...
}}
''【質問】''
16進数、8進数、2進数を表した文字列を整数に変換するには、...
''【回答】''
基本的には、文字列を整数に変換するにはConvertクラスのToIn...
以下に一つずつ説明していきます。
''16進数の文字列を整数に変換''
ConvertクラスのToInt32メソッド等や、Int32構造体等のParse...
Convert.ToInt32メソッドを使うと、次のようになります。
#code(vbnet){{
Dim num16 As Integer = Convert.ToInt32("FFFF", 16)
}}
#code(csharp){{
int num16 = Convert.ToInt32("FFFF", 16);
}}
Int32のParseメソッドを使った例は、次のようなものです。な...
#code(vbnet){{
Dim num16 As Integer = Integer.Parse("FFFF", _
System.Globalization.NumberStyles.HexNumber)
}}
#code(csharp){{
int num16 = int.Parse("FFFF",
System.Globalization.NumberStyles.HexNumber);
}}
VB.NETでは、CInt関数等を使って変換することもできます。
#code(vbnet){{
Dim num16 as Integer = CInt("&HFFFF")
}}
''整数を16進数の文字列に変換''
ConvertクラスのToStringメソッドや、Int32構造体等のToStrin...
Convert.ToStringを使った例は、次の通りです。
#code(vbnet){{
Dim num As Integer = 65535
Dim str As String = Convert.ToString(num, 16)
}}
#code(csharp){{
int num = 65535;
string str = Convert.ToString(num, 16);
}}
Int32.ToStringを使うと、次のようになります。
#code(vbnet){{
Dim num As Integer = 65535
Dim str As String = num.ToString("X")
}}
#code(csharp){{
int num = 65535;
string str = num.ToString("X");
}}
VB.NETでは、Hex関数を使うこともできます。
#code(vbnet){{
Dim num as Integer = 65535
Dim str as String = Hex(num)
}}
''8進数の文字列を整数に変換''
ConvertクラスのToInt32メソッド等を使うことにより、可能で...
#code(vbnet){{
Dim num8 As Integer = Convert.ToInt32("1750", 8)
}}
#code(csharp){{
int num8 = Convert.ToInt32("1750", 8);
}}
VB.NETでは、CInt関数等を使って変換することもできます。
#code(vbnet){{
Dim num8 as Integer = CInt("&O1750")
}}
''整数を8進数の文字列に変換''
ConvertクラスのToStringメソッドにより、可能です。
#code(vbnet){{
Dim num As Integer = 1000
Dim str As String = Convert.ToString(num, 8)
}}
#code(csharp){{
int num = 1000;
string str = Convert.ToString(num, 8);
}}
VB.NETでは、Oct関数を使うこともできます。
#code(vbnet){{
Dim num as Integer = 1000
Dim str as String = Oct(num)
}}
''2進数の文字列を整数に変換''
これも、ConvertクラスのToInt32メソッド等を使うことにより...
#code(vbnet){{
Dim num2 As Integer = Convert.ToInt32("1111101000", 2)
}}
#code(csharp){{
int num2 = Convert.ToInt32("1111101000", 2);
}}
''整数を2進数の文字列に変換''
これも、ConvertクラスのToStringメソッドにより、可能です。
#code(vbnet){{
Dim num As Integer = 1000
Dim str As String = Convert.ToString(num, 2)
}}
#code(csharp){{
int num = 1000;
string str = Convert.ToString(num, 2);
}}
○この記事の基になった掲示板のスレッド
-[[string "ff"を数値型の 255 に変換したい | 投稿者(敬称略...
***フォームの「閉じる」ボタンを無効にする [#e1a547c2]
#column(注意){{
この記事の最新版は「[[フォームの「閉じる」ボタンを無効に...
}}
''【質問】''
Windowsフォームの右上にある「閉じる」ボタン(Xボタン)を...
''【回答】''
幾つかの方法が考えられます。
まず一番単純なのは、フォームのControlBoxプロパティをFalse...
また、「フォームが閉じられる時その原因を知る」と「条件に...
-[[DOBON.NET .NET Tips - フォームが閉じられる時その原因を...
-[[DOBON.NET .NET Tips - 条件によりフォームが閉じられない...
この方法を使った例は、次のようなものです。なおこの例では...
#code(vbnet){{
Protected Overrides Sub WndProc( _
ByRef m As System.Windows.Forms.Message)
Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
If m.Msg = WM_SYSCOMMAND And m.WParam.ToInt32() = SC_...
Return
End If
MyBase.WndProc(m)
End Sub
}}
#code(csharp){{
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && m.WParam.ToInt32() == S...
{
return;
}
base.WndProc (ref m);
}
}}
補足:上の例では「条件によりフォームが閉じられないように...
さらに、GotDotNetの掲示板の「Disabling the close button?...
-[[GotDotNet Message Boards - Disabling the close button?...
これはフォームのCreateParamsプロパティをオーバーライドす...
以下にそのコードを引用させていただきます。
#code(vbnet){{
Protected Overrides ReadOnly Property CreateParams() As _
System.Windows.Forms.CreateParams
Get
Const CS_NOCLOSE As Integer = &H200
Dim cp As CreateParams = MyBase.CreateParams
cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
Return cp
End Get
End Property
}}
#code(csharp){{
protected override CreateParams CreateParams
{
get
{
const int CS_NOCLOSE = 0x200;
CreateParams cp = base.CreateParams;
cp.ClassStyle = cp.ClassStyle | CS_NOCLOSE;
return cp;
}
}
}}
最後にWin32 APIを使う方法も紹介しておきます。下記の方法で...
#code(vbnet){{
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function GetSystemMenu(ByVal hWnd As IntPtr, _
ByVal bRevert As Boolean) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function GetMenuItemCount(ByVal hMenu As IntPtr) A...
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function DrawMenuBar(ByVal hWnd As IntPtr) As Bool...
End Function
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Shared Function RemoveMenu(ByVal hMenu As IntPtr, _
ByVal uPosition As Integer, _
ByVal uFlags As Integer) As Boolean
End Function
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
Const MF_BYPOSITION As Int32 = &H400
Const MF_REMOVE As Int32 = &H1000
Dim menu As IntPtr = GetSystemMenu(Me.Handle, False)
Dim menuCount As Integer = GetMenuItemCount(menu)
If menuCount > 1 Then
'メニューの「閉じる」とセパレータを削除
RemoveMenu(menu, menuCount - 1, MF_BYPOSITION Or ...
RemoveMenu(menu, menuCount - 2, MF_BYPOSITION Or ...
DrawMenuBar(Me.Handle)
End If
End Sub
}}
#code(csharp){{
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRev...
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern int GetMenuItemCount(IntPtr hMenu);
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool DrawMenuBar(IntPtr hWnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool RemoveMenu(IntPtr hMenu, uint uPositio...
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
const Int32 MF_BYPOSITION = 0x400;
const Int32 MF_REMOVE = 0x1000;
IntPtr menu = GetSystemMenu(this.Handle, false);
int menuCount = GetMenuItemCount(menu);
if (menuCount > 1)
{
//メニューの「閉じる」とセパレータを削除
RemoveMenu(menu, (uint) (menuCount - 1), MF_BYPOS...
RemoveMenu(menu, (uint) (menuCount - 2), MF_BYPOS...
DrawMenuBar(this.Handle);
}
}
}}
○この記事の基になった掲示板のスレッド
-[[フォーム右上の閉じるボタン無効化 | 投稿者(敬称略) なか...
***TextBoxやRichTextBoxのタブの幅を変更する [#o9535c93]
#column(注意){{
この記事の最新版は「[[TextBoxやRichTextBoxのタブの幅を変...
}}
''【質問】''
TextBoxやRichTextBoxのタブの幅(文字数)を変更することが...
''【回答】''
RichTextBoxであれば、SelectionTabsプロパティにより、タブ...
SelectionTabsプロパティを使わないのであれば、Win32 APIを...
次の例では、Button1をクリックすることにより、TextBox1のタ...
#code(vbnet){{
<System.Runtime.InteropServices.DllImport("User32.dll")> _
Shared Function SendMessage(ByVal hWnd As IntPtr, _
ByVal msg As Integer, ByVal wParam As Integer, _
ByVal lParam() As Integer) As IntPtr
End Function
Private Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Const EM_SETTABSTOPS As Integer = &HCB
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, New I...
End Sub
}}
#code(csharp){{
[System.Runtime.InteropServices.DllImport("User32.dll")]
static extern IntPtr SendMessage(
IntPtr hWnd, int msg, int wParam, int [] lParam);
private void Button1_Click(object sender, System.EventArg...
{
const int EM_SETTABSTOPS = 0x00CB;
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, new i...
}
}}
○この記事の基になった掲示板のスレッド
-[[RichTextBox等のTabの幅を変えたい | 投稿者(敬称略) 春原...
-[[textBoxでTAB幅調整について | 投稿者(敬称略) てんてん, ...
***AutoScrollをTrueにしてスクロールバーを表示された時、指...
#column(注意){{
この記事の最新版は「[[AutoScrollをTrueにしてスクロールバ...
}}
''【質問】''
フォームのAutoScrollプロパティをTrueにしてスクロールバー...
''【回答】''
AutoScrollPositionプロパティにより、スクロールの位置を設...
AutoScrollPositionプロパティにスクロール位置を設定する場...
現在の位置から右、下に10ずつスクロールさせるには、次のよ...
#code(vbnet){{
Me.AutoScrollPosition = _
New Point(-Me.AutoScrollPosition.X + 10, _
-Me.AutoScrollPosition.Y + 10)
}}
#code(csharp){{
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X + 10,
-this.AutoScrollPosition.Y + 10);
}}
また、ScrollControlIntoViewメソッドにより、指定したコント...
注:ニュースグループにマイクロソフトからの投稿があります。
-[[microsoft.public.dotnet.framework.windowsforms - Re: h...
補足:SB_THUMBPOSITIONやSB_THUMBTRACKメッセージによりスク...
-[[microsoft.public.dotnet.framework.windowsforms - Re: s...
○この記事の基になった掲示板のスレッド
-[[フォームのスクロール | 投稿者(敬称略) UMU, NowhereMan>...
**コメント [#tbcbe4a9]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2006-01-09 (月) 18:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]