'System.NullReferenceException' not breaking in MDI ChildForm
I am developing some forms that use multiple accessors to
get information from within user created controls.
MainForm is Parent
JobForm is a MDI child
It has a user Control called MaterialControl
Eg.
MaterialControl has an accessor JobinProgress
Which Accesses a Job Class, which in Turn Access a
Materials class which in Turn accesses the AddMaterial
Method
Eg:
JobinProcess.Job.Materials.AddMaterial
JobinProcess has accessor to Job
Job has an accessor to Materials
Materials has the Actual Method.
My problem is when I do not have something initialized
properly during development and one of these accessors
contains a null value.
During debugging it just drops out of the MDi child Form
being processed and breaks in the Parent form where the
the MDI child form is being created, with
the 'System.NullReferenceException' showing in the Main
MDI Parent Form as opposed to staying in the MDI child
Form with an error on the line generating the error.
This requires me stepping through the code line by line
to figure out which line is generating the error so I can
fix it.
Do I have something wrong in my debugging setup. It
seems like it is only in the case of an null in an
accessor that it does this. All other times it breaks
into the code where the error is as opposed to dropping
me out of the child form.
Any help or nudges in the right direction would be
appreciated. Tag: Can't reference control(s) outside groupbox Tag: 60717
Custom Control's Properties in Design Time
I've got a custom control that I'm working on which has a
property that is somewhat analogous to the DockPadding
property in other controls (ALL, left, right, top, bottom).
I've put together a type converter that returns the
correct information with one exception: when I change the
all property, I'd like the property grid to display the
value for the rest, as does the DockPadding property.
When I select the individual values, they change the
display, but I much rather have them change automatically
upon modification of the all property.
Thanks,
-Dan Tag: Can't reference control(s) outside groupbox Tag: 60716
datagrid - word wrap text in column
I am looking for a way to display all of the text in a
column without having the user actually tab into the
column or having the column width be really huge.
I have a readonly datagrid in a windows form and I would
like the comments field to word wrap. I have changed the
row height and the column width, but the user still has to
tab or click in the column to see all of the text.
I have tried setting the DataGridTextBoxColumn style to
wordwrap - but I think that this only works if the column
is being edited. (the datagrid is never allowed to be
editied)
Any help would be appricated.
darkd Tag: Can't reference control(s) outside groupbox Tag: 60712
DataTable.AcceptChanges causes form to be first in z-order
I have a C# windows forms application with a form which
opens a
non-modal form containing a data grid. The datagrid's
datasource is a
DataTable. If the datatable's AcceptChanges method is
called, the
non-modal form is moved to the front in Z-order. Is there
a way to
prevent this? I have tried setting the datagrid's
dataSource to null,
before calling AcceptChanges as well as calling BeginInit
and
BeginLoadData before AcceptChanges, but with no success.
I have also noted that setting the DataSource on the
DataGrid to null will also cause the Z-order issue.
Any ideas for work arounds?
The sample code is included:
Form1 contains 2 buttons. One to open the non-modal Form2
and one to
call a public method on Form2 which calls Form2's data
table's
AcceptChanges method.
Form2 contains a simple data grid with a datatable with
one column and
one row.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.ComponentModel.IContainer components;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after
InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
} base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer
(this.components);
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler
(this.timer1_Tick);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(48,
80);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(168, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
//
// button1
//
this.button1.Location = new System.Drawing.Point(32,
184);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(80, 56);
this.button1.TabIndex = 1;
this.button1.Text = "Show DataGrid Form";
this.button1.Click += new System.EventHandler
(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(144,
184);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(72, 56);
this.button2.TabIndex = 2;
this.button2.Text = "Data Table Accept Changes";
this.button2.Click += new System.EventHandler
(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void timer1_Tick(object sender, System.EventArgs
e)
{
System.Diagnostics.Trace.WriteLine("Form
Focused="+this.Focused.ToString()+"
TBfocused="+textBox1.Focused.ToString());
}
private Form2 m_Frm2;
private void button1_Click(object sender,
System.EventArgs e)
{
if (m_Frm2==null || m_Frm2.Visible==false)
{
m_Frm2 = new Form2();
m_Frm2.Show();
}
}
private void button2_Click(object sender,
System.EventArgs e)
{
if (m_Frm2!=null)
m_Frm2.DataTableAcceptChanges();
}
}
}
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication1
{
/// <summary>
/// Summary description for Form2.
/// </summary>
public class Form2 : System.Windows.Forms.Form
{
private System.Windows.Forms.DataGrid dataGrid1;
private DataTable m_DataTable;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components =
null;
public Form2()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
m_DataTable = new DataTable("MyTable");
m_DataTable.Columns.Add("Col");
m_DataTable.Rows.Add(new string[] {"A"});
dataGrid1.DataSource = m_DataTable;
}
public void DataTableAcceptChanges()
{
m_DataTable.AcceptChanges();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
} base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.dataGrid1 = new System.Windows.Forms.DataGrid();
((System.ComponentModel.ISupportInitialize)
(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor =
System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(72,
40);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(408, 216);
this.dataGrid1.TabIndex = 0;
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(632, 365);
this.Controls.Add(this.dataGrid1);
this.Name = "Form2";
this.Text = "Form2";
((System.ComponentModel.ISupportInitialize)
(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
} #endregion
}
} Tag: Can't reference control(s) outside groupbox Tag: 60710
Showing a form on another form's load
Hello.
How can I show a form as modal on another form's load
event so that the calling form is shown before the called
form.
I tried it by calling Form.ShowDialog from inside another
form load event, but the called form is shown before the
calling form gets visible.
Any ideia?
Thanks in advance,
Celio C. J. Tag: Can't reference control(s) outside groupbox Tag: 60704
Highlighting in the TreeView
Hi!
In my treeView it seems possible to Select a Node
via SelectedNove, because the treeView is scrolling
to that position (althoug it's not in the middle)
But it isn't hightligthing it as if i would click
it with the mouse.
how do i do this ?
thanks for help,
nick Tag: Can't reference control(s) outside groupbox Tag: 60703
Excel text import wizard
I'm in the process of writing a text import wizard and would like to base
the 'preview' portion on the one Excel uses; a kind of grid/edit control
hybrid... has anybody come across a component that would offer similar
functionality?
tia Tag: Can't reference control(s) outside groupbox Tag: 60702
Active title bar font
Hi,
I'm writing a windows forms application in C# and I need to know active
title bar font type and size. Any opinions how to obtain it in the code?
Thanks
JP Tag: Can't reference control(s) outside groupbox Tag: 60701
Using axWebBrowser
Hello,
Using axWebBrowser control, how do I make it to always open a link in a new
browser window?
thanks,
/m Tag: Can't reference control(s) outside groupbox Tag: 60697
How to authenticate users?
Hi all,
I would like to write a Windows application who manage his own users and
roles.
The app should be able to create user, give roles to users, ...
Any users will be prompted for a username and password and affected by given
roles to this user.
Depending on the roles of the authorized user, the app authorized some
window and block some others!
(ex : if it's the admin how is connected all task must be done, but if it's
a guest user only the display product list will be accessible, other tasks
not show or disabled!)
I have some experience in web develloppement but none in windows app :-(
Is it possible to do that with a database! or use something like
authentication model with ASP.Net ???
Any idea or help is welcome.
In advance I thank you for your attention.
Regards.
MD Tag: Can't reference control(s) outside groupbox Tag: 60696
Weird problem, startup form is not brought to front.
Hi All,
I have a problem where my startup form is not brought to form.
First I have a splash screen while the application is loading. In the
startup method I call
Application.Run(new Form1()); // This is the main form
and then inside Form1 I call
SplashScreen.Close() // to close the splash screen
The splash screen is displayed, but the Form1 is hidden behind the windows
explorer where I start up the application. This is odd, does anyone has any
suggestion?
Thanks,
/m Tag: Can't reference control(s) outside groupbox Tag: 60695
How to show one-to-many relation in 2 DataGrids?
Let's say I have three database tables, each one having 2 columns:
DOCUMENTS contains columns "DOC_ID" (autonumbered) and "Name" (string)
DOCU_KEY contains columns "DOC_ID" and "KEY_ID" (both indexed)
KEYWORDS contains KEY_ID (autonumbered) and "Keyword" (string)
It is set up this way to be able to assign multiple keywords to each
document, and to keep the database normalised.
Now I would like to display two DataGrids, one displaying a list of
documents, a second one displaying the keywords that have been assigned to
those documents. I would also like to be able to insert (using the '*' row)
documents in the first DataGrid, and to insert keywords in the second
DataGrid.
When a keyword is used for the very first time, a new record should be added
to the KEYWORDS table. The next time, a record will be added to the DOCU_KEY
table, the KEYWORDS table remaining untouched.
While I could do this very easily by having only two tables (Documents and
Keywords) by using a DataRelation, and using that relation as a source for
the second DataGrid (by specifying DataMember="Documents.KeywordRel"), I
can't figure out how to do it with three tables. I guess there's a
straightforward solution, since even the most simple normalised database
contains this kind of setup over and over...
Or should I keep writing lots of application code?
Any suggestions?
Is there a good book explaining this kind of stuff?
TIA,
Luc K Tag: Can't reference control(s) outside groupbox Tag: 60692
DataGrid Merging row
How can I merging the rows in my DataGrid in Windows Form?
I'm looking for something like Webform's RowSpam or like MergeRow
FlexGrid's propriety.
Thank you
Marco Tag: Can't reference control(s) outside groupbox Tag: 60691
WindowsFormsParkingWindow
Hi,
I've written an application in C# and the application freeze sometimes. This
happens when I changed the language in full screen mode (without border and
main menu)
When this happened and I use the alt-tab combination then I see a .Net icon
with the name WindowsFormsParkingWindow.
Any idea?
Thanks in advance.
Gaby Tag: Can't reference control(s) outside groupbox Tag: 60684
Undo on InternetExplorer
I am still trying to get the Undo function work on Internet Explorer editor
hosted as activex in my c# application.
Some time ago I've found a note at msdn that says "undo is not supported". I
gave up.
But lately I've downloaded LutzRoeder Writer that makes use of undo
function. I've looked at the code and it turns out that it uses
IOleCommandTarget interface to invoke this command.
Because I cannot get it to work, I have questions:
1. is it a good way to follow? the undo does not work when invoked by
execCommand on IHtmlDocument. is there a chance that it will work with
IOleCommandTarget then?
2. after few days of fighting, digging through msdn and the groups archive,
I've came up with following code but it still does not work. when asking for
CanUndo I always get 0.
could anyone share his/her experiences with me and tell me where the problem
could be? I can send the full source code of my webbrowser control if
needed.
thanks in advance,
Wiktor Zychla
----------------------------------------------------------------------------
---
public class MyWebBrowser
{
// the rest of the code is not here
public enum MiscCommandTarget
{
Find = 1, ViewSource = 2, Options = 3, Undo = 43
}
internal int GetCommandInfo( MiscCommandTarget commandId )
{
OLECMD[] ole = new OLECMD[1];
ole[0] = new OLECMD();
ole[0].cmdID = (int)commandId;
OLECMDTEXT ret = new OLECMDTEXT();
((IOleCommandTarget)Document).QueryStatus( ref cmdGuid, 1, ole, ret );
return ( (int)ole[0].cmdf >> 1 );
}
internal bool IsEnabled( MiscCommandTarget commandId )
{
return ( (this.GetCommandInfo( commandId ) & 1) != 0);
}
internal object Execute( MiscCommandTarget command )
{
return this.Execute( command, null );
}
internal object Execute( MiscCommandTarget command, object[] arguments )
{
object[] array = new object[1];
int n = ((IOleCommandTarget)Document).Exec( ref cmdGuid, (int)command,
2, ref arguments, ref array );
if ( n != 0 )
{
MessageBox.Show( string.Concat( "Execution of MSHTML command ID '",
command, "' failed.") );
}
return array[0];
}
public bool CanUndo
{
get
{
return this.IsEnabled(MiscCommandTarget.Undo);
}
}
public void Undo()
{
if ( this.CanUndo ) this.Execute( MiscCommandTarget.Undo );
}
}
[StructLayout(LayoutKind.Sequential)]
public struct OLECMD
{
public int cmdID;
public int cmdf;
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct OLECMDTEXT
{
public int cmdtextf;
public int cwActual;
private int cwBuf;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)]
public string text;
}
[ComImport, Guid("b722bccb-4e68-101b-a2bc-00aa00404770"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IOleCommandTarget
{
[PreserveSig()]
int QueryStatus(ref Guid pguidCmdGroup,
int cCmds,
[In(), Out()]
OLECMD[] prgCmds,
[In(), Out()]
OLECMDTEXT cmdText );
[PreserveSig()]
int Exec(ref Guid pguidCmdGroup, int nCmdId, int nCmdExecOpt, ref object[]
pvaIn, ref object[] pvaOut);
} Tag: Can't reference control(s) outside groupbox Tag: 60681
creating a singleton application
Hello,
How do I prevent my win form application being launched twice in the same
box? if one already exist I want to focus to that one instead of launching
another one.
thanks,
/m Tag: Can't reference control(s) outside groupbox Tag: 60678
CodeDom Serialization Problem
I have a problem with serializing user controls to
persistant collections with the Code Dom. I have followed
many of the examples I have found, and the serialization
works except for one problem.
I am using the attribute -
DesignerSerialization.Visibility.Content...
Somehow I am losing the "association" between the
instance of the collection I am serializing, and when the
control is reloaded (or when you run the application).
While you remain in normal design-time mode, everything
is serialized properly straight to the code-behind.
Everything is also removed properly straight from the
code-behind (when removing an object)... I have
implemented TypeDescriptors / Convertors / Designers /
etc...
But I still have this problem.
After I reload or run the app. - then what happens is it
becomes disconnected with the serialized collection. It
doesn't know that there was a previous instance of it
that needs to be de-serialized, instead the collection
acts like a new "blank" collection on each reload.
For instance...
Let's say you have a Parent/Container Control that holds
all your child controls inside it. Now you have a
custom-collection (inherits from collectionBase) that
holds the references of the child controls. The custom
collection is of course exposed as a property of the
parent control, standard OO design...
You drop the Parent/Container control on a form. Now you
add child controls to the Form. Well so far - so good.
The code is generated properly in the code-behind as such:
ParentControl.ChildControlCollection.Add(SomeChild)...
etc...
However, you reload the project or run the application.
The CODE is still in the code-behind, but the objects are
no longer physically appearing in the control, even
though the objects are still in the code behind.
Also, when you try to remove an object from the
collection, the object does not exist inside the
collection anymore, instead it only exists in the CODE
editor.
Somehow the collection is being re-instanced or
disassociated with the collection that has been
serialized.
Does anyone have any specifics or information about
where, when, and how the De-Serialization is taking place
during the automated
DesignerSerialization.Visibility.Content process?
I have gone over my code so many times looking for some
place I might have "over-wrote" the instance of the
collection. But it just isn't there, I just don't see why
the instance of my collection would be disassociated when
I run the program or re-load VS.NET...
Thanks for any info, (Really stuck here)
CoderGuy Tag: Can't reference control(s) outside groupbox Tag: 60675
BUG: Printing
Hi,
I am working on the PrintDocument, PrintDialog, PageSetupDialog and
PrintPreviewControl components of Visual Studio .NET 2003. My developement
machine is running Windows XP.
There are some problems I encountered while using them. Please note that,
the Regional and Language setting on my machine is using "Metric"
measurement system (where the default is "US"). In this case, the
measurement unit is "milimeters" and not "inches".
PROBLEM #1
``````````````
The first problem is with PageSetupDialog. The following code,
Dim pagesettings As System.Drawing.Printing.PageSettings
Dim pagesetupdialog As System.Windows.Forms.PageSetupDialog
pagesettings = New System.Drawing.Printing.PageSettings
With pagesettings.Margins
.Left = 100
.Right = 100
.Top = 100
.Bottom = 100
End With
pagesetupdialog = New System.Windows.Forms.PageSetupDialog
With pagesetupdialog
.PageSettings = pagesettings
.ShowDialog()
End With
' Values printed out are not the same as entered
With pagesettings.Margins
Console.WriteLine(.Left)
Console.WriteLine(.Right)
Console.WriteLine(.Top)
Console.WriteLine(.Bottom)
End With
will reproduce the problem I'm facing.
Before calling the ShowDialog() method of the PageSetupDialog component, I
have already set the Margins to 100. Although my OS's measurement system is
set to "Metric", Visual Studio .NET still uses inches (0.01 in) for it's
measurement unit. In my case, the Margins are set to 1 inch.
On calling the ShowDialog() method, what you see is the margins are all set
to 10 (and the unit is milimeters). On clicking the OK button, the
PageSetupDialog component will convert the value entered in it's dialog to
inches (0.01 in). As the result, the margins after the ShowDialog() is
called are changed to 39 (100/2.54=39.xxxxxx).
This surely is a BUG (or am I missing something here).
I have a solution for this problem and the code is as below.
Dim pagesettings As System.Drawing.Printing.PageSettings
Dim pagesetupdialog As System.Windows.Forms.PageSetupDialog
pagesettings = New System.Drawing.Printing.PageSettings
With pagesettings.Margins
.Left = 100
.Right = 100
.Top = 100
.Bottom = 100
End With
pagesetupdialog = New System.Windows.Forms.PageSetupDialog
With pagesetupdialog
.PageSettings = pagesettings
' Keep the original setting
Dim marginSaved As System.Drawing.Printing.Margins
marginSaved = pagesettings.Margins
' Convert to milimeters
pagesettings.Margins =
System.Drawing.Printing.PrinterUnitConvert.Convert(pagesettings.Margins,
System.Drawing.Printing.PrinterUnit.Display,
System.Drawing.Printing.PrinterUnit.TenthsOfAMillimeter)
' Show the page setup dialog
If .ShowDialog() = DialogResult.Cancel Then
' If user clicked Cancel, restore the saved margin
pagesettings.Margins = marginSaved
End If
End With
With pagesettings.Margins
Console.WriteLine(.Left)
Console.WriteLine(.Right)
Console.WriteLine(.Top)
Console.WriteLine(.Bottom)
End With
But there is a problem with it. The conversion between milimeters and inches
causes the measurement to be inaccurate.
PROBLEM #2
``````````
The OriginAtMargins property of the PrintDocument component does not work
properly when the PrintDocument is added into the PrintPreviewControl.
Setting the value to True does not effect the preview shown by
PrintPreviewControl but the printed result is correct.
PROBLEM #3
``````````
When handling the PrintPage event of the PrintDocument, if the
OriginAtMargins of the PrintDocument is set to True and I set,
e.Graphics.PageUnit = GraphicsUnit.Millimeter
then the top margin is measured as milimeters while the left margin is
measured as inches.
The problem discuss above might not be bugs but I have checked the MSDN
library but it does not seem to help much. Any help is really appreciated.
Thanks in advance. Tag: Can't reference control(s) outside groupbox Tag: 60674
Smart client using IE web control doesnt work.
It shows an error in ieexec relating to threading. Has anyone used the ie
control in a smart client. If so please help.
Rajesh Tag: Can't reference control(s) outside groupbox Tag: 60672
Option Strict and Late Binding
Hello,
I have the following code.
Private Sub ABC_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnA.Click, btnB.Click,
btnC.Click
if sender.name = "btnA" then
Do something etc, etc
else
Do something else etc, etc
end if
End Sub
This code works fine until I turn Option Strict On. Then
I get a blue line under the words "sender.name" with the
following message "Option Strict On disallows late
binding". I am unsure how to get access to the properties
of the button clicked in this situation using "sender".
Can anyone point me in the write direction?
Thanks
Felicity Tag: Can't reference control(s) outside groupbox Tag: 60671
Scaled Pen DashStyle
It appears that the DashStyle of a Pen object is not
effected by the scale transform like the pen's width is.
Is this true and if so is this an oversight? How do I
scale the existing DashStyles?
Thanks!
Bob
Pen pen = new Pen(Color.Red, 1.0f);
pen.DashStyle = DashStyle.Dash;
pen.ScaleTransform(0.1f, 0.1f); Tag: Can't reference control(s) outside groupbox Tag: 60663
Adding Row To Displayed Child Table Fails
Using vs 2003, vb.net, sql msde
I have a Parent/Child related datagrid and datatables. When only the parent
is displayed, I can add 200 rows in a loop to the child table with out a
problem and then display these new child table rows. If I display the Child
table first, and then try to add 200 rows, it fails on the first row adding
attempt with the following error. I am only adding rows to the DataSet
Child Table, not updating any datasource.
"A first change exception of type 'System.IndexOutOf RangeExcetpion'
occurred in system.windows.forms.dll
Additional information: Index was outside the bounds of the array."
What is going on?
Bob Day Tag: Can't reference control(s) outside groupbox Tag: 60662
.Net Application Updater
Hi
I am using .Net updater to distribute updated versions of the
application to clients through internet. Could somebody tell me how to
exactly create a public and private key pairs, signing the assembly
and deploy them. I read the document with App.Updater but could not
successfully proceed with that. If somebody could tell me step by step
of doing this, would be great.
thanks Tag: Can't reference control(s) outside groupbox Tag: 60661
Resource problems
Hi all,
I am writing a winforms application, and whenever I set the icon for the
main form, I get the following exception message (A
MissingManifestResourceException) on running it:
Could not find any resources appropriate for the specified culture (or the
neutral culture) in the given assembly. Make sure "ScoreSheet.resources"
was correctly embedded or linked into assembly "PMDLScorereTest".
baseName: ScoreSheet locationInfo: PMDLScorereTest.ScoreSheet resource
file name: ScoreSheet.resources assembly: PMDLScorereTest,
Version=1.0.1405.29676, Culture=neutral, PublicKeyToken=null
I don't understand what is going on here. The .resx file has a base64
encoding for this.icon. As far as I can remember, i havn't changed any
culture settings. Does anyone know what the problem is here?
As a note, this is the app.ico file that VStudio generates in a new project.
Thanks for the help
Adam Tag: Can't reference control(s) outside groupbox Tag: 60658
DataGridCell.GetHashCode() is a very bad hash function
This is the hash function used by DataGridCell:
public override int GetHashCode()
{
return (((~this.rowNumber * (this.columnNumber + 1)) & 0xffffff00)
>> 8);
}
I tested this hash function over 1000x1000 cells, and found only 4000
distinct hash values were generated. A good hash function should have
generated just under 1e6 distinct hash values.
Also, for small values of rowNumber and columnNumber (roughly, where
rowNumber*columnNumber < 256), GetHashCode() always returns the same
value, 65535.
I think the intention is for this hash function to operate akin to the
mid-square hash function of Knuth, but in practice, the result is
pretty bad.
All in all, this is a terrible hash function.
In fact, the treatment of hash functions throughout the MS libraries
is generally pretty bad.
Object.GetHashCode() returns object identity, a number that increments
by one for each object allocated. If you allocate a series of objects,
the difference between two successive hashcodes will be 1.
Throughout the examples in the MSDN docs, combining hashcodes is
inevitably shown as a.GetHashCode() ^ b.GetHashCode(). Given that
objects allocated close together in time will have hashcodes close
together, this is a very bad way of combining hash codes.
If youre going to use an object or struct as a key, except for
strings, you should always define your own GetHashCode().
A quick and dirty way to define your own GetHashCode() is to multiply
the system GetHashCode() by a large, odd, and preferably prime,
number.
class HashRand
{
private static readonly Random _rand = new Random();
public static int Next()
{
return HashRand._rand.Next() | 0x00010001;
}
}
class Key
{
private static readonly int _hashmul = HashRand.Next();
public override GetHashCode()
{
return base.GetHashCode() * Key._hashmul;
}
}
struct Key2
{
private static readonly int _hashmul1 = HashRand.Next();
private static readonly int _hashmul2 = HashRand.Next();
int x, y;
public override GetHashCode()
{
return x * Key2._hashmul1 + y * Key2._hashmul2;
}
} Tag: Can't reference control(s) outside groupbox Tag: 60657
A very good DYNAMIC sizing routine for DataGrids if you want it
It literally requires only one line of code to attach it to any
existing Winform DataGrid, you can give it percentages like the
ASP.NET data grid and minimum column widths, the default of course is
to size all columns equally, it's very cool and the columns always
take up the full client rect of your grid making it look very
professional. I can't believe I had to write this.
Email me at dearpolycarp @ hotmail.com ... Put DATAGRID in the
subject.
I'll send you a tiny little sample with the source code, use it at
will. Tag: Can't reference control(s) outside groupbox Tag: 60656
Datagrid and scrolling
My question concerns navigation with the DataGrid on my
Windows Form.
Private Sub btnNext_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnNext.Click
' Move to the next record
NextRecord()
' Highlight the entire row for user feedback.
grdXNew.Select(grdXNew.CurrentCell.RowNumber)
End Sub
' Move the BindingContext Position to the next record.
Public Sub NextRecord()
' The position of the binding context controls
the "current record"
Me.BindingContext(dtXNew).Position += 1
End Sub
The code seems to work fine, except that after
GrdXNew.Select is fired, the Datagrid scrolls back to the
first record. The row that was navigated to is selected,
but if it is not within the bounds of the grid, the row is
not viewable. The user would then have to scroll the
Datagrid to see what row is highlighted. It appears the
behavior is that the grid always scrolls to the top after
a selection is made programmatically.
My question is: Is there a way to maintain the highlighted
row in the viewable area of the grid?
Thank you in advance. Tag: Can't reference control(s) outside groupbox Tag: 60644
Simulating Longhorn Sidebar
Hi,
Is there a component available to simulate Longhorn style Sidebar on
Windows XP ? Or is there a sample application somewhere to show how to do
that ?
Thanks in advance and regards
Navin Tag: Can't reference control(s) outside groupbox Tag: 60642
Problem when changing button font at runtime
I create a simple Windows Forms application and drop a simple button
on the form with the designer. I define the Text of the button (i.e.
"Button test") and I set the button width so I have plenty of space to
display the text (i.e. 120). Then I add the following code in the
button's click handler.
private void button1_Click(object sender, System.EventArgs e)
{
button1.Font = new Font(FontFamily.GenericSansSerif, 10,
FontStyle.Bold);
}
When I click the button, the button's text is displayed with the new
Font but the last letter (t) is truncated and not displayed properly.
I can't isolate exactly the conditions in which this behavior is
produced but the above conditions produce the bug. The complete code
is below.
Any ideas on this? A bug in the button code? Any way to avoid this?
Olivier
---
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(16, 24);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(120, 24);
this.button1.TabIndex = 7;
this.button1.Text = "Button test";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(216, 110);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
button1.Font = new Font(FontFamily.GenericSansSerif, 10,
FontStyle.Bold);
}
}
} Tag: Can't reference control(s) outside groupbox Tag: 60639
I need Microsoft.Web.Services Dll (Hell)
Hello All,
I am wanting to get a dll called Microsoft.Web.Services.
Can someone email me the dll? or send me the url to get to
it?
I down loaded WSE10SP1.exe, but I still don't have the dll.
Any help would be appreciated!
Ken Tag: Can't reference control(s) outside groupbox Tag: 60638
Databindings get lost on change?
I'm seeing a situation where a textBox value looses its
databinding if the value of the textBox is manually
changed. Is this supposed to happen or a bug?
To recreate:
create a simple dataset
Create a new form and add dataset and textBox and button
bind the textBoxt.Text property to a column in the dataset
NOTE: The dataset is not used in conjunction with any
other database objects
In the constructor of the form, add code to add a row to
the dataset.
In the button, change the value of the cell in the dataset
Run app and press button. notice the value appropriately
is displayed automatically in the testbox on the form.
change the value of the textbox directly
now notice pressing the button does not update the textbox
any longer.
Thanks
Bill Tag: Can't reference control(s) outside groupbox Tag: 60632
Checked List Box
Hi All,
I am working with the checked list box control in VB.NET. I am
displaying the names of the employees (display member) in the list box
and storing id as value member. Now i want to get all the employees how
have been selected (checked=true) from the checked list box. So I want
the ID of all the employees selected from the list box.
Any help would be appreciated
Thanks
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it! Tag: Can't reference control(s) outside groupbox Tag: 60630
MDI Child Form Problem
Hey guys, maybe someone can help me with some MDI issues I have. A
co-worker asked me a very simple question, one that I blew off as trivial,
and it has become a time-consuming issue.
Simply put, there is an MDIForm and a child form.
The MDIForm does the usual from within its constructor...
this.IsMdiContainer = true;
Form2 frm = new Form2();
frm.MdiParent = this;
frm.Show();
Okay, so nothing special there.
The child form then has a combobox on it. The question was, how do I get my
child form to close if I pick a particular item from the combobox. Or, to
make it easier, close the child form when the item selection changes in the
combobox.
So the following is in the child form...
private void comboBox1_SelectedIndexChanged(object sender,
System.EventArgs e)
{
this.Close();
}
Unfortunately this throws an exception indicating that the combobox has
already disposed itself and a null-reference exception is raised.
So I suggested the following...
private void comboBox1_SelectedIndexChanged(object sender,
System.EventArgs e)
{
this.Dispose(false);
}
This gets rid of the exception, but the child form is really not disposed,
even though visually it looks like it has gone away. It can be made to come
back sporadically by clicking inside the MDI parent form.
Using a true argument in the Dispose yields the same null pointer exception.
So with that, my understanding of forms went down the tubes, along with my
understanding of how the GC works and how correct implementations of
IDisposable work.
Can someone comment on how to get an MDI child form to close itself (i.e.
commit suicide)? Closing the child from a menu or toolbar on the parent
form is not a problem.
Thanks in advance.
MD Tag: Can't reference control(s) outside groupbox Tag: 60628
Datagrid question
Using VS 2003, VB.NET, sql msde...
This is really a question about a winform datagridcontrol (if there is a
better newsgroup for these winform datagridcontrol questions, let me know).
A parent/child relationship exists. When you click the + next to the parent
row, the relationship name "Display Details" appears. You then click that,
and everything previously FILLed to the child DataSet table displays. All
works as expected.
My question are:
1) Is there an event triggered by clicking on "Display Details" so you could
dynamically FILL the child table at that point, instead of having to fill it
prior it "Display Details" being click? If not an event, any other way to
do it?
2) Since the child table in the DataSet is held in memory, should I be
worried about how large it might get? Can it get to large or does Windows
XP/.NET still handle it appropriately regardless of its size? In my case,
the child could get quite large, constantly being added to by the program
automatically (which is the main reason I would like to load it when needed
via #1 above).
Thanks!
Bob Day Tag: Can't reference control(s) outside groupbox Tag: 60624
Loop through MDI chlids
How do I loop through all opened child forms of a MDI parent, and how do I
check weather the child form is of a specific type or not.
/Steffo Tag: Can't reference control(s) outside groupbox Tag: 60622
where is dotnet.framework.windowsforms.design?
It was here yesterday now its gone from the web interface.
Is it ever comming back? Is it still a managed workgroup?
Nick Tag: Can't reference control(s) outside groupbox Tag: 60620
Splitter max move to right
Hello,
is there a method to limit "splitter's" ability to move right or left
based on the size of the free space (panel) left on the appropriate side?
Ondra. Tag: Can't reference control(s) outside groupbox Tag: 60616
BUG: HScroll has 2 diff behaviours on scroll events
Hi,
When I process a HScroll scroll event I get one event fired for a increase
value using the > button.
When I make a User control with a HScroll on it and catch the message and
forward my own, I get two events fired yet I send one. I get a
SmallIncrement and then a EndScroll e.Type.
Why the difference in events, its confusing. Tag: Can't reference control(s) outside groupbox Tag: 60615
Panel (container) added after member controls
Hello,
I would like to add now (after some controls already added) new "panel".
When I add the panel to the form, I want to move previously added controls
to be managed (anchored, padded) to the panel, but they are still related to
the base form, where they were created at first. How to move them to the
panel?
Ondra. Tag: Can't reference control(s) outside groupbox Tag: 60614
Bug in PrinterSetting ???
Hi
Using the PrinterSettings class I want to get the No. Of copies of the
document to be printed. But it is always giving 1 as the copies to be
printed. I am using following code
dgPrintDialog.PrinterSettings.Copies = 2
dgPrintDialog.ShowDialog()
NoOfCopies= dgPrintDialog.PrinterSettings.Copies
What is wrong with this code. Most of the people have raised the same issue
and told that this is bug. If it is a bug is there any way to get the NoOf
copies?
Need Help
Nanda Tag: Can't reference control(s) outside groupbox Tag: 60613
Problem with UITypeEditor
Hello to everybody.I make a class that inherits from
UITypeEditor to customizing the view of the value of an
image in a PropertyGrid.I have a problem when I want to
cancel the image selected (hitting the Canc button).In
fact when I hit Canc button the application throws an
error. Anyone know how to intercept the pression of a
button directly in my custom UITypeEditor class. Tag: Can't reference control(s) outside groupbox Tag: 60608
showdesktop
Hi all,
I want to minimise all other windows (like show desktop) and show only
my applcation.How do i go about
Regards,
... Tag: Can't reference control(s) outside groupbox Tag: 60605
Urgent~~ Datagrid Error
This is a multi-part message in MIME format.
------=_NextPart_000_16BD_01C3A48D.CAF677C0
Content-Type: text/plain;
charset="big5"
Content-Transfer-Encoding: quoted-printable
HI ALL,
Here I have a question on the datagrid... I would like to change the =
column header so i have written the following code to change column =
header text when current cell has been changed. But I found a situation =
will cause the grid error when the focus is on the last (add new) row =
and then click on any other controls will raise an error. A BIG RED =
CROSS will then be shown on the datagrid instead of all block of cells.
Does anyone know why the following code will cause the error??... Notes =
that if the .Refresh() statement is remarked.. the error never happens.. =
but the column header text will not update unless the last (add new) row =
is selected. It will make the column header text changed base on the =
last selected row before the last (add new) row is selected.
With CType(objDataGrid, DataGrid)
If =
objTable.Rows(.CurrentCell.RowNumber).Item("SizeType") <> "" Then
objRow =3D =
objTable.Rows.Find(.Item(.CurrentCell.RowNumber, 0))
objCaption =3D =
objSizeTable.Items(objRow.Item("SizeType"))
For Index =3D 1 To 17
=
.TableStyles(strTableName).GridColumnStyles(Index).HeaderText =3D =
objCaption.Items(Index).Description
Next Index
' .Refresh()
End If
End With
I have been suffering in this error for a few weeks but I still have no =
one can answer my question. Please give me a hand. Thanks.............
Ivan
------=_NextPart_000_16BD_01C3A48D.CAF677C0
Content-Type: text/html;
charset="big5"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dbig5">
<META content=3D"MSHTML 6.00.2800.1264" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>HI ALL,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Here I have a question on the =
datagrid... I would=20
like to change the column header so i have written the following code to =
change=20
column header text when current cell has been changed. But I found a =
situation=20
will cause the grid error when the focus is on the last (add new) row =
and then=20
click on any other controls will raise an error. A BIG RED CROSS =
will then=20
be shown on the datagrid instead of all block of cells.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Does anyone know why the following code =
will cause=20
the error??... Notes that if the .Refresh() statement is remarked.. the =
error=20
never happens.. but the column header text will not update unless the =
last (add=20
new) row is selected. It will make the column header text changed =
base on=20
the last selected row before the last (add new) row is =
selected.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> =20
With =
CType(objDataGrid,=20
DataGrid)</FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2> &nbs=
p;  =
;=20
If objTable.Rows(.CurrentCell.RowNumber).Item("SizeType") <> ""=20
Then<BR>  =
; =
=20
objRow =3D objTable.Rows.Find(.Item(.CurrentCell.RowNumber,=20
0))<BR> =
&=
nbsp; =20
objCaption =3D=20
objSizeTable.Items(objRow.Item("SizeType"))<BR> &n=
bsp; &nb=
sp; =20
For Index =3D 1 To=20
17<BR> &=
nbsp; &n=
bsp; =20
.TableStyles(strTableName).GridColumnStyles(Index).HeaderText=20
=3D objCaption.Items(Index).Description<BR> &=
nbsp; &n=
bsp; =20
Next=20
Index<BR>' &nb=
sp; &nbs=
p; .Refresh()<BR> &nb=
sp; &nbs=
p; =20
End If</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
End =
With</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>I have been suffering in this error for =
a few weeks=20
but I still have no one can answer my question. Please give =
me a=20
hand. Thanks.............</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Ivan</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> </DIV>
<DIV><BR></DIV></FONT><FONT face=3DArial size=3D2>
<DIV><BR> </DIV>
<DIV></FONT> </DIV></BODY></HTML>
------=_NextPart_000_16BD_01C3A48D.CAF677C0-- Tag: Can't reference control(s) outside groupbox Tag: 60604
Holding a form in memory
Hi All,
I have a module level form variable as I want to react to custom events that
form raises:
Dim WithEvents m_frmSearchForm As frmPartSearch_Alt
When the user clicks the search button, I carry out this code:
If m_frmSearchForm Is Nothing Then
m_frmSearchForm = New frmPartSearch_Alt
With m_frmSearchForm
m_frmSearchForm.KeepOpen = False
m_frmSearchForm.MdiParent = MyBase.ParentForm
m_frmSearchForm.CaptionText = "Component Search"
m_frmSearchForm.SearchOption =
frmPartSearch_Alt.eSearchOptions.AllowSelect
m_frmSearchForm.Show()
End With
Else
m_frmSearchForm.Show()
End If
Which basically just loads the form and shows it.
The KeepOpen property allows the form to remain open.
The searchoption property tells to allow selection.
Both of these don't affect the problem.
Now, when the user closes the form using the x button, and then clicks the
search button again to execute this code then m_frmSearchForm isn't nothing
and the m_frmSearchForm.Show() is called, however nothing appears.
Can anybody help me with this????
When the x button is used to close a form, how can I ensure that the global
variable is emptied?
I don't want to open the form using showdialog.
Thanks
Alex Stevens Tag: Can't reference control(s) outside groupbox Tag: 60603
I can't access any properties of controls outside a
groupbox when handling events of controls belonging to
this groupbox.
Any suggestions?
Re: Can't reference control(s) outside groupbox by hirf-spam-me-here
hirf-spam-me-here
Fri Nov 07 14:01:45 CST 2003
* "anonymous" <anonymous@discussions.microsoft.com> scripsit:
> I can't access any properties of controls outside a
> groupbox when handling events of controls belonging to
> this groupbox.