DoboWiki
Top
> .NETプログラミング研究/54 をテンプレートにして作成
.NETプログラミング研究/54 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第54号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第54号 [#d3bc8994]
**お知らせ [#k63c0f5f]
***CodeZineがプレオープン [#l20e35ad]
開発者のための実装系Webマガジン「CodeZine」がプレオープン...
-[[CodeZine>http://codezine.jp/]]
以下が私の書いた記事です。
-[[.NETによるプラグイン機能を持つテキストエディタの作成>h...
-[[TCPを利用した複数クライアント接続可能なチャットアプリ...
-[[DataGridにComboBoxを表示可能な列を作る>http://codezine...
**.NET質問箱 [#l15cd55b]
「.NET質問箱」では、「どぼん!のプログラミング掲示板」に...
-[[どぼん!のプログラミング掲示板>https://dobon.net/vb/bb...
***表示色を反転して線を引くには? [#pdcc7c3f]
#column(注意){{
この記事の最新版は「[[表示色を反転して線を引く>https://do...
}}
''【質問】''
VB6では、ピクチャボックスのDrawModeプロパティをvbInvert(6...
''【回答】''
.NETでは、ControlPaintクラスのDrawReversibleLineメソッド...
-[[DOBON.NET .NET Tips - コントロールを描画する>https://d...
なおこれらのメソッドは画面に描画するもので、指定する座標...
次の例では、ピクチャボックス「PictureBox1」の座標(20, 10)...
#code(vbnet){{
'PictureBox1の(20, 10)-(200, 100)に反転した線を引く
'PictureBox1上の座標を画面座標に変換する
Dim startPoint As Point = PictureBox1.PointToScreen(New P...
Dim endPoint As Point = PictureBox1.PointToScreen(New Poi...
'黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Col...
}}
#code(csharp){{
//PictureBox1の(20, 10)-(200, 100)に反転した線を引く
//PictureBox1上の座標を画面座標に変換する
Point startPoint = PictureBox1.PointToScreen(new Point(20...
Point endPoint = PictureBox1.PointToScreen(new Point(200,...
//黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Col...
}}
○この記事の基になった掲示板のスレッド
-[[Xorペン | 投稿者(敬称略) ぼろん, よねKEN>https://do...
-[[Drawmode=6 | 投稿者(敬称略) ぱーやん, 管理人>https://d...
-[[DrawMode = vbInvert機能 | 投稿者(敬称略) NINE, テラオ...
***クリップボードにファイルをコピーする、またはクリップボ...
#column(注意){{
この記事の最新版は「[[クリップボードにファイルをコピーす...
}}
''【質問】''
エクスプローラでコピーしたファイルのパスを取得するにはど...
''【回答】''
DOBON.NET .NET Tipsの「クリップボードに文字列をコピー、ク...
-[[DOBON.NET .NET Tips - クリップボードに文字列をコピー、...
次のコードでは、クリップボードにファイルがコピーされてい...
#code(vbnet){{
'クリップボードのデータを取得する
Dim iData As IDataObject = Clipboard.GetDataObject()
'クリップボードにファイルドロップ形式のデータがあるか確認
If iData.GetDataPresent(DataFormats.FileDrop) Then
'データを取得する
Dim fileNames As String() = _
CType(iData.GetData(DataFormats.FileDrop), String...
'取得したファイル名を列挙する
Dim fileName As String
For Each fileName In fileNames
Console.WriteLine(fileName)
Next fileName
End If
}}
#code(csharp){{
//クリップボードのデータを取得する
IDataObject iData = Clipboard.GetDataObject();
//クリップボードにファイルドロップ形式のデータがあるか確認
if (iData.GetDataPresent(DataFormats.FileDrop))
{
//データを取得する
string[] fileNames = (string[]) iData.GetData(DataFor...
//取得したファイル名を列挙する
foreach (string fileName in fileNames)
{
Console.WriteLine(fileName);
}
}
}}
ファイルをクリップボードにコピーする時も同様に、Clipboard...
#code(vbnet){{
'コピーするファイルのパス
Dim fileNames As String() = {"C:\1.txt", "C:\2.txt", "C:\...
'ファイルドロップ形式のDataObjectを作成する
Dim iData = New DataObject(DataFormats.FileDrop, fileNames)
'クリップボードにコピーする
Clipboard.SetDataObject(iData)
}}
#code(csharp){{
//コピーするファイルのパス
string[] fileNames = {"C:\\1.txt", "C:\\2.txt", "C:\\3.tx...
//ファイルドロップ形式のDataObjectを作成する
IDataObject iData = new DataObject(DataFormats.FileDrop, ...
//クリップボードにコピーする
Clipboard.SetDataObject(iData);
}}
○この記事の基になった掲示板のスレッド
-[[コードからクリップボードへファイルをコピー(配置)する...
***システム時計の日時を設定するには? [#p98818aa]
#column(注意){{
この記事の最新版は「[[システム時計の日時を設定する>https:...
}}
''【質問】''
システム時計の日時を設定するには、どのようにすればよいの...
''【回答】''
システム日時を勝手に変更してしまうことがよいことかという...
VB.NETでは、Todayプロパティ及びDateStringプロパティでシス...
#code(vbnet){{
'システム日付を2005/1/2にする
Today = New DateTime(2005, 1, 2, 0, 0, 0)
'システム日付を2005/2/3にする
DateString = "2005-2-3"
'システム時刻を6:15:30にする
TimeOfDay = New DateTime(2000, 1, 1, 6, 15, 30)
'システム時刻を8:25:45にする
TimeString = "8:25:45"
}}
#code(csharp){{
//システム日付を2005/1/2にする
Microsoft.VisualBasic.DateAndTime.Today =
new DateTime(2005, 1, 2, 0, 0, 0);
//システム日付を2005/2/3にする
Microsoft.VisualBasic.DateAndTime.DateString =
"2005-2-3";
//システム時刻を6:15:30にする
Microsoft.VisualBasic.DateAndTime.TimeOfDay =
new DateTime(2000, 1, 1, 6, 15, 30);
//システム時刻を8:25:45にする
Microsoft.VisualBasic.DateAndTime.TimeString =
"8:25:45";
}}
また、Win32 APIのSetLocalTime関数を使用してシステム日時を...
#code(vbnet){{
<StructLayout(LayoutKind.Sequential)> _
Public Structure SystemTime
Public wYear As Short
Public wMonth As Short
Public wDayOfWeek As Short
Public wDay As Short
Public wHour As Short
Public wMinute As Short
Public wSecond As Short
Public wMiliseconds As Short
End Structure
<DllImport("kernel32.dll")> _
Public Shared Function SetLocalTime( _
ByRef sysTime As SystemTime) As Boolean
End Function
'/ <summary>
'/ 現在のシステム日時を設定する
'/ </summary>
'/ <param name="dt">設定する日時</param>
Public Shared Sub SetNowDateTime(ByVal dt As DateTime)
'システム日時に設定する日時を指定する
Dim sysTime As New SystemTime
sysTime.wYear = dt.Year
sysTime.wMonth = dt.Month
sysTime.wDay = dt.Day
sysTime.wHour = dt.Hour
sysTime.wMinute = dt.Minute
sysTime.wSecond = dt.Second
sysTime.wMiliseconds = dt.Millisecond
'システム日時を設定する
SetLocalTime(sysTime)
End Sub
}}
#code(csharp){{
//using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMiliseconds;
}
[DllImport("kernel32.dll")]
public static extern bool SetLocalTime(
ref SystemTime sysTime);
/// <summary>
/// 現在のシステム日時を設定する
/// </summary>
/// <param name="dt">設定する日時</param>
public static void SetNowDateTime(DateTime dt)
{
//システム日時に設定する日時を指定する
SystemTime sysTime = new SystemTime();
sysTime.wYear = (ushort) dt.Year;
sysTime.wMonth = (ushort) dt.Month;
sysTime.wDay = (ushort) dt.Day;
sysTime.wHour = (ushort) dt.Hour;
sysTime.wMinute = (ushort) dt.Minute;
sysTime.wSecond = (ushort) dt.Second;
sysTime.wMiliseconds = (ushort) dt.Millisecond;
//システム日時を設定する
SetLocalTime(ref sysTime);
}
}}
○この記事の基になった掲示板のスレッド
-[[システム時計について | 投稿者(敬称略) カー君, よねKE...
***DataGridコントロールの列の幅をユーザーが変更できないよ...
#column(注意){{
この記事の最新版は「[[DataGridの列の幅をユーザーが変更で...
}}
''【質問】''
System.Windows.Forms.DataGridコントロールの列の幅をユーザ...
''【回答】''
これに関しては、「Windows Forms FAQ」が参考になります。
-[[Windows Forms FAQ - How can I prevent my user from siz...
この記事で紹介されている方法は、DataGridクラスの派生クラ...
この方法によるサンプルを以下に示します。このDataGridExク...
#code(vbnet){{
''' <summary>
''' 列ヘッダの幅をユーザーが変更することができないDataGrid
''' </summary>
Public Class DataGridEx
Inherits System.Windows.Forms.DataGrid
Protected Overrides Sub OnMouseMove( _
ByVal e As System.Windows.Forms.MouseEventArgs)
'列ヘッダの境界線上にマウスがあるときは何もしない
Dim hti As System.Windows.Forms.DataGrid.HitTestI...
Me.HitTest(New System.Drawing.Point(e.X, e.Y))
If hti.Type = _
System.Windows.Forms.DataGrid.HitTestType.Col...
Return
End If
MyBase.OnMouseMove(e)
End Sub
Protected Overrides Sub OnMouseDown( _
ByVal e As System.Windows.Forms.MouseEventArgs)
'列ヘッダの境界線上にマウスがあるときは何もしない
Dim hti As System.Windows.Forms.DataGrid.HitTestI...
Me.HitTest(New System.Drawing.Point(e.X, e.Y))
If hti.Type = _
System.Windows.Forms.DataGrid.HitTestType.Col...
Return
End If
MyBase.OnMouseDown(e)
End Sub
End Class
}}
#code(csharp){{
/// <summary>
/// 列ヘッダの幅をユーザーが変更することができないDataGrid
/// </summary>
public class DataGridEx : System.Windows.Forms.DataGrid
{
protected override void OnMouseMove(
System.Windows.Forms.MouseEventArgs e)
{
//列ヘッダの境界線上にマウスがあるときは何もしない
System.Windows.Forms.DataGrid.HitTestInfo hti =
this.HitTest(new System.Drawing.Point(e.X, e....
if(hti.Type ==
System.Windows.Forms.DataGrid.HitTestType.Col...
{
return;
}
base.OnMouseMove(e);
}
protected override void OnMouseDown(
System.Windows.Forms.MouseEventArgs e)
{
//列ヘッダの境界線上にマウスがあるときは何もしない
System.Windows.Forms.DataGrid.HitTestInfo hti =
this.HitTest(new System.Drawing.Point(e.X, e....
if(hti.Type ==
System.Windows.Forms.DataGrid.HitTestType.Col...
{
return;
}
base.OnMouseDown(e);
}
}
}}
掲示板では、こど。さんが列の幅が変更された時に列の幅を元...
○この記事の基になった掲示板のスレッド
-[[カラムヘッダの固定に関して | 投稿者(敬称略) 咲くら, こ...
-[[DetaGlidの列幅を操作不可にしたいです。 | 投稿者(敬称略...
**コメント [#y9658a1c]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2005-04-02 (土) 23:40:00,DOB...
終了行:
#title(.NETプログラミング研究 第54号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第54号 [#d3bc8994]
**お知らせ [#k63c0f5f]
***CodeZineがプレオープン [#l20e35ad]
開発者のための実装系Webマガジン「CodeZine」がプレオープン...
-[[CodeZine>http://codezine.jp/]]
以下が私の書いた記事です。
-[[.NETによるプラグイン機能を持つテキストエディタの作成>h...
-[[TCPを利用した複数クライアント接続可能なチャットアプリ...
-[[DataGridにComboBoxを表示可能な列を作る>http://codezine...
**.NET質問箱 [#l15cd55b]
「.NET質問箱」では、「どぼん!のプログラミング掲示板」に...
-[[どぼん!のプログラミング掲示板>https://dobon.net/vb/bb...
***表示色を反転して線を引くには? [#pdcc7c3f]
#column(注意){{
この記事の最新版は「[[表示色を反転して線を引く>https://do...
}}
''【質問】''
VB6では、ピクチャボックスのDrawModeプロパティをvbInvert(6...
''【回答】''
.NETでは、ControlPaintクラスのDrawReversibleLineメソッド...
-[[DOBON.NET .NET Tips - コントロールを描画する>https://d...
なおこれらのメソッドは画面に描画するもので、指定する座標...
次の例では、ピクチャボックス「PictureBox1」の座標(20, 10)...
#code(vbnet){{
'PictureBox1の(20, 10)-(200, 100)に反転した線を引く
'PictureBox1上の座標を画面座標に変換する
Dim startPoint As Point = PictureBox1.PointToScreen(New P...
Dim endPoint As Point = PictureBox1.PointToScreen(New Poi...
'黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Col...
}}
#code(csharp){{
//PictureBox1の(20, 10)-(200, 100)に反転した線を引く
//PictureBox1上の座標を画面座標に変換する
Point startPoint = PictureBox1.PointToScreen(new Point(20...
Point endPoint = PictureBox1.PointToScreen(new Point(200,...
//黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Col...
}}
○この記事の基になった掲示板のスレッド
-[[Xorペン | 投稿者(敬称略) ぼろん, よねKEN>https://do...
-[[Drawmode=6 | 投稿者(敬称略) ぱーやん, 管理人>https://d...
-[[DrawMode = vbInvert機能 | 投稿者(敬称略) NINE, テラオ...
***クリップボードにファイルをコピーする、またはクリップボ...
#column(注意){{
この記事の最新版は「[[クリップボードにファイルをコピーす...
}}
''【質問】''
エクスプローラでコピーしたファイルのパスを取得するにはど...
''【回答】''
DOBON.NET .NET Tipsの「クリップボードに文字列をコピー、ク...
-[[DOBON.NET .NET Tips - クリップボードに文字列をコピー、...
次のコードでは、クリップボードにファイルがコピーされてい...
#code(vbnet){{
'クリップボードのデータを取得する
Dim iData As IDataObject = Clipboard.GetDataObject()
'クリップボードにファイルドロップ形式のデータがあるか確認
If iData.GetDataPresent(DataFormats.FileDrop) Then
'データを取得する
Dim fileNames As String() = _
CType(iData.GetData(DataFormats.FileDrop), String...
'取得したファイル名を列挙する
Dim fileName As String
For Each fileName In fileNames
Console.WriteLine(fileName)
Next fileName
End If
}}
#code(csharp){{
//クリップボードのデータを取得する
IDataObject iData = Clipboard.GetDataObject();
//クリップボードにファイルドロップ形式のデータがあるか確認
if (iData.GetDataPresent(DataFormats.FileDrop))
{
//データを取得する
string[] fileNames = (string[]) iData.GetData(DataFor...
//取得したファイル名を列挙する
foreach (string fileName in fileNames)
{
Console.WriteLine(fileName);
}
}
}}
ファイルをクリップボードにコピーする時も同様に、Clipboard...
#code(vbnet){{
'コピーするファイルのパス
Dim fileNames As String() = {"C:\1.txt", "C:\2.txt", "C:\...
'ファイルドロップ形式のDataObjectを作成する
Dim iData = New DataObject(DataFormats.FileDrop, fileNames)
'クリップボードにコピーする
Clipboard.SetDataObject(iData)
}}
#code(csharp){{
//コピーするファイルのパス
string[] fileNames = {"C:\\1.txt", "C:\\2.txt", "C:\\3.tx...
//ファイルドロップ形式のDataObjectを作成する
IDataObject iData = new DataObject(DataFormats.FileDrop, ...
//クリップボードにコピーする
Clipboard.SetDataObject(iData);
}}
○この記事の基になった掲示板のスレッド
-[[コードからクリップボードへファイルをコピー(配置)する...
***システム時計の日時を設定するには? [#p98818aa]
#column(注意){{
この記事の最新版は「[[システム時計の日時を設定する>https:...
}}
''【質問】''
システム時計の日時を設定するには、どのようにすればよいの...
''【回答】''
システム日時を勝手に変更してしまうことがよいことかという...
VB.NETでは、Todayプロパティ及びDateStringプロパティでシス...
#code(vbnet){{
'システム日付を2005/1/2にする
Today = New DateTime(2005, 1, 2, 0, 0, 0)
'システム日付を2005/2/3にする
DateString = "2005-2-3"
'システム時刻を6:15:30にする
TimeOfDay = New DateTime(2000, 1, 1, 6, 15, 30)
'システム時刻を8:25:45にする
TimeString = "8:25:45"
}}
#code(csharp){{
//システム日付を2005/1/2にする
Microsoft.VisualBasic.DateAndTime.Today =
new DateTime(2005, 1, 2, 0, 0, 0);
//システム日付を2005/2/3にする
Microsoft.VisualBasic.DateAndTime.DateString =
"2005-2-3";
//システム時刻を6:15:30にする
Microsoft.VisualBasic.DateAndTime.TimeOfDay =
new DateTime(2000, 1, 1, 6, 15, 30);
//システム時刻を8:25:45にする
Microsoft.VisualBasic.DateAndTime.TimeString =
"8:25:45";
}}
また、Win32 APIのSetLocalTime関数を使用してシステム日時を...
#code(vbnet){{
<StructLayout(LayoutKind.Sequential)> _
Public Structure SystemTime
Public wYear As Short
Public wMonth As Short
Public wDayOfWeek As Short
Public wDay As Short
Public wHour As Short
Public wMinute As Short
Public wSecond As Short
Public wMiliseconds As Short
End Structure
<DllImport("kernel32.dll")> _
Public Shared Function SetLocalTime( _
ByRef sysTime As SystemTime) As Boolean
End Function
'/ <summary>
'/ 現在のシステム日時を設定する
'/ </summary>
'/ <param name="dt">設定する日時</param>
Public Shared Sub SetNowDateTime(ByVal dt As DateTime)
'システム日時に設定する日時を指定する
Dim sysTime As New SystemTime
sysTime.wYear = dt.Year
sysTime.wMonth = dt.Month
sysTime.wDay = dt.Day
sysTime.wHour = dt.Hour
sysTime.wMinute = dt.Minute
sysTime.wSecond = dt.Second
sysTime.wMiliseconds = dt.Millisecond
'システム日時を設定する
SetLocalTime(sysTime)
End Sub
}}
#code(csharp){{
//using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMiliseconds;
}
[DllImport("kernel32.dll")]
public static extern bool SetLocalTime(
ref SystemTime sysTime);
/// <summary>
/// 現在のシステム日時を設定する
/// </summary>
/// <param name="dt">設定する日時</param>
public static void SetNowDateTime(DateTime dt)
{
//システム日時に設定する日時を指定する
SystemTime sysTime = new SystemTime();
sysTime.wYear = (ushort) dt.Year;
sysTime.wMonth = (ushort) dt.Month;
sysTime.wDay = (ushort) dt.Day;
sysTime.wHour = (ushort) dt.Hour;
sysTime.wMinute = (ushort) dt.Minute;
sysTime.wSecond = (ushort) dt.Second;
sysTime.wMiliseconds = (ushort) dt.Millisecond;
//システム日時を設定する
SetLocalTime(ref sysTime);
}
}}
○この記事の基になった掲示板のスレッド
-[[システム時計について | 投稿者(敬称略) カー君, よねKE...
***DataGridコントロールの列の幅をユーザーが変更できないよ...
#column(注意){{
この記事の最新版は「[[DataGridの列の幅をユーザーが変更で...
}}
''【質問】''
System.Windows.Forms.DataGridコントロールの列の幅をユーザ...
''【回答】''
これに関しては、「Windows Forms FAQ」が参考になります。
-[[Windows Forms FAQ - How can I prevent my user from siz...
この記事で紹介されている方法は、DataGridクラスの派生クラ...
この方法によるサンプルを以下に示します。このDataGridExク...
#code(vbnet){{
''' <summary>
''' 列ヘッダの幅をユーザーが変更することができないDataGrid
''' </summary>
Public Class DataGridEx
Inherits System.Windows.Forms.DataGrid
Protected Overrides Sub OnMouseMove( _
ByVal e As System.Windows.Forms.MouseEventArgs)
'列ヘッダの境界線上にマウスがあるときは何もしない
Dim hti As System.Windows.Forms.DataGrid.HitTestI...
Me.HitTest(New System.Drawing.Point(e.X, e.Y))
If hti.Type = _
System.Windows.Forms.DataGrid.HitTestType.Col...
Return
End If
MyBase.OnMouseMove(e)
End Sub
Protected Overrides Sub OnMouseDown( _
ByVal e As System.Windows.Forms.MouseEventArgs)
'列ヘッダの境界線上にマウスがあるときは何もしない
Dim hti As System.Windows.Forms.DataGrid.HitTestI...
Me.HitTest(New System.Drawing.Point(e.X, e.Y))
If hti.Type = _
System.Windows.Forms.DataGrid.HitTestType.Col...
Return
End If
MyBase.OnMouseDown(e)
End Sub
End Class
}}
#code(csharp){{
/// <summary>
/// 列ヘッダの幅をユーザーが変更することができないDataGrid
/// </summary>
public class DataGridEx : System.Windows.Forms.DataGrid
{
protected override void OnMouseMove(
System.Windows.Forms.MouseEventArgs e)
{
//列ヘッダの境界線上にマウスがあるときは何もしない
System.Windows.Forms.DataGrid.HitTestInfo hti =
this.HitTest(new System.Drawing.Point(e.X, e....
if(hti.Type ==
System.Windows.Forms.DataGrid.HitTestType.Col...
{
return;
}
base.OnMouseMove(e);
}
protected override void OnMouseDown(
System.Windows.Forms.MouseEventArgs e)
{
//列ヘッダの境界線上にマウスがあるときは何もしない
System.Windows.Forms.DataGrid.HitTestInfo hti =
this.HitTest(new System.Drawing.Point(e.X, e....
if(hti.Type ==
System.Windows.Forms.DataGrid.HitTestType.Col...
{
return;
}
base.OnMouseDown(e);
}
}
}}
掲示板では、こど。さんが列の幅が変更された時に列の幅を元...
○この記事の基になった掲示板のスレッド
-[[カラムヘッダの固定に関して | 投稿者(敬称略) 咲くら, こ...
-[[DetaGlidの列幅を操作不可にしたいです。 | 投稿者(敬称略...
**コメント [#y9658a1c]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2005-04-02 (土) 23:40:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]