关于vb.netref的信息

VB中byref是什么意思在Visual Basic中vb.netref,按地址传递方式通过关键字 ByRef来实现 。也就是说,在定义通用过程时,如果形参前面有关键字ByRef,则该参数用按地址方式传送 。
按地址传递参数时,把实参变量vb.netref的地址传送给被调用过程,形参和实参共用内存vb.netref的同一地址 。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变 。如果实参是一个常数或表达式,Visual Basic 6.0会按"传值"方式来处理 。
扩展资料vb.netref:
与之相对应的则为ByRef关键字 。使用 ByRef 关键字时 , 参数的传递方式就是按地址传递 。
需要注意:
1.按值传递方式只能用于外部向被调用过程内部传递数据 。
2.按地址传递方式可以实现数据的双向传递 。
参考资料来源:百度百科-ByVal
参考资料来源:百度百科-ByRef
VB.NET RichTextBox 保存为 Word文档将Word文档嵌入到WinForm窗体显示Word文档内容
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog P_GetFile = new OpenFileDialog();//创建打开文件对话框对象
DialogResult P_dr = P_GetFile.ShowDialog();//显示打开文件对话框
if (P_dr == DialogResult.OK)//是否点击确定
{
WebBrowser.Navigate(P_GetFile.FileName);//打开Word文档并显示
}
}
//在Word文档中插入图片
private void btn_New_Click(object sender, EventArgs e)
{
btn_New.Enabled = false;//停用新建按钮
ThreadPool.QueueUserWorkItem(//使用线程池
(P_temp) =//使用lambda表达式
{
G_wa = new Word.Application();//创建Word应用程序对象
Word.Document P_wd = G_wa.Documents.Add(//建立新文档
ref G_missing, ref G_missing, ref G_missing, ref G_missing);
Word.Range P_Range = P_wd.Paragraphs[1].Range;//得到段落范围
object P_Ranges = P_Range;//创建ojbect对象
P_wd.InlineShapes.AddPicture(//向文档中插入图片
G_OpenFileDialog.FileName, ref G_missing, ref G_missing, ref P_Ranges);
G_str_path = string.Format(//计算文件保存路径
@"{0}\{1}", G_FolderBrowserDialog.SelectedPath,
DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc");
P_wd.SaveAs(//保存Word文件
ref G_str_path,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing, ref G_missing,
ref G_missing, ref G_missing, ref G_missing);
((Word._Application)G_wa.Application).Quit(//退出应用程序
ref G_missing, ref G_missing, ref G_missing);
this.Invoke(//开始执行窗体线程
(MethodInvoker)(() =//使用lambda表达式
{
btn_Display.Enabled = true;//启用显示按钮
MessageBox.Show("成功创建Word文档!", "提示!");
}));
});
}
C#代码转vb.netProtected OverridesSub WndProc(ByRef m As Message)
Select Case m.Msg
Case 0x46
Dim rect As Rectangle =Screen.GetWorkingArea(Me)
Dim winPos As WINDOWPOS = CType(m.GetLParam(Type.GetType(WINDOWPOS)), WINDOWPOS)
If winPos.x + winPos.cxrect.Right Then
winPos.x = rect.Right - winPos.cx
End If
If winPos.y + winPos.cyrect.Bottom Then
winPos.y = rect.Bottom - winPos.cy
End If
If winPos.xrect.Top Then
winPos.x = rect.Top
End If
If winPos.yrect.Left Then
winPos.y = rect.Left
End If
Marshal.StructureToPtr(winPos, m.LParam, False)
MyBase.WndProc( m)
Exit Sub
Case Else
MyBase.WndProc( m)
Exit Sub
End Select
End Sub
StructLayout(LayoutKind.Sequential) _
Friend Structure WINDOWPOS
Friend hWnd As IntPtr
Friend hWndInsertAfter As IntPtr

推荐阅读