|
This article that I wrote: Targeting Design Time Events of UserControls[^] might be able to help you with the Visual Studio Designer.
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
Unless I've totally overlooked something in your article- I couldn't find a section to help me out with this. I do appreciate the link though.
I think my confusion is that Visual Studio is firing the CollectionEditor code when the property is clicked in the property grid. So if VS has code to tell it when the CollectionEditor should be fired- It seems to me that the code that is firing the CollectionEditor should be responsable for telling the control to refresh. And if that's the case, I don't see how it would be possible for me to code this...
Of course, that must not be the case since the ListView Items property CollectionEditor doesn't behave like this. The ListView control itself is repainted as properties are updated in the CollectionEditor...
So I'm still obviously missing something...
|
|
|
|
|
One thing that I see is that you have a get and set for the collection property. When you add items to a collection you do not use the set part of the property, all alteration is through the get statement. You would have to create an event that will fire when the collection is altered. Ex:ListBox.Items is a collection property that does not have 'set' command (You can see this trough the object browser).
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
YES! You are my new hero!
My custom collection derives from System.Collections.CollectionBase which has a number of protected virtual methods that are fired when the collection is modified. Since the CollectionEditor is modifying the collection, I was able to hook in here.
I created a new delegate and event:
public delegate void OnRepaintControlHandler(object sender, EventArgs e);
public class AccentListViewItemCollection : CollectionBase
{
public event OnRepaintControlHandler RepaintControl;
...
...Created an event handler:
protected virtual void OnRepaintControl(EventArgs e)
{
if (RepaintControl != null)
{
RepaintControl(this, e);
}
}
...And then overrode the events that I needed my control to repaint on:
protected override void OnValidate(object value)
{
base.OnValidate(value);
OnRepaintControl(new EventArgs());
}
protected override void OnSetComplete(int index, object oldValue, object newValue)
{
base.OnSetComplete(index, oldValue, newValue);
OnRepaintControl(new EventArgs());
}
protected override void OnRemoveComplete(int index, object value)
{
base.OnRemoveComplete(index, value);
OnRepaintControl(new EventArgs());
}
protected override void OnInsertComplete(int index, object value)
{
base.OnInsertComplete(index, value);
OnRepaintControl(new EventArgs());
}
Finally, I registered for the event in my control, and invalidated the control on getting the event:
public AccentListView()
{
...
_Items = new AccentListViewItemCollection(this);
_Items.RepaintControl += new OnRepaintControlHandler(_Items_RepaintControl);
...
}
private void _Items_RepaintControl(object sender, EventArgs e)
{
this.Invalidate();
this.Update();
}
Again, thanks for your help- pretty sure I would not have figured this out without it!
|
|
|
|
|
hi,
I have got the .prn file(which is file for printing in driver level)
1.now i want to pick the file from the system/located in the server,
2.then i want to read some tags in that file.
All these tasks should be accompolished using the c#.net
Iam in a phase of high delivery...quick help is appreciated
thanks in advance
|
|
|
|
|
I have a DataGridView that runs hidden in the system tray, and when I unhide it the DataBindingComplete event fires anywhere between 3 and 8 times for the datagridview on the form, drastically slowing down the application. Is there something wrong with the databinding event? MSDN states that changes in the datasource will cause this event to fire. Why is changing the visibility firing it? This is the code for the system tray double click event.
Private Sub sysTray_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles sysTray.MouseDoubleClick
Me.Visible = Not Me.Visible
Me.ShowInTaskbar = Me.Visible
Me.WindowState = FormWindowState.Normal
End Sub
And here is the code in the databindingcomplete event:
Private Sub dgErrors_DataBindingComplete(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) Handles dgErrors.DataBindingComplete
Debug.WriteLine("Fired event: dgErrors_DataBindingComplete: by " + CType(sender, Control).Name + " event Type: " + e.ListChangedType.ToString())
End Sub
The code produces the following output when double clicking on the system tray icon:
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
Fired event: dgErrors_DataBindingComplete: by dgErrors event Type: Reset
I dont understand why it is firing 7 times. In fact I don't understand why it is firing at all.
I need another event for the datagrid that fires only once, or I need to fix what is happening here somehow, any suggestions?
Thanx in advance for answers
|
|
|
|
|
bigbrownbeaver wrote: Why is changing the visibility firing it?
I have no idea. Have you looked at the call stack?
led mike
|
|
|
|
|
I just looked there, and I found what is causing it, but I still don't know why... It's the ShowInTaskbar property thats causing this to happen. What puzzles me the most is probably that the property is only changed once, but it triggers the DataBindingComplete event 7 times.
I have commented out that line until I have some free time figure out what exactly is casuing it, for now people are just going to have to live with the application in their system tray.
Thanks for the help mike.
|
|
|
|
|
I have a textbox called "textBox6.text" in a C# Windows Application in Visual Studio, and i want that the text entered by the user in the textbox should be added to the "PURPOSE" field in a table "TABLE2_HDB1" in Oracle database "HDB1" on clicking a "submit" button.
the coding for submit button is as follows:-
private void button1_Click(object sender, EventArgs e)
{
string OracleStmt;
string ConString;
OleDbConnection cn = null;
OleDbCommand cmd = null;
try
{
OracleStmt = "insert into TABLE2_HDB1(PURPOSE) values(@PURPOSE)";
ConString = " Provider=MSDAORA;Data Source=HDb1;User Id=SYSTEM
;Password=*****;";
cn = new OleDbConnection(ConString);
cmd = new OleDbCommand(OracleStmt, cn);
cmd.Parameters.Add(new OleDbParameter("@PURPOSE", OleDbType.VarChar , 20));
cmd.Parameters["@PURPOSE"].Value = textBox6.Text;
cn.Open();
cmd.ExecuteNonQuery();
textBox8 .Text = "record inserted successfully";
}
catch (Exception ex)
{
textBox8 .Text = ex.Message;
}
finally
{
cn.Close();
}
}
on executing this code u get the error :-
ORA-00936:missing expression
plz. help
|
|
|
|
|
My Problem is when I debug my application I am getting broadcast messages from sever but not getting these broadcast when not in debugging mode.
portion of the code iss
do
{
byte[] myReadBuffer = new byte[tcpClient.ReceiveBufferSize];
int numberOfBytesRead = 0;
try
{
if ( networkStream.CanRead)
numberOfBytesRead = networkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
}
catch (IOException)
{
networkStream = tcpClient.GetStream();
}
if (numberOfBytesRead!=0)
myCompleteMessage += System.Text.Encoding.ASCII.GetString(myReadBuffer,0,numberOfBytesRead);
}
while(networkStream.DataAvailable);
if (myCompleteMessage.Length!=0)
{
DeliverMessage(myCompleteMessage,"","","","");
RegisterCompletion();
myCompleteMessage="";
}
Close();
return true;
|
|
|
|
|
Hi friends,
I have 2 list box and a horizontal Splitter. When I resize the window, both the listbox does not resize proportionally. The top listbox remains in same height, the bottom listbox gets resized.
The properties for splitter is
cursor - HSplit
Dock - Top
The properties for listbox1 is
Dock - Top
Anchor - Top,Left
The properties for listbox2 is
Dock - Fill
Anchor - Top,Left
I tried changing the dock properties. It does not help me.
Please help me.
Thanks,
Thiaga
|
|
|
|
|
Hi Thiaga,
In order to get the desired resolution try setting the Dock property of first ListBox to Fill. This will ensure that the ListBox resizes proportionally to the window. Since the Dock property is set to Top, the width will resize in proportion to the window size.
Hope this helps.
Vinay
ComponentOne LLC.
www.componentone.com
|
|
|
|
|
Hi,
I tried that option too. If the dock property of both the list box is set to FILL.
I can view only one listbox.
|
|
|
|
|
This is solved by using split container instead of splitter.
Thanks..
|
|
|
|
|
Use TableLayout, make 2 rows (1 column) and set the row height to 50% each. Dump the listboxes in each row.
Another way is to calculate the position of the splitter when the form size changes.
|
|
|
|
|
Do not cross post[^]
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
I would like to know how one can install skins into applications built using Microst visual studio .NET 2005. Im currently coding using C#.NET. i've downloaded skin crager3 and skin engine but cant seem to get them to work.
Please help. are there any other simple rograms that can create skins and let me apply them to my applications?
Thanks.
|
|
|
|
|
One way to customize the appearance of an application is to override the toolstrip renderers. One of my articles might be able to help you with that: Custom ToolStrip Renderers[^]. However, if you want to go beyond that customization you will either have to buy a control suite with a skin engine or create your own skinning framework.
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
I want the "label" for my checkbox (i.e. the text that you can click to check/uncheck the box) to have a link in it. My current solution is to put the empty string in the Text property of the checkbox, then just place a LinkLabel next to the checkbox where the "label" (i.e. Text ) would normally be.
This doesn't work very well because clicking on the (non-hyperlinked parts of the) linklabel doesn't check/uncheck the checkbox. I suppose I could hack it with a Click event handler, but it seems like there must be a better way... I'm just not seeing it.
Any ideas?
Thanks!
-Domenic Denicola-
|
|
|
|
|
Hi Friends,
I need to create a windows application that will run in system tray, and should load on Startup.
It needs input of URL and value. Eg: www.google.com, and value=1,if Browser is opened with URL www.google.com?value=1 then application should give a message or say ballon tip.
Now all i am searching is which method is there which can know whether an explorer.exe or mozilla.exe has been opened. And read if the wanted URL is opened.
I see System.Diagnostics is used to start processes. I am trying to play around with it. I am not sure i am in the write direction.
Any suggestions related to this would be highly appreciated.
Cheers
Menon
|
|
|
|
|
Well I want I have password in my Form but I want to change it and how? what will you advice me
namespace WestNotePad
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e)
{
PasswordChange ps = new PasswordChange();
ps.ShowDialog();
}
}
}
namespace WestNotePad {
public partial class frnPassword : Form {
public frnPassword() {
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e) {
DialogResult = DialogResult.Cancel;
}
private void txtPassword_TextChanged(object sender, EventArgs e) {
}
private void button1_Click(object sender, EventArgs e) {
DialogResult = DialogResult.OK;
}
}
}
namespace WestNotePad
{
public partial class PasswordChange : Form
{
public PasswordChange()
{
InitializeComponent();
}
private void ChnButton1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
}
}
namespace WestNotePad
{
static class Program
{
public static bool a = true;
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
int n = 0;
m:
if (ValidatePassword())
{
if (a)
{
Application.Run(new Form1());
}
}
else
{
n++;
while (n<4)
{
MessageBox.Show("Erorr");
goto m;
}
}
}
private static bool ValidatePassword()
{
if (string.IsNullOrEmpty(Settings1.Default.Password))
{
return true;
}
frnPassword f2 = new frnPassword();
if (f2.ShowDialog() == DialogResult.OK)
{
return f2.txtPassword.Text== Settings1.Default.Password;
}
else
{
a = false;
}
return true;
}
}
}
Settings1.cs
Password | string | User | ABCD
C# Developer
|
|
|
|
|
I've hit a stumbling block on trying to figure out this problem. I have a winform app written in C# that was started back with 1.0 frame, then upgraded to 1.1, and recently I created a test 3.5 version. The deployed app is still the 1.1 as we have a lot of old 98 machines several of which don't want to upgrade to the 2.0 framework.
Here's the simplified code that I'm having problems with:
//1
PrintDocument printDocument1=new PrintDocument();
printDocument1.PrinterSettings.PrinterName=LastPrinterName;
//2
PrinterSettings ps=printDocument1.PrinterSettings;
PageSettings dps=ps.DefaultPageSettings;
string defaultsourcename=dps.PaperSource.SourceName;
//3
foreach(PaperSource p in ps.PaperSources)
comboBoxPaperSources.Items.Add(p.SourceName);
//4
string defaultsizename=dps.PaperSize.PaperName;
//5
foreach(PaperSize p in ps.PaperSizes)
comboBoxPaperSizes.Items.Add(p.PaperName);
//6
Basically my software has some 280 different reports and different ones go to different printers and to different sizes of paper. So the full code brings up an option screen that remembers the last settings and allows the user to store the settings for the specific report section and select a checkbox to not ask them for settings the next time they generate the report. The comments with numbers are to help identify how long it takes to do each section.
On my machine, a dual-core Server 2008 64 bit 4 gigs of ram, 8 printers set up, my 3.5 version in release mode takes this long:
1->2 0ms
1->3 31.2ms
1->4 46.8ms
1->5 78ms
1->6 109.2ms
On another Vista 32 bit machine, 2 gigs of ram, 12 printers set up, my 1.1 version in debug mode:
1->2 0ms
1->3 73ms
1->4 101ms
1->5 201ms
1->6 289ms
On my machine in a Hyper-V XP 32 bit window, 7 printers set up, using my 1.1 version in debug mode:
1->2 0ms
1->3 78.08ms
1->4 93.7ms
1->5 171.79ms
1->6 234.26ms
On my bosses new machine he received last week, a quad-core Vista 32 bit, 3 gigs of ram, 2 printers set up, my 3.5 version in release mode:
1->2 0ms
1->3 4,056ms
1->4 6,864ms
1->5 11,856ms
1->6 15,600ms
Using the 1.1 debug version puts 1->6 up to 17,255ms
Obviously, there's some sort of titanic problem with my bosses machine. The machine itself is incredibly fast. Every other operation in my software beats the tar timing-wise compared to my machine. As soon as it touches printers, it craps out. Wordpad/notepad/word/excel/acrobat/etc all seem to pull up printers fine. The machine is pretty "clean", all the crapware was uninstalled off of it, no virus scanner running, I've task manager killed everything non-critical. I've deleted all his printers out, reinstalled just the Microsoft XPS Document Writer. I've cleared out his temp folders and run a chkdsk. I've eliminated all the standard "this is why its slow" reasons that I know of. If it had been any other program on the machine, I would think its a windows issue, but since its just my software I'm stuck.
Does anyone have any suggestions on where to go from here?
It doesn't seem to be Vista 32 bit.
It doesn't seem to be number of printers.
It doesn't seem to be amount of ram.
It doesn't seem to be something running in the background.
It doesn't seem to be disk or printer corruption
It not affecting any "mainstream" apps
It doesn't seem to be a specific .NET framework version
So I don't know if its
Quad core and .NET
Some chunk of code I'm missing
Something I haven't thought of.
|
|
|
|
|
Hi,
my guess is the slow machine has one or more printers set up that are hard to find, networked ones e.g.
so it takes a long time building the list of available printers or whatever other information it needs
to respond to your code. So check the list of installed printers. Or (temporarily) remove most of them.
|
|
|
|
|
Already tried that. I went down to having nothing but a local "virtual" printer(the XPS document writer that comes with Vista). Didn't change the speed very much.
|
|
|
|
|
Dear sir,
I am developing one windows application , in this we are using visual studio.net 2005, c#.net .
I have msi file package & set up file for this application.
To run the application I need windows encoder set up also.
So, Externally I install windows encoder set up also
Now my application is ready but In this situation, when I give it to client I ask him to install “windows media encoder “ also. Other wise I will go to customer home & I install both my set up and windows media encoder.
My requirement:
I want to make my msi file & setup automatically install the “windows media encoder” also , when customer install my setup.
How can I done this.
Similarly , when I uninstall my set up, it automatically uninstall windows media encoder also.
Please help me by giving solution for this.
Thank you ,
|
|
|
|
|